Вопрос или проблема
Мне нужно создать пользователя и запретить ему возможность выключить машину.
Кто-нибудь знает, как изменить разрешения обычного пользователя, чтобы не позволить мне выключать?
Использование shutdown
требует привилегированного аккаунта. Цитата из документации FreeBSD.org:
Необходимо быть
root
или членомoperator
, чтобы выполнить shutdown(8).
Сравните владение и режим файла /sbin/shutdown
(в частности, бит suid
), чтобы понять почему.
Если вы установили порт security/sudo
и у пользователя есть права sudo
, вы можете запретить доступ к shutdown
, reboot
, poweroff
и halt, изменив /etc/sudoers
на что-то вроде этого:
username ALL=(ALL:ALL) ALL, !SHUTDOWN
или
%groupname ALL=(ALL:ALL) ALL, !SHUTDOWN
чтобы запретить группе.
Ответ или решение
Чтобы ограничить привилегии пользователя на отключение машины в FreeBSD, необходимо рассмотреть несколько ключевых моментов, связанных с управлением правами доступа. В системе FreeBSD только пользователь с правами суперпользователя (root) или член группы operator
может выполнять команды, связанные с завершением работы системы, такие как shutdown
, reboot
, poweroff
и halt
.
Основные шаги для ограничения доступа к командам отключения системы:
1. Создание нового пользователя
Сначала необходимо создать нового пользователя, которому вы хотите запретить возможность отключать систему. Это можно сделать с помощью команды:
adduser имя_пользователя
Следуйте инструкциям, чтобы установить параметры нового пользователя.
2. Проверка привилегий
Убедитесь, что ваш новый пользователь не принадлежит группе operator
. Это можно сделать с помощью команды:
id имя_пользователя
Если пользователь является членом группы operator
, вы можете удалить его из этой группы с помощью следующей команды:
pw groupmod operator -d имя_пользователя
3. Управление правами через sudo
Если на вашей системе установлен пакет sudo
, у вас есть возможность контролировать, какие команды может выполнять пользователь. Откройте файл конфигурации sudoers
, используя команду:
visudo
Добавьте следующие строки для ограничения доступа к командам отключения:
имя_пользователя ALL=(ALL:ALL) ALL, !SHUTDOWN
Это запретит пользователю запускать команды отключения системы. Если вы хотите применить это к группе пользователей, используйте:
%имя_группы ALL=(ALL:ALL) ALL, !SHUTDOWN
4. Проверка настроек
Убедитесь, что внесенные изменения применены корректно. Чтобы проверить, что пользователь действительно не может выполнять команду shutdown
, вы можете выполнить следующую команду от лица этого пользователя:
sudo shutdown now
Если настройки были удачно применены, вы получите сообщение об ошибке, что у вас нет разрешений для выполнения этой команды.
Заключение
Ограничение прав доступа пользователя к командам отключения системы в FreeBSD является важным аспектом администрирования системы. Следуя описанным шагам, вы сможете создать безопасную и управляемую среду, минимизируя риски неправильного использования привилегий. Убедитесь, что вы регулярно проверяете настройки пользователей и группы, чтобы гарантировать соответствие безопасности и политик вашей организации.
Для получения дополнительной информации обратитесь к официальной документации FreeBSD или к мануалам соответствующих команд.