
Phil
03.03.2017
08:46:11
Слушайте, а помните как в бэкграунде запустить процесс в RT-11FB?

Andrey
03.03.2017
08:46:53
штатно

Белая Стрекоза
03.03.2017
08:47:06

Google

Белая Стрекоза
03.03.2017
08:47:30
(но при этом ты не аркаша (странно))

Phil
03.03.2017
08:48:58

Белая Стрекоза
03.03.2017
08:49:08
аркеной, очевидно
(протозой)
(в чорном плаще)

Phil
03.03.2017
08:49:47
Да я хз кому очевидно. Я знаю как выглядит наш болгарский друг

Alexey
03.03.2017
08:49:48

Phil
03.03.2017
08:50:29
Хм... так про PDP-11 оказывается можно поговорить в мордакниге... о как

Andrey
03.03.2017
08:53:26

Белая Стрекоза
03.03.2017
08:55:28
/me чот понимает что вообще забыл все эти MCR [1,54] RMD BRU и прочая

Phil
03.03.2017
09:38:00
Вопрос на засыпку. Хочу ls -l сделать через su, чтобы ls был от пользователя vasya. А вот теперь усложнение - хочу запускать программно через массив аргументов, не ебя мозг всяким эскейпингом

Белая Стрекоза
03.03.2017
09:38:40
очевидно perl

Phil
03.03.2017
09:38:40
И вот гдето здесь я даже в sudo переметнулся

Google

Phil
03.03.2017
09:38:56
очевидно perl
а. как программно запустить я знаю. мне строку не составить
´su vasya -c ls -l´ дает немного не тот эффект

Белая Стрекоза
03.03.2017
09:40:42
ну когда я слышу слово "эскейпинг" у меня автоматически срабатывает рефлекс вида "нахерачь однострочник на перле"

Vartan
03.03.2017
09:41:21
su vasya -c 'ls -l'
?
если программно, можешь сделать fork/exec и передать всю строку одним аргументом

Phil
03.03.2017
09:43:10
su vasya -c 'ls -l'
о! и вот тут вступает пункт с "хочу массивом аргументов, чтобы не мучаться с эскейпингом" . например это может быть чтото с паролем, который я даже не хочу знать какой и есть ли там переносы строк и точки с запятыми
нет, хочу все отдельными аргументами

Vartan
03.03.2017
09:44:04
ты хочешь странного.

Белая Стрекоза
03.03.2017
09:44:18
и для этого прекрасно подходит perl

Dan
03.03.2017
09:44:50
perl/python/go
Но не баш
Чтобы не мучиться с эскейпингом

Белая Стрекоза
03.03.2017
09:49:12

Dan
03.03.2017
09:50:11
Это влияние Чистякова. Баш в целом это неплохо, но не панацея, и строить странные вещи лучше на более низком уровне

Phil
03.03.2017
09:56:23
так. я полность все описал чтобы намекнуть, что я не хочу суид делать сам. задача сводится к как сделать ´sh -c ls -l´

Vartan
03.03.2017
09:57:02
Я уже объяснил. Форкнуть и exec'нуть там su с argv[1]='-c', argv[2]='вся команда'

Phil
03.03.2017
09:59:37
а я уже объяснил, что я не хочу думать об эскейпинге всей команды

Vartan
03.03.2017
09:59:49
зачем?

Google

Vartan
03.03.2017
09:59:58
это же не шелл
он ничего там делать не будет

Phil
03.03.2017
10:00:21
не хочу проверять входящие данные. пусть будут какие пришли
su? да нет, он шелл запускает

Vartan
03.03.2017
10:01:15
слушайте, я один не понимаю, чего Филу надо?

pl
03.03.2017
10:01:24
Нет

Vartan
03.03.2017
10:01:28
нет
не запускает
и об этом написано в мане

pl
03.03.2017
10:01:53
Вроде setuid и exec ему хватит

Phil
03.03.2017
10:07:36

pl
03.03.2017
10:10:41
и об этом написано в мане
# strace -e trace=process -f su baduser ls
execve("/bin/su", ["su", "baduser", "ls"], [/* 22 vars */]) = 0
arch_prctl(ARCH_SET_FS, 0x7f880be22740) = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f880be22a10) = 10752
Process 10752 attached
[pid 10751] wait4(-1, <unfinished ...>
[pid 10752] execve("/bin/bash", ["bash", "ls"], [/* 22 vars */]) = 0

Dan
03.03.2017
10:10:45
я тоже не понимаю зачем именно так надо

Vartan
03.03.2017
10:10:57
Пардон
Ошибся

Phil
03.03.2017
10:13:26
я строку не хочу сосиавлять. там в реальной задаче пароль участвует и я не хочу его эскейпить

Vartan
03.03.2017
10:13:53
Пароль. В аргументах.
Okay.

Phil
03.03.2017
10:14:29
нет проблемы пароля в аргументах

Vartan
03.03.2017
10:14:57
И то, что эти аргументы можно тысячей способов посмотреть снаружи?

Google

pl
03.03.2017
10:15:29
какой еще тысячей?

Denis
03.03.2017
10:15:30
это если на сервак зайти можно

Vartan
03.03.2017
10:16:16

pl
03.03.2017
10:16:26

Phil
03.03.2017
10:17:53

Vartan
03.03.2017
10:18:00
3.2 :)

Admin
ERROR: S client not available

Phil
03.03.2017
10:18:32
3.2 :)
а, это же ваш птицукс. но до 3.2 был простой патчик

Vartan
03.03.2017
10:21:00
Линукс там
Запретить и все.

Phil
03.03.2017
10:21:57
Хотя если я строку составляю в шелле, то он сам заэскейпится, а в других языках есть всякие либы с названием типа shlex, но я туповат, путаюсь и забываю. хотел бы более топорно

Vartan
03.03.2017
10:23:07
Да сделай ты уже suid сам :)

Phil
03.03.2017
10:23:54
тут надо отметить, что если я просто забываю, то судя по софту с гитхаба, многие и е думают )

pl
03.03.2017
10:28:57
каких?

Dan
03.03.2017
10:30:21
каких?
кстати спасибо, не знал про hidepid

Google

Phil
03.03.2017
10:33:32
каких?
хз. я линукс в шареде пока не.

Alexey
03.03.2017
11:13:34
@schors, в целом можно и bash'ем обойтись, главное понять как и куда ты потом будешь передавать этот свой замысловатый пароль. Надо понимать что любая переменная без проблем переживает подстановку в один shell. Если shell потом ещё вызывает другой shell то это проблема и надо писать функцию эскейпинга, но можно попытаться и без этого обойтись, если ситуация позволит.
root@alex:~# cat /tmp/passwd
Super! "
'Strange passwor
d ''@#! &
root@alex:~# su alukardd -s /bin/bash -c 'echo -e "set password for alukardd = $(< /tmp/passwd)" > /tmp/file'
root@alex:~# cat /tmp/file
set password for alukardd = Super! "
'Strange passwor
d ''@#! &
Как видишь работает. Но прошу заметить что я записал говнопароль в файл и прочитал его уже из вложенного shell'а, что бы избежать двойного раскрытия переменной.

Белая Стрекоза
03.03.2017
11:24:30

Dan
03.03.2017
12:42:32
@tokarevd ты линуксоид?

Jade
03.03.2017
12:43:09

Dan
03.03.2017
12:43:18
ах да, точно
бот же спамерский пришёл ?

Phil
03.03.2017
12:45:02
@tokarevd , ты исламист?

Goletsa
03.03.2017
12:45:43
IS-IS, EIGRP и другие страшные буквы

Денис
03.03.2017
12:52:04
Иншалла, конечно же
Нуачо

Dan
03.03.2017
12:54:45
Нуачо
порекламируй давай уже сообщество VR разработчиков, и будь спокойно забанен ?
или что там сейчас олег линок продвигает опять?

Денис
03.03.2017
13:07:06
Эээ

Dan
03.03.2017
13:08:00
Не стесняйся

Phil
03.03.2017
13:17:54
Там сейчас в наговском чатике опять бой про IPv6 да?

Vartan
03.03.2017
13:36:32
Нет

Denis
03.03.2017
13:54:11

Dan
03.03.2017
13:56:16
Ctrl-R придумали же давно