У меня есть учетная запись уровня обслуживания для запуска моего веб-сервера, и этот пользователь настроен с /sbin/nologin
.
Обычно при добавлении пользователя в группу вам необходимо выйти из системы и снова войти в нее, чтобы использовать новые групповые разрешения.
Я хотел бы добавить этого пользователя в другую группу, чтобы расширить некоторые его разрешения, но поскольку пользователь моего веб-сервера никогда не входит в систему, когда и как этот пользователь получит доступ к новым групповым разрешениям?
решение1
Группы процесса устанавливаются программой, которая изменяет пользователя с root на целевого пользователя перед выполнением программы процесса. Когда пользователь входит в систему, программа, которая изменяет пользователя, — это программа входа ( login
, su
, sshd
, …), а программа процесса — это оболочка пользователя. Для демона, запущенного под системным пользователем, программа, которая изменяет пользователя, может быть su
или каким-либо другим инструментом, например, Debian'sstart-stop-daemon
. Например, start-stop-daemon
всегда добавляет дополнительные группы в процесс. Программа изменения пользователя должна иметь логику для установки как основной группы из базы данных пользователей, так и дополнительной группы из базы данных групп.
решение2
С CentOS 6 nscd
может быть запущен. Если вы не изменили владельца группы с помощью команды высокого уровня (например, usermod
), вам нужно убедиться, что запущен, grpconv
чтобы /etc/gshadow также обновился. Если nscd
запущен, добавьте nscd -i group
, чтобы сделать недействительным кэш локальной группы. Если вы изменили основной GID, запустите nscd -i passwd
.
Проверьте результат с помощью id -a $ACCOUNT
.
После этого перезапустите службу.
решение3
Я предлагаю su - ; /etc/init.d/NAME stop; /etc/init.d/NAME start;
«/etc/init.d/NAME restart» может быть недостаточно.