Intereting Posts
Ubuntu 14.04 Медленное и нестабильное соединение Wi-Fi f.lux перестала работать с обновлением ядра Как подключить Ethernet через модем Huawei Smart AXMT880s (с автоматическим обнаружением)? Ошибка сборки Rhythmbox Проблемы с nVidia GeForce 210 во время просмотра фильмов значок менеджера сети на 16.04 не отображается Выполняется ли запуск сервера Minecraft с меньшим запаздыванием на сервере Ubuntu, чем в Windows 7? Как захватить скриншот Code :: Blocks Внешнее резервное копирование – ошибка «cp: невозможно создать обычный файл» Что такое GSettings и для чего Unity использует его? Как получить серийный номер моего монитора? Как изолировать Python 2.7.X от Ubuntu 12.04, который имеет Python 2.7.3 по умолчанию? После завершения обновлений, если выбрана опция «перезапустить позже», это нормально, если это просто выключение? Как настроить rsyslog для отправки журналов из конкретной программы на удаленный сервер syslog? Демон передачи: разрешение отклонено, даже если debian-передача имеет корневую группу

Как сделать / sbin / shutdown, / sbin / reboot и т. Д. Требуется sudo снова в 16.04?

По какой-то причине нам больше не нужно быть root (или использовать sudo ) для запуска /sbin/shutdown , /sbin/reboot и т. Д.

Кажется, что эти исполняемые файлы являются символическими /bin/systemctl на /bin/systemctl которые обрабатывают все как обычные пользователи.

Однако, что, если я хочу shutdown и reboot чтобы снова потребовать проверку подлинности? Как я могу это достичь?

Systemd действительно обрабатывает команды shutdown , reboot и другие команды, а назначенные по умолчанию привилегии разрешительны. Чтобы изменить это, вам необходимо создать правило Polkit. Создайте файл .pkla в /etc/polkit-1/localauthority/50-local.d (скажем, confirm-shutdown.pkla ), содержащий:

 [Confirm shutdown] Identity=unix-user:* Action=org.freedesktop.login1.* ResultActive=auth_admin_keep 

Различные команды выключения, перезагрузки и т. Д., В терминах Polkit, действия в org.freedesktop.login1 , например, org.freedesktop.login1.power-off , org.freedesktop.login1.reboot и т. Д. Конкретная проблема здесь является конфигурацией по умолчанию, которая находится в /usr/share/polkit-1/actions/org.freedesktop.login1.policy :

 <action id="org.freedesktop.login1.power-off"> <description>Power off the system</description> ... <defaults> <allow_any>auth_admin_keep</allow_any> <allow_inactive>auth_admin_keep</allow_inactive> <allow_active>yes</allow_active> </defaults> по <action id="org.freedesktop.login1.power-off"> <description>Power off the system</description> ... <defaults> <allow_any>auth_admin_keep</allow_any> <allow_inactive>auth_admin_keep</allow_inactive> <allow_active>yes</allow_active> </defaults> 

Обратите внимание, что он позволяет активному пользователю отключать питание, перезагружать и т. Д.

Вы можете использовать команду chmod .

  • Если вы хотите предоставить доступ только к root, вы можете написать:

     chmod 700 directory/to/the/file 
  • Если вы хотите дать permisson для root и sudo group, вы можете написать:

     chmod 770 directory/to/the/file 
  • Если вы хотите изменить группу файлов с sudo на другой (например, пользователь или администраторы), вам нужно ввести:

     chown owner:group directory/to/the/file 
  • Если вы хотите вернуться назад, запустите:

     chown root:sudo filedirectory 

Примечание : вам может потребоваться использовать sudo для этой команды или войти в учетную запись root

Поскольку изменение разрешений символической ссылки в системе Linux не изменяет разрешения ссылки, а вместо этого указывает файл (в Ubuntu как минимум). Я думаю, что самым безопасным способом добиться этого было бы удалить ссылку и воссоздать ее с требуемым umask, чтобы получить желаемый результат.

Другой связанный пост можно найти здесь

Вы можете создать скрипт, который проверяет, работает ли пользователь с правами root или нет.
Затем он запустит команду systemctl или вернет ошибку.

 #! / Bin / Баш
 если ["$ (whoami)"! = "root"];  тогда
     echo «Извините, вы не root».
     выход 1
 еще
     (команда shutdown systemctl)
 фи

Источник

Попытайтесь изменить свои разрешения в терминале. Вы можете сделать его исполняемым только определенной группой, например, колесом или администратором. К сожалению (или, возможно, к счастью), файл может содержать только одну группу, поэтому chown просто не будет работать сам по себе. Попробуйте «sudo chown root: wheel / sbin / shutdown», а затем «sudo chmod g + x / sbin / shutdown». Это сделает файл исполняемым только root, а администраторы (содрогания) и sudoers будут обязаны вводить свои пароли.