как выполнить su пользователь + пароль одним запросом oO ?
su + pass одной командой [решено]
от суперпользователя, т.е. root'а, тогда пароль не нужен будет.
нет. нужно именно от пользователя к пользователю. Как такое сделать? ; && || | echo и тд все не подходит.
никак (или писать скрипт если такое возможно)
kennedy, а сама идея какая?
нужно выполнить команду которая не хочет выполнятся под апатчем, через exec
mplayer /var/www/dir/a.avi -ss 00:30:00 -frames 1 -vo jpeg:outdir=/var/www/dir (dir 777)
чем ей апатч не угодил не знаю. другие функции mplayer выполняет а эту не хочет.
kennedy, рискуете, приложения для апача под рутом запускать рискованно smile лучьше выставите владельца на папки www-data
так я и не собираюсь апатч под рутом запускать. я хочу с апатча перейти на пользователя и там выполнить команду. папка в которую ложится скрин и так апатч создает. тут дело скорее всего в самом mplayer на уровне апатча ему чего то не хватает. Но ошибку он не показывает.
как пример
exec("su user; command",$a) но в промежутке между командами нужно пароль ввести
su user; pass;
echo pass |su user; command
все это не вводит пароль. должна же быть возможность прописать переход на другого пользователя с указанием пароля и выполнения команды
используйте 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
expect разберусь. сенкс
по поводу sudo уже рыл но так ничего и не нарыл
к примеру если в кофиге прописать
username ALL=(ALL) ALL
и выполнить простейшую команду
echo pass | sudo -u root -S ls
в ответ получаю не правильный пароль, хотя пароль точно правильный
можете немного объяснить? Какой пароль нужно вводить? рутовский или пользователя? Если все таки пользователя хотя это и не логично то что делать если в пользователя нету пароля? К чему приведет установка пароля для apache?
Пробовал ставить ALL для обычного пользователя все равно какую то ошибку выдает что то касательно tty уже не помню.
Что нужно прописать в конфиге и какой вести пароль что бы выполнить команду echo pass | sudo -u root -S ls
пароль нужно вводить пользователя. это кстати логично :-)
судо предназначенно для того, чтобы не распространять пароль рута, так, что вводить пароль рута было бы совсем неправильно.
если хотите - можете сделать судо без пароля. вот так:
username ALL=NOPASSWD: ALL
итак. есть два пользователя apache и admin
нужно прописать команду sudo -u admin -S mplayer .......
подскажите что нужно написать в конфиге для выполнения программы mplayer апатчем от пользователя admin с любыми параметрами и без пароля но только этой программы что бы не страдала безопасность в целом.
пока что приходится создавать исполняемый файл и проверять его по крону. работает. не так как хотелось бы)
ну как-то так:
apache ALL = (admin) NOPASSWD: /usr/bin/mplayerпроверьте юзеров, чтобы были как у вас и путь до мплеера.
можете немного объяснить? Какой пароль нужно вводить? рутовский или пользователя? Если все таки пользователя хотя это и не логично то что делать если в пользователя нету пароля? К чему приведет установка пароля для apache?
юзерский надо.
а у "юзера" apache потому и нет пароля (он не пустой его именно НЕТУ), что бы вот так никто не влез.
установка пароля приведёт к дыре.
кроме того, что советует Ленивая Бестолочь, можно только ещё порекомендовать отправить вывод команды в лог, что-бы потом разобраться.