Требуется ли перезагрузка для обновления разрешений после добавления пользователя в новую группу?


26

На сервере Ubuntu я уже не раз замечал, что после добавления пользователя в группу этот пользователь не имеет прав доступа к группе до перезагрузки системы. Например:

Пользователю 'hudson' требуется разрешение на чтение каталога 'root: shadow / etc / shadow', поэтому я добавляю hudson в группу shadow. Хадсон до сих пор не умеет читать. Итак, я 'sudo shutdown -h -r now' и когда система снова запускается, пользователь hudson может читать.

Требуется ли перезагрузка или есть лучший способ применить разрешения после добавления пользователя в группу?


для дальнейшего использования я добавил реальное решение ниже. Я был поражен, что это была проблема. Надеюсь, это поможет.
— TryTryAgain

Ответы:


25

Я искал решение, наткнулся на этот пост, а потом нашел его!

Я думал, что на самом деле предложу решение, чтобы другие могли выиграть. Вход и выход так 1995.

Взято из:

https://arkaitzj.wordpress.com/2010/03/08/linux-add-user-to-a-group-without-logout/

Поэтому, если вам нужно было получить разрешения для cdromгруппы, вы просто добавили своего пользователя в:

newgrp cdrom 

например

Так что шаги будут:

#adduser my_user cdrom

а потом

$newgrp cdrom

Я подтвердил, что это работает.

Простая $groupsпроверка из CLI показывает, что пользователь находится в группе. И быстрое выполнение с необходимыми привилегиями из этой группы работает.

Не нужно убивать ваши окна и войти и выйти! Надеюсь, что это помогает другим!

Дополнительная информация (на основе полезного комментария jytou): «[Это] решение будет работать только для текущей открытой оболочки. Если у вас открыта другая оболочка, вам нужно будет использовать ту же команду для учета изменений».


1
Это здорово, это действительно работает !!! : D
— dadexix86

3
Обратите внимание, что решение TryTryAgain будет работать только для текущей открытой оболочки. Если у вас открыта другая оболочка, вам нужно будет использовать ту же команду, чтобы учесть изменения.
— Jytou

Как бы то ни было, чтобы сделать это для бегущей X-сессии?
— artfulrobot

@artfulrobot извините, я не совсем уверен, что вы имеете в виду. Возможно, вы захотите открыть новый вопрос и сослаться на этот пост и решение, чтобы лучше всего помочь.
— TryTryAgain

19

При добавлении пользователя в новую группу пользователь должен выйти из системы и снова войти в нее, чтобы она вступила в силу. Хотя перезагрузка это сделает, этого не требуется.


Как выйти из системы пользователя, который был создан aptitude при установке пакета?
— Майкл Прескотт

Какой пакет создает hudsonпользователь?
— Уомбл

Как ответил Джастин, попробуйте остановить и запустить службу.
— Скотт Пак

Это то, что я делаю. Просто выйдите из системы и войдите снова.
— Трент Скотт

К счастью, вам на самом деле не нужно выходить из системы и обратно. Я предложил рабочее решение ниже. Проверено, и СЧАСТЛИВЫМ!
— TryTryAgain

8

Добавление пользователя в группу не влияет на зарегистрированных пользователей.

В случае демона, вам нужно перезапустить его для применения новых групп.

Кроме того, перезапуск демона с использованием параметра в самом демоне не будет работать, поскольку он унаследует текущую среду.

Самый простой способ заставить его работать, это полностью остановить демон и запустить его снова, как в ..

/etc/init.d/foo stop ; /etc/init.d/foo start

4

это намного проще, вы можете проверить текущий уровень доступа, набрав:

id

для перезагрузки ваших групп вам просто нужно:

su - $USER

после этого снова проверьте уровень доступа:

id

и вы увидите, что новая группа теперь активна.


1

Существует другой режим сбоя, который также следует учитывать здесь.

Если администратор обновил, /etc/groupно не смог обновить /etc/gshadow(в системах с такой настройкой), выход из системы и повторный вход фактически не назначат вас в новую группу.

Смущает, groupsпокажет вам реальную, текущую ситуацию, в то время как idнеправильно напечатает вывод, который указывает, что вы правильно являетесь членом группы.

tripleee@vbvntv$ groups
tripleee

tripleee@vbvntv$ id
uid=1234(tripleee) gid=1234(tripleee) groups=1234(tripleee),4(adm)

tripleee@vbvntv$ ls -l /var/log/mail.log
-rw-r----- 1 root adm 15728 May 26 14:26 /var/log/mail.log

tripleee@vbvntv$ tail /var/log/mail.log
tail: cannot open `/var/log/mail.log' for reading: Permission denied

Я не могу использовать, newgrpпотому что он запрашивает пароль, и у меня нет пароля, только аутентификация с открытым ключом SSH.

Решением было бы для администратора отменить ручное редактирование /etc/groupsи затем сделать это снова sudo gpasswd -a tripleee adm; или, альтернативно, использовать grpconvдля слияния изменений (которые я взял с /server//a/389719/98333 )


На самом деле оказалось, что реальная проблема заключалась в том, что я повторно использовал мастер-сессию SSH . Отключение, удалив сокет ControlPath и войдя снова, решило проблему.
— tripleee
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.