Страница 1 из 1
sudo: not found
Добавлено: 2010-08-20 12:41:23
Гость
написал простенький скрипт на пхп, который от лица www например должен отмонтировать устройств. Поставил судо:
Код: Выделить всё
pkg_info | grep sudo
sudo-1.7.2.5 Allow others to run commands as root
Строчка из скрипта:
Еще:
Код: Выделить всё
cat /usr/local/etc/sudoers | grep www
www ALL = NOPASSWD: /bin/dd, /sbin/mdconfig, /sbin/newfs, /sbin/mount, /sbin/umount, /bin/rm
Когда исполняется скрипт, то в логах пишет:
sudo: not found
Если запускаю скрипт в отдельном файле и пишу #!/usr/loca/bin/php .... и исполняю от рута без судо, то все гуд
Помогите разобраться где туплю
Re: sudo: not found
Добавлено: 2010-08-20 12:50:47
hizel
внедряйте полный путь до исполняемого файла
Re: sudo: not found
Добавлено: 2010-08-20 13:39:07
Гость
гм, не совсем понял
у меня есть скрипт, в котором есть некоторое кол-во созданных мной функций, одна из ф-ий и отвечает за указанное мной действие umount. Где я должен указать путь до исполняемого файла?
Re: sudo: not found
Добавлено: 2010-08-20 13:40:27
hizel
в exec
Re: sudo: not found
Добавлено: 2010-08-21 17:38:21
Bacek_92
Была тема у меня тоже не находило sudo... в инете облазил и понял что апача не находит судо, потому что не прописаны пути в конфигурационном фале (вроде пользователя www).
короче для теста тебе
Код: Выделить всё
<?php
echo "<pre>".`/usr/local/bin/sudo ipfw show`".<pre>";
?>
прошу учесть то, что
не выполниться. Также не забываем прописать в /usr/local/etc/sudoers пользователя www (от которого запущен httpd)
Re: sudo: not found
Добавлено: 2010-08-22 11:59:42
Гость
все так сделал: exec("/usr/local/bin/sudo /sbin/umount /dev/md0")
Теперь в логах апач пишет:
Код: Выделить всё
sudo: no tty present and no askpass program specified
но /usr/local/etc/sudoers:
Код: Выделить всё
www All=(ALL) NOPASSWD: /sbin/mount, /sbin/umount
полазил в инете, так пока решения и не нашел
еще нашел про флаг requiretty, но
Код: Выделить всё
requiretty
If set, sudo will only run when the user is logged in to a real tty. When this flag is set, sudo can only be run from a login session and not via other means such as cron(8) or cgi-bin scripts. This flag is off by default.
в конфиге про requiretty ничего нет
Re: sudo: not found
Добавлено: 2010-08-22 16:33:35
Bacek_92
Короче смотри,
Код: Выделить всё
no tty present and no askpass program specified
Явно твой метод не нравиться
Сначала попробуй добавить такое в /usr/local/etc/sudoers
Может быть, это лишнее, но для подстраховки. Тоесь оно через "sudo" дает все полномочия пользователя ROOT. Поставь сначала, потом если получиться - уберешь на свое.
Далее:
твой код для теста
Код: Выделить всё
<?php
$vivod_comandi=`/usr/local/bin/sudo /sbin/umount /dev/md0`;// Выполняет команду "/usr/local/bin/sudo /sbin/umount /dev/md0" и сохраняет вывод в переменную "$vivod_comandi"
echo $vivod_comandi; // Выводим то что в переменной "$vivod_comandi"
?>
Короче должно стопудов прокатить! У меня так крутилась моя прога ))
Re: sudo: not found
Добавлено: 2010-08-22 16:58:59
Andrey2009
..ляядь, ну никак не хочет, все тоже пишет
при редактировании /usr/loca/etc/sudoers ведь ничего перезагружать не надо? sudo читает этот файл каждый раз когда его вызывают?
Re: sudo: not found
Добавлено: 2010-08-22 17:10:31
Bacek_92
1) uname -a
2) Может надо переустановить sudo с другими параметрами?
cd /usr/ports/security/ && make deinstall && make config && make && make install && make clean
Может надо в опциях поставить галочку "With all insults" или или...
3) попробуйте выполнить в PHP команду типо `sudo reboot` если не получится, тогда дело сложное, если получиться, тогда по какой-то причине оно не хочет выполнять имеено "/usr/local/bin/sudo /sbin/umount /dev/md0" (не забудьте в sudoers выставить все права)
Re: sudo: not found
Добавлено: 2010-08-22 18:40:15
ViktorichZ
Andrey2009 писал(а):..ляядь, ну никак не хочет, все тоже пишет
при редактировании /usr/loca/etc/sudoers ведь ничего перезагружать не надо? sudo читает этот файл каждый раз когда его вызывают?
добавьте в sudoers полную команду, попробуйте сушнуться под данного пользователя и попробовать выполнит.
Re: sudo: not found
Добавлено: 2010-08-22 19:42:24
Гость
пасиб, справился сам, сделал как вы и посоветовали - пересобрал sudo, поставил везде галочки на всякий пожарный,
Re: sudo: not found
Добавлено: 2010-08-22 19:53:05
Гость
сюда же в топку вопросик, все мучаюсь автозагрузкой md device. По этой ссылке
http://sleepyhead.de/howto/?href=filesystem надо внести всего лишь изменения в rc.conf и /etc/fstab. Сделал также, но при загрузке система переходит в синг юзер, ругается на /etc/fstab. Если закоментить нужную строку, загрузится нормально, потом опять раскоменить, то md device создаются
Мой конфиг:
Код: Выделить всё
mdconfig_md0="-t vnode -f /usr/local/jails/jail_test3/usr/local/quota/test - /etc/rc.conf
/dev/md0 /usr/local/jails/jail_test3/usr/local/home/ahmadulin ufs rw 0 0 - /etc/fstab/
интересует следующий пунктик:
Код: Выделить всё
The file based image can be automatically mounted during boot with an entry in /etc/rc.conf and /etc/fstab. Test your setup with # /etc/rc.d/mdconfig start (first delete the md0 device with # mdconfig -d -u 0).
Note however that this automatic setup will only work if the file image is NOT on the root partition. The reason is that the /etc/rc.d/mdconfig script is executed very early during boot and the root partition is still read-only.
если структура такая:
Код: Выделить всё
mount
/dev/ad0s1a on / (ufs, local)
devfs on /dev (devfs, local)
/dev/ad0s1e on /tmp (ufs, local, soft-updates)
/dev/ad0s1f on /usr (ufs, local, soft-updates)
/dev/ad0s1d on /var (ufs, local, soft-updates)
/usr/ports on /usr/local/jails/jail_test3/usr/ports (nullfs, local)
devfs on /usr/local/jails/jail_test3/dev (devfs, local)
/dev/md0 on /usr/local/jails/jail_test3/usr/local/home/test (ufs, local)
то имеется ввиду не размещать md device в /dev/ad0s1a?
Re: sudo: not found
Добавлено: 2011-11-10 13:21:21
выыыыыыыы
Гость писал(а):все так сделал: exec("/usr/local/bin/sudo /sbin/umount /dev/md0")
Теперь в логах апач пишет:
Код: Выделить всё
sudo: no tty present and no askpass program specified
но /usr/local/etc/sudoers:
Код: Выделить всё
www All=(ALL) NOPASSWD: /sbin/mount, /sbin/umount
полазил в инете, так пока решения и не нашел
еще нашел про флаг requiretty, но
Код: Выделить всё
requiretty
If set, sudo will only run when the user is logged in to a real tty. When this flag is set, sudo can only be run from a login session and not via other means such as cron(8) or cgi-bin scripts. This flag is off by default.
в конфиге про requiretty ничего нет
tttttttttttttt