|
|
|
|
Сделал так. Установил SUID: chmod u+s /sbin/shutdown Потом создал на столе ярлыки для Reset и Off sutdown -r now и -h now Всё работает. -------------------------- Однако, вопрос всё ещё остался. Как в скрипте залогиниться под рутом? То есть как в скрипте прописать залогинивание рута, чтоб потом все действия происходили с его правами? |
|
|
>Как в скрипте залогиниться под рутом? То есть как в скрипте прописать залогинивание рута, чтоб потом все действия происходили с его правами? А и не надо этого делать! Штатного способа для этого, на сколько я знаю, нет - это противоречит философии unix. Не стоит делать из линукса винду. SUID flag c "/sbin/shutdown" стоит снять, а вместо этого настроить sudo. Без пароля, или лучше с паролем - правила техники безопасности в компьютерах лучше соблюдать. Настройка sudo - нужно отредактировать файл /etc/sudoers. Самое лучшее набрать от root: visudo откроется консольный текстовый редактор по умолчанию (у меня nano) затем добавить строчку (поправите имя пользователя): username localhost = NOPASSWD: /sbin/shutdown или с паролём: username localhost = /sbin/shutdown После этого можно использовать "sudo /sbin/shutdown" от указанного пользователя - а не как в случае с SUID, что любой пользователь, с минимальными привилегиями, может выключить команду от рута. Вместо "shutdown -r now" и "shutdown -h now" можно использовать /sbin/reboot и /sbin/halt Вот так: username localhost = NOPASSWD: /sbin/reboot,/sbin/halt Если вы хотите выполнять весь скрипт от рута, то добавьте в sudo весь скрипт, если пару команд в скрипте, то только их, если если какую-то часть - попробуйте выделить её в отдельный файл - и настроить sudo соответственно. Для редактирования файлов от рута есть sudoedit. Для справки: по самой sudo: man sudo по формату файла /etc/sudoers man sudoers |
|
|
Предыдущее замечание взял на заметку. Проблема вылезла, не понял почему. Раньше при запуске от юзера Харддрейк нормально запускался и работал. Теперь ничего не происходит [vlad@localhost ~]$ /usr/sbin/harddrake2 [vlad@localhost ~]$ В менеджере процессов на секунду появляется и пропадает. Если запускать от рута, то нормально работает. Ради эксперемента пробовал харддрейку присваивать бит SUID, тогда он вообще перестаёт запускаться [root@localhost ~]# /usr/sbin/harddrake2 Setuid/gid script is writable by world. Возвращаю обратно, работает только от рута. Что делать? ---------------- Та же проблема с /usr/bin/rpmdrake |
|
|
Гм... для этих программ sudo, наверно, был настроен по умолчанию... А как Вы редактировали /etc/sudoers? С помощью visudo? Ничего лишнего не удалили? Судя по http://wiki.mandriva.com/ru/Docs/Basic_tasks/Installing_and_removing_software (сам не Mandriva пользуюсь), для запуска rpmdrake нужны права администратора. Можно посмотреть Ваш /etc/sudoers? Ну и ёщё сделайте: ls -l /usr/sbin/harddrake2 ls -l /usr/bin/rpmdrake и пришлите их вывод |
|
|
aem: А как Вы редактировали /etc/sudoers? Да, собственно, никак. Просто посмотрел что внутри. А вообще у меня есть kate (kate /etc/sudoers) aem: для запуска rpmdrake нужны права администратора Это я в курсе. Ведь раньше он при запуске просил пароль (если не вводить, то работал на просмотр только), а теперь ничего не происходит. # sudoers file. # # This file MUST be edited with the 'visudo' command as root. # # See the sudoers man page for the details on how to write a sudoers file. # # Host alias specification # User alias specification # Cmnd alias specification # Defaults specification # Defaults syslog=auth # Runas alias specification # User privilege specification root ALL=(ALL) ALL # Uncomment to allow people in group wheel to run all commands # %wheel ALL=(ALL) ALL # Same thing without a password # %wheel ALL=(ALL) NOPASSWD: ALL # Samples # %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom # %users localhost=/sbin/shutdown -h now [root@localhost vlad]# ls -l /usr/sbin/harddrake2 -rwxrwxrwt 1 root root 29064 Мар 30 2007 /usr/sbin/harddrake2* (эти буквы зелёные /usr/sbin/harddrake2) [root@localhost vlad]# ls -l /usr/bin/rpmdrake lrwxrwxrwx 1 root root 27 Апр 11 14:18 /usr/bin/rpmdrake -> ../../usr/bin/consolehelper* (это синее /usr/bin/rpmdrake , а это красное ../../usr/bin/conehelper) Если запускать этот /usr/sbin/rpmdrake , то запускается в режиме чтения без возможности ввеси пароль. |
|
|
Так... Сразу, о редактировании /etc/sudoers. ОЧЕНЬ не рекомендуется редактировать его чем-то кроме visudo (от root-а в консоли), visudo создаст временную копию файла, после сохранения и выхода проверит её - и только тогда перезапишет /etc/sudoers. Коротко о проблеме: Похоже, что Вы просто запутались, надо запускать не /usr/sbin/rpmdrake (этот пароля не спросит) а /usr/bin/rpmdrake или просто rpmdrake Подробнее: /usr/bin/rpmdrake это символическая ссылка на /usr/bin/consolehelper В общем, ссылки - это аналог shortcut в виндовс, только лучше. Если интересно могу,потом, объяснить подробней. Но в этом случае все хитрее - consolehelper (с помощью /usr/sbin/userhelper) запускает прогу из /usr/sbin/ с таким же именем файла(rpmdrake) какое у ссылки (в нашем случае выходит /usr/sbin/rpmdrake) предварительно проверив пароль. Признаться, я этого не знал. Всё sudo и консоль... по-другому привык. У меня таких и не установлено. И ещё, подозреваю, что перезагрузить и выключить компьютер можно командами reboot и halt (/usr/bin/reboot и /usr/bin/halt), уже настроенными через, всё тот же, consolehelper. Вот тут коротко описывается как такое настраивать, правда для другого дистрибутива: http://www.rhd.ru/docs/manuals/enterprise/RHEL-AS-2.1-Manual/custom-guide/s1-acc... |
|
|
aem: /usr/bin/rpmdrake это символическая ссылка на /usr/bin/consolehelper Я про это догадывался, символ ярлыка файл имеет ибо. Про остальное почитаю... |
|
|
Снова проблемы и гугл не помогает. Как отключить иксы в debian lenny lxde? Но чтоб потом можно было снова включть. |
|
|
Конкретно про ваш дистр не скажу, но в качестве стандартного хода загрузка в runlevel 3 (без иксов). |
|
|
Detector: загрузка в runlevel 3 (без иксов). Если бы я ещё знал что это значит... Сделал немного криво, но сработало. В папке /etc/rc2.d/ Переименовывал : @S30gdm в @off30gdm Иксы не стартовали.
|
|
|
|
|