Я использую Ubuntu 11.04. Я хочу запустить скрипт, который проверяет выполняемый процесс и завершает работу системы, когда этот процесс завершается. Для этого пользователю требуется выключение доступа, чтобы сценарий мог быть выполнен без необходимости ввода пароля.
Я ссылался на эту страницу и добавил текст в файле sudoers. Тем не менее, он все еще спрашивает меня пароль всякий раз, когда я выполняю sudo shutdown -h now. Кроме того, я получаю сообщение об ошибке root, когда я выполняю shutdown без sudo.
Мой файл sudoers выглядит примерно так.
# Cmnd alias specification
Cmnd_Alias SHUTDOWN = /sbin/shutdown
# User privilege specification
root ALL=(ALL:ALL) ALL
myusername ALL = NOPASSWD: SHUTDOWN
Как я могу разрешить пользователь выполнит команду выключения без необходимости вручную вводить пароль?
Спасибо.
Вы можете выключить или перезапустить, используя HAL или ConsoleKit, для которых не требуется вводить имя пользователя / пароль:
HAL (более старые версии Ubuntu):
dbus-send --system --print-reply --dest=org.freedesktop.Hal /org/freedesktop/Hal/devices/computer org.freedesktop.Hal.Device.SystemPowerManagement.Shutdown
ConsoleKit ( более новые версии Ubuntu, протестированные на Ubuntu 11.04):
dbus-send --system --print-reply --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
Вы можете выключить или перезапустить, используя HAL или ConsoleKit, для которых не требуется вводить имя пользователя / пароль:
HAL (более старые версии Ubuntu):
dbus-send --system --print-reply --dest=org.freedesktop.Hal /org/freedesktop/Hal/devices/computer org.freedesktop.Hal.Device.SystemPowerManagement.Shutdown
ConsoleKit ( более новые версии Ubuntu, протестированные на Ubuntu 11.04):
dbus-send --system --print-reply --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
Вы можете выключить или перезапустить, используя HAL или ConsoleKit, для которых не требуется вводить имя пользователя / пароль:
HAL (более старые версии Ubuntu):
dbus-send --system --print-reply --dest=org.freedesktop.Hal /org/freedesktop/Hal/devices/computer org.freedesktop.Hal.Device.SystemPowerManagement.Shutdown
ConsoleKit ( более новые версии Ubuntu, протестированные на Ubuntu 11.04):
dbus-send --system --print-reply --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
Вы можете выключить или перезапустить, используя HAL или ConsoleKit, для которых не требуется вводить имя пользователя / пароль:
HAL (более старые версии Ubuntu):
dbus-send --system --print-reply --dest=org.freedesktop.Hal /org/freedesktop/Hal/devices/computer org.freedesktop.Hal.Device.SystemPowerManagement.Shutdown
ConsoleKit ( более новые версии Ubuntu, протестированные на Ubuntu 11.04):
dbus-send --system --print-reply --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
Вы можете выключить или перезапустить, используя HAL или ConsoleKit, для которых не требуется вводить имя пользователя / пароль:
HAL (более старые версии Ubuntu):
dbus-send --system --print-reply --dest=org.freedesktop.Hal /org/freedesktop/Hal/devices/computer org.freedesktop.Hal.Device.SystemPowerManagement.Shutdown
ConsoleKit ( более новые версии Ubuntu, протестированные на Ubuntu 11.04):
dbus-send --system --print-reply --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
Вы можете выключить или перезапустить, используя HAL или ConsoleKit, для которых не требуется вводить имя пользователя / пароль:
HAL (более старые версии Ubuntu):
dbus-send --system --print-reply --dest=org.freedesktop.Hal /org/freedesktop/Hal/devices/computer org.freedesktop.Hal.Device.SystemPowerManagement.Shutdown
ConsoleKit ( более новые версии Ubuntu, протестированные на Ubuntu 11.04):
dbus-send --system --print-reply --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
Вы можете выключить или перезапустить, используя HAL или ConsoleKit, для которых не требуется вводить имя пользователя / пароль:
HAL (более старые версии Ubuntu):
dbus-send --system --print-reply --dest=org.freedesktop.Hal /org/freedesktop/Hal/devices/computer org.freedesktop.Hal.Device.SystemPowerManagement.Shutdown
ConsoleKit ( более новые версии Ubuntu, протестированные на Ubuntu 11.04):
dbus-send --system --print-reply --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
Вы можете выключить или перезапустить, используя HAL или ConsoleKit, для которых не требуется вводить имя пользователя / пароль:
HAL (более старые версии Ubuntu):
dbus- send --system --print-reply --dest = org.freedesktop.Hal / org / freedesktop / Hal / devices / computer org.freedesktop.Hal.Device.SystemPowerManagement.Shutdown
ConsoleKit (новые версии Ubuntu, протестированные на Ubuntu 11.04):
dbus-send --system --print-reply --dest = org.freedesktop.ConsoleKit / org / freedesktop / ConsoleKit / Manager org.freedesktop.ConsoleKit.Manager.Stop
Вы можете выключить или перезапустить, используя HAL или ConsoleKit, для которых не требуется вводить имя пользователя / пароль:
HAL (более старые версии Ubuntu):
dbus- send --system --print-reply --dest = org.freedesktop.Hal / org / freedesktop / Hal / devices / computer org.freedesktop.Hal.Device.SystemPowerManagement.Shutdown
ConsoleKit (новые версии Ubuntu, протестированные на Ubuntu 11.04):
dbus-send --system --print-reply --dest = org.freedesktop.ConsoleKit / org / freedesktop / ConsoleKit / Manager org.freedesktop.ConsoleKit.Manager.Stop
Вы можете выключить или перезапустить, используя HAL или ConsoleKit, для которых не требуется вводить имя пользователя / пароль:
HAL (более старые версии Ubuntu):
dbus- send --system --print-reply --dest = org.freedesktop.Hal / org / freedesktop / Hal / devices / computer org.freedesktop.Hal.Device.SystemPowerManagement.Shutdown
ConsoleKit (новые версии Ubuntu, протестированные на Ubuntu 11.04):
dbus-send --system --print-reply --dest = org.freedesktop.ConsoleKit / org / freedesktop / ConsoleKit / Manager org.freedesktop.ConsoleKit.Manager.Stop
Я сделал это как в этом ответе, работает безупречно для меня. Возможно, ваш подход пропускает часть visudo?
Откройте командную строку и введите:
sudo visudo
В открывшемся файле добавьте следующую строку в конец: [!d3 ]
yourusername ALL=NOPASSWD: /sbin/halt
Затем выйдите из редактора и сохраните его (CTRL + x).
Теперь вы можете выключить компьютер из командной строки, например после загрузки:
wget UrlOfTheFileYouWantToDownload ; sudo halt
Некоторое время назад я сделал это, установив suid (Set User ID). Это заставляет программу выполнять роль владельца файла, а не пользователя, запускающего его. Поскольку shutdown принадлежит root, это должно позволить вам отключиться без sudo.
chmod u+s /sbin/shutdown
Имеются последствия для безопасности, поскольку каждый может запустить завершение работы. http://en.wikipedia.org/wiki/Setuid
Похоже, вы хотите запустить скрипт как root. Если вы хотите запустить скрипт, который ждет чего-то, чтобы закончить, а затем отключить ваш компьютер, вы просто запустите скрипт с помощью sudo. Это будет запрашивать ваш пароль при запуске скрипта, но тогда сам скрипт может отключить систему без какого-либо дальнейшего вмешательства.
Я сделал это как в этом ответе, работает безупречно для меня. Возможно, ваш подход пропускает часть visudo?
Откройте командную строку и введите:
sudo visudo
В открывшемся файле добавьте следующую строку в конец:
yourusername ALL=NOPASSWD: /sbin/halt
Затем выйдите из редактора и сохраните его (CTRL + x).
Теперь вы можете выключить компьютер из командной строки, например после загрузки:
wget UrlOfTheFileYouWantToDownload ; sudo halt
Похоже, вы хотите запустить скрипт как root. Если вы хотите запустить скрипт, который ждет чего-то, чтобы закончить, а затем отключить ваш компьютер, вы просто запустите скрипт с помощью sudo. Это будет запрашивать ваш пароль при запуске скрипта, но тогда сам скрипт может отключить систему без какого-либо дальнейшего вмешательства.
Некоторое время назад я сделал это, установив suid (Set User ID). Это заставляет программу выполнять роль владельца файла, а не пользователя, запускающего его. Поскольку shutdown принадлежит root, это должно позволить вам отключиться без sudo.
chmod u+s /sbin/shutdown
Имеются последствия для безопасности, поскольку каждый может запустить завершение работы. http://en.wikipedia.org/wiki/Setuid
Я сделал это как в этом ответе, работает безупречно для меня. Возможно, ваш подход пропускает часть visudo?
Откройте командную строку и введите:
sudo visudo
В открывшемся файле добавьте следующую строку в конец:
yourusername ALL=NOPASSWD: /sbin/halt
Затем выйдите из редактора и сохраните его (CTRL + x).
Теперь вы можете выключить компьютер из командной строки, например после загрузки:
wget UrlOfTheFileYouWantToDownload ; sudo halt
Похоже, вы хотите запустить скрипт как root. Если вы хотите запустить скрипт, который ждет чего-то, чтобы закончить, а затем отключить ваш компьютер, вы просто запустите скрипт с помощью sudo. Это будет запрашивать ваш пароль при запуске скрипта, но тогда сам скрипт может отключить систему без какого-либо дальнейшего вмешательства.
Некоторое время назад я сделал это, установив suid (Set User ID). Это заставляет программу выполнять роль владельца файла, а не пользователя, запускающего его. Поскольку shutdown принадлежит root, это должно позволить вам отключиться без sudo.
chmod u+s /sbin/shutdown
Имеются последствия для безопасности, поскольку каждый может запустить завершение работы. http://en.wikipedia.org/wiki/Setuid
Я сделал это как в этом ответе, работает безупречно для меня. Возможно, ваш подход пропускает часть visudo?
Откройте командную строку и введите:
sudo visudo
В открывшемся файле добавьте следующую строку в конец:
yourusername ALL=NOPASSWD: /sbin/halt
Затем выйдите из редактора и сохраните его (CTRL + x).
Теперь вы можете выключить компьютер из командной строки, например после загрузки:
wget UrlOfTheFileYouWantToDownload ; sudo halt
Похоже, вы хотите запустить скрипт как root. Если вы хотите запустить скрипт, который ждет чего-то, чтобы закончить, а затем отключить ваш компьютер, вы просто запустите скрипт с помощью sudo. Это будет запрашивать ваш пароль при запуске скрипта, но тогда сам скрипт может отключить систему без какого-либо дальнейшего вмешательства.
Некоторое время назад я сделал это, установив suid (Set User ID). Это заставляет программу выполнять роль владельца файла, а не пользователя, запускающего его. Поскольку shutdown принадлежит root, это должно позволить вам отключиться без sudo.
chmod u+s /sbin/shutdown
Имеются последствия для безопасности, поскольку каждый может запустить завершение работы. http://en.wikipedia.org/wiki/Setuid
Я сделал это как в этом ответе, работает безупречно для меня. Возможно, ваш подход пропускает часть visudo?
Откройте командную строку и введите:
sudo visudo
В открывшемся файле добавьте следующую строку в конец:
yourusername ALL=NOPASSWD: /sbin/halt
Затем выйдите из редактора и сохраните его (CTRL + x).
Теперь вы можете выключить компьютер из командной строки, например после загрузки:
wget UrlOfTheFileYouWantToDownload ; sudo halt
Похоже, вы хотите запустить скрипт как root. Если вы хотите запустить скрипт, который ждет чего-то, чтобы закончить, а затем отключить ваш компьютер, вы просто запустите скрипт с помощью sudo. Это будет запрашивать ваш пароль при запуске скрипта, но тогда сам скрипт может отключить систему без какого-либо дальнейшего вмешательства.
Некоторое время назад я сделал это, установив suid (Set User ID). Это заставляет программу выполнять роль владельца файла, а не пользователя, запускающего его. Поскольку shutdown принадлежит root, это должно позволить вам отключиться без sudo.
chmod u+s /sbin/shutdown
Имеются последствия для безопасности, поскольку каждый может запустить завершение работы. http://en.wikipedia.org/wiki/Setuid
Я сделал это как в этом ответе, работает безупречно для меня. Возможно, ваш подход пропускает часть visudo?
Откройте командную строку и введите:
sudo visudo
В открывшемся файле добавьте следующую строку в конец:
yourusername ALL=NOPASSWD: /sbin/halt
Затем выйдите из редактора и сохраните его (CTRL + x).
Теперь вы можете выключить компьютер из командной строки, например после загрузки:
wget UrlOfTheFileYouWantToDownload ; sudo halt
Похоже, вы хотите запустить скрипт как root. Если вы хотите запустить скрипт, который ждет чего-то, чтобы закончить, а затем отключить ваш компьютер, вы просто запустите скрипт с помощью sudo. Это будет запрашивать ваш пароль при запуске скрипта, но тогда сам скрипт может отключить систему без какого-либо дальнейшего вмешательства.
Некоторое время назад я сделал это, установив suid (Set User ID). Это заставляет программу выполнять роль владельца файла, а не пользователя, запускающего его. Поскольку shutdown принадлежит root, это должно позволить вам отключиться без sudo.
chmod u+s /sbin/shutdown
Имеются последствия для безопасности, поскольку каждый может запустить завершение работы. http://en.wikipedia.org/wiki/Setuid
Я сделал это как в этом ответе, работает безупречно для меня. Возможно, ваш подход пропускает часть visudo?
Откройте командную строку и введите:
sudo visudo
В открывшемся файле добавьте следующую строку в конец:
yourusername ALL=NOPASSWD: /sbin/halt
Затем выйдите из редактора и сохраните его (CTRL + x).
Теперь вы можете выключить компьютер из командной строки, например после загрузки:
wget UrlOfTheFileYouWantToDownload ; sudo halt
Похоже, вы хотите запустить скрипт как root. Если вы хотите запустить скрипт, который ждет чего-то, чтобы закончить, а затем отключить ваш компьютер, вы просто запустите скрипт с помощью sudo. Это будет запрашивать ваш пароль при запуске скрипта, но тогда сам скрипт может отключить систему без какого-либо дальнейшего вмешательства.