Как заставить / sbin / shutdown, / sbin / reboot и т. Д. Снова потребовать sudo в 16.04?

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

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

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

18
задан 19 June 2016 в 22:14

5 ответов

Systemd действительно обрабатывает выключение , перезагрузку и другие команды, а назначенные по умолчанию привилегии являются разрешительными. Чтобы изменить это, вам нужно создать правило 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>

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

5
ответ дан 20 June 2016 в 08:14
  • 1
    Спасибо за совет, David. Это - по существу мой самый первый ответ. У меня нет репутации, что поэтому когда-либо и я - полный новичок с Linux. После поиска в течение многих часов и выполнения, вслепую склонного - получают обновление, склонный - получают обновление, склонный - получают установку oracle-java8-installer ни с чем случай, я нашел проблему зависимости и испытывал желание сдвигать ее здесь. За Ваше здоровье! – Alexander Kitov 19 February 2018 в 07:13

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

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

     каталог chmod 700 / в / в / файл
     
  • Если вы хотите разрешить root и группу sudo, вы можете написать:

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

     chown owner: каталог группы / в / файл /
     
  • Если вы хотите вернуться, запустите:

     chown root: sudo filedirectory
     

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

0
ответ дан 20 June 2016 в 08:14
  • 1
    В этом случае добро пожаловать для Выяснения у Ubuntu и спасибо за Вас вклад! Я, конечно, don' t обвиняют Вас в Вашем beginner' s ошибка начиная с Q& модель Просит, чтобы Ubuntu (и Exchange Стека в целом) немного отличался от того, к чему большинство людей кажется привыкшим. Возможно, you' d нравится к , берут тур для получения дополнительной информации о нем. We' ре с нетерпением ожидая Вашего будущего и (надо надеяться) высококачественных вкладов! – David Foerster 19 February 2018 в 08:09

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

#!/bin/bash
if [ "$(whoami)" != "root" ]; then
    echo "Sorry, you are not root."
    exit 1
else
    (systemctl shutdown command)
fi

Source

-1
ответ дан 20 June 2016 в 08:14
  • 1
    Сбойные блоки на современном (21-й век) диск являются знаком неизбежного упадка. Идея списка сбойного блока стала довольно бессмысленной. Замените диск вместо этого. e2fsck отказы совсем не так плохи, как они могут быть вызваны переходными проблемами. Они не требуют замены диска. – MSalters 6 November 2017 в 03:27

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

-1
ответ дан 20 June 2016 в 08:14
  • 1
    Лучше всего не работать badblocks непосредственно, а скорее использование sudo e2fsck -ck /dev/sdxn. Проверьте man badblocks на большее количество информации. – heynnema 5 November 2017 в 08:15

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

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

0
ответ дан 20 June 2016 в 08:14
  • 1
    Когда плохое блокирование диска, it' s лучше всего для добавления новых сбойных блоков к существующий таблица дефектных блоков с sudo e2fsck -cfk /dev/sdxn... НО I' d проверяют УМНУЮ информацию сначала. – heynnema 5 November 2017 в 08:10

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

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