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


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.