3

Мое грязное решение - это chmod +s /sbin/shutdown . Это работает, но это, вероятно, не хорошая практика и небезопасно. Более того, после некоторых обновлений системы бит suid сбрасывается. Каков будет правильный способ сделать это?

3 ответа3

3

Все пользователи? Или выбранное их подмножество? Будут ли они использовать компьютер локально или также удаленно (например, через ssh).

В случае нескольких пользователей, которые также работают удаленно, sudo будет работать нормально. Смотрите эту ссылку для деталей.

Если они входят в систему локально и через графический интерфейс, тогда есть лучшие варианты. Например, захватить три пальца салюта с помощью init и дать этому запустить 1 минутную задержку выключения. Прошло много лет с тех пор, как я это настроил, поэтому я пропустил детали этого. (Я использовал это когда Slackware 3 был современным)

2

Если ваше shutdown принимает ключ -a (проверьте с помощью shutdown --help), вы можете сделать следующее:

  • Добавьте пользователей, которые должны иметь возможность завершить работу системы, в /etc/shutdown.allow .

    Пример:

    userA
    userB
    
  • Выключите систему с помощью ключа -a .

    Пример:

    shutdown -a -h now
    

Источник: справочные страницы UNIX: shutdown (8)

1

Я использую SL 6.4. Он имеет пользовательскую версию poweroff, halt, reboot, предоставляемую пакетом usermode. Я могу выключиться, перезагрузиться как обычный пользователь (также из командной строки)

    $ which {poweroff,reboot,halt}
    /usr/bin/poweroff
    /usr/bin/reboot
    /usr/bin/halt

    rpm -qf $(which poweroff reboot halt)
    usermode-1.102-3.el6.x86_64
    usermode-1.102-3.el6.x86_64
    usermode-1.102-3.el6.x86_64

Как корень

    # which {poweroff,reboot,halt}
    /sbin/poweroff
    /sbin/reboot
    /sbin/halt

    # rpm -qf $(which poweroff reboot halt)
    upstart-0.6.5-12.el6.x86_64
    upstart-0.6.5-12.el6.x86_64
    upstart-0.6.5-12.el6.x86_64

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .