Потрібна перезавантаження для оновлення дозволів після додавання користувача до нової групи?


26

На сервері ubuntu я не раз помічав, що після додавання користувача до групи цей користувач не має групових дозволів, поки не перезавантажую систему. Наприклад:

Користувачеві "hudson" потрібен дозвіл на читання каталогу "root: shadow / etc / shadow" Тому я додаю Хадсон до тіньової групи. Гудсон все ще не вміє читати. Отже, я "sudo shutdown -h -r now", і коли система знову з'являється, користувач Хадсон може читати.

Потрібна перезавантаження чи є кращий спосіб отримати дозволи після додавання користувача до групи?


для подальшої довідки, я додав фактичне рішення нижче. Я був вражений, що це проблема. Сподіваюся, що це допомагає.
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 і знову ввійшовши в систему, вирішили проблему.
трійчатка
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.