LinuxForum.Fans
Тема

su + pass одной командой [решено]

Автор: kennedy 14 сообщений 3152 просмотров
#21042

как выполнить su пользователь + пароль одним запросом oO ?

#21068

от суперпользователя, т.е. root'а, тогда пароль не нужен будет.

#21086

нет. нужно именно от пользователя к пользователю. Как такое сделать? ; && || | echo и тд все не подходит.

#21271

никак (или писать скрипт если такое возможно)

#21277

kennedy, а сама идея какая?

#21281

нужно выполнить команду которая не хочет выполнятся под апатчем, через exec
mplayer /var/www/dir/a.avi -ss 00:30:00 -frames 1 -vo jpeg:outdir=/var/www/dir (dir 777)

чем ей апатч не угодил не знаю. другие функции mplayer выполняет а эту не хочет.

#21288

kennedy, рискуете, приложения для апача под рутом запускать рискованно smile лучьше выставите владельца на папки www-data

#21302

так я и не собираюсь апатч под рутом запускать. я хочу с апатча перейти на пользователя и там выполнить команду. папка в которую ложится скрин и так апатч создает. тут дело скорее всего в самом mplayer на уровне апатча ему чего то не хватает. Но ошибку он не показывает.

как пример

exec("su user; command",$a) но в промежутке между командами нужно пароль ввести
su user; pass;
echo pass |su user; command
все это не вводит пароль. должна же быть возможность прописать переход на другого пользователя с указанием пароля и выполнения команды

#21558

используйте sudo.
если не хотите судо, то можно ввод пароля сделать с помощью expect.
про expect (для общего развития) можно прочитать тут: http://www.ibm.com/developerworks/ru/views/linux/libraryview.jsp?sort_by=&show_abstract=true&show_all=&search_flag=&topic_by=-1&type_by=%D0%B2%D1%81%D0%B5&search_by=expect&%D0%9E%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D1%82%D1%8C.x=0&%D0%9E%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D1%82%D1%8C.y=0

#21658

expect разберусь. сенкс

по поводу sudo уже рыл но так ничего и не нарыл

к примеру если в кофиге прописать

username ALL=(ALL) ALL

и выполнить простейшую команду

echo pass | sudo -u root -S ls

в ответ получаю не правильный пароль, хотя пароль точно правильный

можете немного объяснить? Какой пароль нужно вводить? рутовский или пользователя? Если все таки пользователя хотя это и не логично то что делать если в пользователя нету пароля? К чему приведет установка пароля для apache?

Пробовал ставить ALL для обычного пользователя все равно какую то ошибку выдает что то касательно tty уже не помню.

Что нужно прописать в конфиге и какой вести пароль что бы выполнить команду echo pass | sudo -u root -S ls

#21663

пароль нужно вводить пользователя. это кстати логично :-)
судо предназначенно для того, чтобы не распространять пароль рута, так, что вводить пароль рута было бы совсем неправильно.
если хотите - можете сделать судо без пароля. вот так:
username ALL=NOPASSWD: ALL

#21669

итак. есть два пользователя apache и admin

нужно прописать команду sudo -u admin -S mplayer .......

подскажите что нужно написать в конфиге для выполнения программы mplayer апатчем от пользователя admin с любыми параметрами и без пароля но только этой программы что бы не страдала безопасность в целом.

пока что приходится создавать исполняемый файл и проверять его по крону. работает. не так как хотелось бы)

#21939

ну как-то так:

text
apache           ALL = (admin) NOPASSWD: /usr/bin/mplayer

проверьте юзеров, чтобы были как у вас и путь до мплеера.

#22031
kennedy написал:
можете немного объяснить? Какой пароль нужно вводить? рутовский или пользователя? Если все таки пользователя хотя это и не логично то что делать если в пользователя нету пароля? К чему приведет установка пароля для apache?

юзерский надо.
а у "юзера" apache потому и нет пароля (он не пустой его именно НЕТУ), что бы вот так никто не влез.
установка пароля приведёт к дыре.
кроме того, что советует Ленивая Бестолочь, можно только ещё порекомендовать отправить вывод команды в лог, что-бы потом разобраться.

Войдите или зарегистрируйтесь, чтобы ответить.