Как предоставить пользователю права на выключение?

Я использую 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

Как я могу разрешить пользователь выполнит команду выключения без необходимости вручную вводить пароль?

Спасибо.

9
задан 20 June 2011 в 15:55

40 ответов

Вы можете выключить или перезапустить, используя 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
6
ответ дан 25 May 2018 в 20:13

Вы можете выключить или перезапустить, используя 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
6
ответ дан 25 July 2018 в 21:42

Вы можете выключить или перезапустить, используя 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
6
ответ дан 31 July 2018 в 10:59

Вы можете выключить или перезапустить, используя 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
6
ответ дан 31 July 2018 в 11:58

Вы можете выключить или перезапустить, используя 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
6
ответ дан 2 August 2018 в 03:18

Вы можете выключить или перезапустить, используя 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
6
ответ дан 4 August 2018 в 19:14

Вы можете выключить или перезапустить, используя 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
6
ответ дан 6 August 2018 в 03:29

Вы можете выключить или перезапустить, используя 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  
6
ответ дан 7 August 2018 в 21:16

Вы можете выключить или перезапустить, используя 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  
6
ответ дан 10 August 2018 в 09:34

Вы можете выключить или перезапустить, используя 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  
6
ответ дан 13 August 2018 в 15:44

Я сделал это как в этом ответе, работает безупречно для меня. Возможно, ваш подход пропускает часть visudo?

Откройте командную строку и введите:

sudo visudo 

В открывшемся файле добавьте следующую строку в конец: [!d3 ]

yourusername ALL=NOPASSWD: /sbin/halt

Затем выйдите из редактора и сохраните его (CTRL + x).

Теперь вы можете выключить компьютер из командной строки, например после загрузки:

wget UrlOfTheFileYouWantToDownload ; sudo halt
7
ответ дан 25 May 2018 в 20:13

Некоторое время назад я сделал это, установив suid (Set User ID). Это заставляет программу выполнять роль владельца файла, а не пользователя, запускающего его. Поскольку shutdown принадлежит root, это должно позволить вам отключиться без sudo.

chmod u+s /sbin/shutdown

Имеются последствия для безопасности, поскольку каждый может запустить завершение работы. http://en.wikipedia.org/wiki/Setuid

1
ответ дан 25 May 2018 в 20:13
  • 1
    В общем случае не рекомендуется изменять файлы или метаданные файлов, установленные из пакетов, кроме файлов конфигурации в /etc. – enzotib 20 June 2011 в 16:57
  • 2
    Хм ... правда! Но каков официальный путь? Играете с полкитом? Не так приятно ... – turbo 20 June 2011 в 20:57
  • 3
    sudo - это правильный путь, на мой взгляд, но, к сожалению, пользователь не дает возможности увидеть его файл sudoers, и что с ним не так. – enzotib 20 June 2011 в 23:05
  • 4
    Это единственное, что сработало для меня. – Mark Stewart 23 September 2014 в 08:17

Похоже, вы хотите запустить скрипт как root. Если вы хотите запустить скрипт, который ждет чего-то, чтобы закончить, а затем отключить ваш компьютер, вы просто запустите скрипт с помощью sudo. Это будет запрашивать ваш пароль при запуске скрипта, но тогда сам скрипт может отключить систему без какого-либо дальнейшего вмешательства.

0
ответ дан 25 May 2018 в 20:13

Я сделал это как в этом ответе, работает безупречно для меня. Возможно, ваш подход пропускает часть visudo?

Откройте командную строку и введите:

sudo visudo

В открывшемся файле добавьте следующую строку в конец:

yourusername ALL=NOPASSWD: /sbin/halt

Затем выйдите из редактора и сохраните его (CTRL + x).

Теперь вы можете выключить компьютер из командной строки, например после загрузки:

wget UrlOfTheFileYouWantToDownload ; sudo halt
7
ответ дан 25 July 2018 в 21:42

Похоже, вы хотите запустить скрипт как root. Если вы хотите запустить скрипт, который ждет чего-то, чтобы закончить, а затем отключить ваш компьютер, вы просто запустите скрипт с помощью sudo. Это будет запрашивать ваш пароль при запуске скрипта, но тогда сам скрипт может отключить систему без какого-либо дальнейшего вмешательства.

0
ответ дан 25 July 2018 в 21:42

Некоторое время назад я сделал это, установив suid (Set User ID). Это заставляет программу выполнять роль владельца файла, а не пользователя, запускающего его. Поскольку shutdown принадлежит root, это должно позволить вам отключиться без sudo.

chmod u+s /sbin/shutdown

Имеются последствия для безопасности, поскольку каждый может запустить завершение работы. http://en.wikipedia.org/wiki/Setuid

1
ответ дан 25 July 2018 в 21:42
  • 1
    В общем случае не рекомендуется изменять файлы или метаданные файлов, установленные из пакетов, кроме файлов конфигурации в /etc. – enzotib 20 June 2011 в 16:57
  • 2
    Хм ... правда! Но каков официальный путь? Играете с полкитом? Не так приятно ... – turbo 20 June 2011 в 20:57
  • 3
    sudo - это правильный путь, на мой взгляд, но, к сожалению, пользователь не дает возможности увидеть его файл sudoers, и что с ним не так. – enzotib 20 June 2011 в 23:05
  • 4
    Это единственное, что сработало для меня. – Mark Stewart 23 September 2014 в 08:17

Я сделал это как в этом ответе, работает безупречно для меня. Возможно, ваш подход пропускает часть visudo?

Откройте командную строку и введите:

sudo visudo

В открывшемся файле добавьте следующую строку в конец:

yourusername ALL=NOPASSWD: /sbin/halt

Затем выйдите из редактора и сохраните его (CTRL + x).

Теперь вы можете выключить компьютер из командной строки, например после загрузки:

wget UrlOfTheFileYouWantToDownload ; sudo halt
7
ответ дан 31 July 2018 в 10:59

Похоже, вы хотите запустить скрипт как root. Если вы хотите запустить скрипт, который ждет чего-то, чтобы закончить, а затем отключить ваш компьютер, вы просто запустите скрипт с помощью sudo. Это будет запрашивать ваш пароль при запуске скрипта, но тогда сам скрипт может отключить систему без какого-либо дальнейшего вмешательства.

0
ответ дан 31 July 2018 в 10:59

Некоторое время назад я сделал это, установив suid (Set User ID). Это заставляет программу выполнять роль владельца файла, а не пользователя, запускающего его. Поскольку shutdown принадлежит root, это должно позволить вам отключиться без sudo.

chmod u+s /sbin/shutdown

Имеются последствия для безопасности, поскольку каждый может запустить завершение работы. http://en.wikipedia.org/wiki/Setuid

1
ответ дан 31 July 2018 в 10:59
  • 1
    В общем случае не рекомендуется изменять файлы или метаданные файлов, установленные из пакетов, кроме файлов конфигурации в /etc. – enzotib 20 June 2011 в 16:57
  • 2
    Хм ... правда! Но каков официальный путь? Играете с полкитом? Не так приятно ... – turbo 20 June 2011 в 20:57
  • 3
    sudo - это правильный путь, на мой взгляд, но, к сожалению, пользователь не дает возможности увидеть его файл sudoers, и что с ним не так. – enzotib 20 June 2011 в 23:05
  • 4
    Это единственное, что сработало для меня. – Mark Stewart 23 September 2014 в 08:17

Я сделал это как в этом ответе, работает безупречно для меня. Возможно, ваш подход пропускает часть visudo?

Откройте командную строку и введите:

sudo visudo

В открывшемся файле добавьте следующую строку в конец:

yourusername ALL=NOPASSWD: /sbin/halt

Затем выйдите из редактора и сохраните его (CTRL + x).

Теперь вы можете выключить компьютер из командной строки, например после загрузки:

wget UrlOfTheFileYouWantToDownload ; sudo halt
7
ответ дан 31 July 2018 в 11:58

Похоже, вы хотите запустить скрипт как root. Если вы хотите запустить скрипт, который ждет чего-то, чтобы закончить, а затем отключить ваш компьютер, вы просто запустите скрипт с помощью sudo. Это будет запрашивать ваш пароль при запуске скрипта, но тогда сам скрипт может отключить систему без какого-либо дальнейшего вмешательства.

0
ответ дан 31 July 2018 в 11:58

Некоторое время назад я сделал это, установив suid (Set User ID). Это заставляет программу выполнять роль владельца файла, а не пользователя, запускающего его. Поскольку shutdown принадлежит root, это должно позволить вам отключиться без sudo.

chmod u+s /sbin/shutdown

Имеются последствия для безопасности, поскольку каждый может запустить завершение работы. http://en.wikipedia.org/wiki/Setuid

1
ответ дан 31 July 2018 в 11:58
  • 1
    В общем случае не рекомендуется изменять файлы или метаданные файлов, установленные из пакетов, кроме файлов конфигурации в /etc. – enzotib 20 June 2011 в 16:57
  • 2
    Хм ... правда! Но каков официальный путь? Играете с полкитом? Не так приятно ... – turbo 20 June 2011 в 20:57
  • 3
    Это единственное, что сработало для меня. – Mark Stewart 23 September 2014 в 08:17

Я сделал это как в этом ответе, работает безупречно для меня. Возможно, ваш подход пропускает часть visudo?

Откройте командную строку и введите:

sudo visudo

В открывшемся файле добавьте следующую строку в конец:

yourusername ALL=NOPASSWD: /sbin/halt

Затем выйдите из редактора и сохраните его (CTRL + x).

Теперь вы можете выключить компьютер из командной строки, например после загрузки:

wget UrlOfTheFileYouWantToDownload ; sudo halt
7
ответ дан 2 August 2018 в 03:18

Похоже, вы хотите запустить скрипт как root. Если вы хотите запустить скрипт, который ждет чего-то, чтобы закончить, а затем отключить ваш компьютер, вы просто запустите скрипт с помощью sudo. Это будет запрашивать ваш пароль при запуске скрипта, но тогда сам скрипт может отключить систему без какого-либо дальнейшего вмешательства.

0
ответ дан 2 August 2018 в 03:18

Некоторое время назад я сделал это, установив suid (Set User ID). Это заставляет программу выполнять роль владельца файла, а не пользователя, запускающего его. Поскольку shutdown принадлежит root, это должно позволить вам отключиться без sudo.

chmod u+s /sbin/shutdown

Имеются последствия для безопасности, поскольку каждый может запустить завершение работы. http://en.wikipedia.org/wiki/Setuid

1
ответ дан 2 August 2018 в 03:18
  • 1
    В общем случае не рекомендуется изменять файлы или метаданные файлов, установленные из пакетов, кроме файлов конфигурации в /etc. – enzotib 20 June 2011 в 16:57
  • 2
    Хм ... правда! Но каков официальный путь? Играете с полкитом? Не так приятно ... – turbo 20 June 2011 в 20:57
  • 3
    sudo - это правильный путь, на мой взгляд, но, к сожалению, пользователь не дает возможности увидеть его файл sudoers, и что с ним не так. – enzotib 20 June 2011 в 23:05
  • 4
    Это единственное, что сработало для меня. – Mark Stewart 23 September 2014 в 08:17

Я сделал это как в этом ответе, работает безупречно для меня. Возможно, ваш подход пропускает часть visudo?

Откройте командную строку и введите:

sudo visudo

В открывшемся файле добавьте следующую строку в конец:

yourusername ALL=NOPASSWD: /sbin/halt

Затем выйдите из редактора и сохраните его (CTRL + x).

Теперь вы можете выключить компьютер из командной строки, например после загрузки:

wget UrlOfTheFileYouWantToDownload ; sudo halt
7
ответ дан 4 August 2018 в 19:14

Похоже, вы хотите запустить скрипт как root. Если вы хотите запустить скрипт, который ждет чего-то, чтобы закончить, а затем отключить ваш компьютер, вы просто запустите скрипт с помощью sudo. Это будет запрашивать ваш пароль при запуске скрипта, но тогда сам скрипт может отключить систему без какого-либо дальнейшего вмешательства.

0
ответ дан 4 August 2018 в 19:14

Некоторое время назад я сделал это, установив suid (Set User ID). Это заставляет программу выполнять роль владельца файла, а не пользователя, запускающего его. Поскольку shutdown принадлежит root, это должно позволить вам отключиться без sudo.

chmod u+s /sbin/shutdown

Имеются последствия для безопасности, поскольку каждый может запустить завершение работы. http://en.wikipedia.org/wiki/Setuid

1
ответ дан 4 August 2018 в 19:14
  • 1
    В общем случае не рекомендуется изменять файлы или метаданные файлов, установленные из пакетов, кроме файлов конфигурации в /etc. – enzotib 20 June 2011 в 16:57
  • 2
    Хм ... правда! Но каков официальный путь? Играете с полкитом? Не так приятно ... – turbo 20 June 2011 в 20:57
  • 3
    sudo - это правильный путь, на мой взгляд, но, к сожалению, пользователь не дает возможности увидеть его файл sudoers, и что с ним не так. – enzotib 20 June 2011 в 23:05
  • 4
    Это единственное, что сработало для меня. – Mark Stewart 23 September 2014 в 08:17

Я сделал это как в этом ответе, работает безупречно для меня. Возможно, ваш подход пропускает часть visudo?

Откройте командную строку и введите:

sudo visudo

В открывшемся файле добавьте следующую строку в конец:

yourusername ALL=NOPASSWD: /sbin/halt

Затем выйдите из редактора и сохраните его (CTRL + x).

Теперь вы можете выключить компьютер из командной строки, например после загрузки:

wget UrlOfTheFileYouWantToDownload ; sudo halt
7
ответ дан 6 August 2018 в 03:29

Похоже, вы хотите запустить скрипт как root. Если вы хотите запустить скрипт, который ждет чего-то, чтобы закончить, а затем отключить ваш компьютер, вы просто запустите скрипт с помощью sudo. Это будет запрашивать ваш пароль при запуске скрипта, но тогда сам скрипт может отключить систему без какого-либо дальнейшего вмешательства.

0
ответ дан 6 August 2018 в 03:29

Другие вопросы по тегам:

Похожие вопросы: