Як я можу змінити групу за замовчуванням користувача в Linux?


41

Будучи новим у адмініструванні Linux, я трохи заплутався у наступних командах:

useradd
usermod
groupadd
groupmod

Щойно я закінчив читати книгу адміністрації користувачів у посібнику адміністратора Linux / Unix, але деякі речі все ще трохи туманні.

В основному useraddздається, що прямо вперед:

useradd -c "David Hilbert" -d /home/math/hilbert -g faculty -G famous -m -s /bin/sh hilbert

Я можу додати "Девід Гілберт" за допомогою імені користувача hilbert, встановивши його каталог, оболонку та групи за замовчуванням. І я думаю, що -gце його основна / за замовчуванням група та -Gінші його групи.

Ось такі мої наступні запитання:

  1. Чи працювала б ця команда, якби груп facultyі famousне існувало? Це просто створило б їх?
  2. Якщо ні, то яку команду я використовую для створення нових груп?
  3. Якщо я видаляю користувача hilbertі в цих групах немає інших користувачів, вони все ще існуватимуть? Чи слід їх видаляти?
  4. Після того, як я запускаю useraddкоманду, подану вище, як я видаляю Девіда з famousгрупи та переназначаю його основну групу, до hilbertякої ще не існує?

Відповіді:


27

usermodКоманда дозволить вам змінити основну групу користувача, додаткову групу або ряд інших атрибутів. -gПеремикач контролює первинну групу.

Для ваших інших питань ...

  1. Якщо ви вказали групу, groupnameякої не існує під час useraddетапу, ви отримаєте помилку - useradd: unknown name name group group

  2. groupaddКоманда створює нові групи.

  3. Група залишиться, якщо ви видалите всіх користувачів, які містяться в ній. Не обов’язково видаляти порожню групу.

  4. Створіть hilbertгрупу через groupadd hilbert. Потім перемістіть основну групу Девіда за допомогою usermod -g hilbert hilbert. (Зверніть увагу, що перше hilbert- це ім'я групи, а друге hilbert- ім’я користувача. Це важливо у випадках, коли ви переміщуєте користувача до групи з іншим ім’ям)

Ви, можливо, тут трохи ускладнюєте щось. У багатьох дистрибутивах Linux простий useradd hilbertстворить користувача hilbertта групу з тим самим іменем, що і основний. Я б додав додаткові групи, вказані разом за допомогою -Gперемикача.


1
Дякую. якщо я usermod -g hilbert hilbertдійду, що це видалить інші групи Гільберта? Якщо так, як я б утримував ці інші групи? Якщо ні, як би я видалив його з інших груп?
cwd

Перевірте це і подивіться для конкретного оточення.
ewwhite

@ Відповідь MIck отримує мою нагоду, оскільки він вказує, що вам потрібно використовувати -a з -G (інакше будь-яка група, яку ви залишите, буде видалена )
Jeff

9

Вам потрібно прочитати, man usermodщо пояснює, що відбувається з різними варіантами:

usermod -g hilder hilder

замінить вашу групу входу з 'факультету' на 'hilder', доки існує група 'hilder'. Якщо його не існує, спершу потрібно створити його за допомогою groupadd.

Під час використання цієї -Gопції слід також скористатись -aопцією для додавання нових груп до поточного списку додаткових груп, до яких належить користувач 'hilder'. Без цього -aваріанту ви заміните поточні додаткові групи новим набором груп. Тому використовуйте це обережно.


5

Щоб змінити основну групу користувача в Linux:

  • usermod -g new_group user_name
  • припинити всі user_name «S активні сеанси

Щоб перевірити зміни, запустіть idі подивіться на значенняgid=

Якщо команда працює без помилок, але gid не змінився, ви пропустили жирну частину кроку 2.


1

відповідь №1 хороша, але ви також можете вибрати наступне, щоб додати нову групу:

# nano /etc/group

Мінус /etc/groupпрямого редагування полягає в тому, що вам доведеться придумати невикористаний GID (ідентифікаційний номер групи).

Наведене нижче дозволить змінити основну групу користувача. # nano /etc/passwd

Ви знаходите рядок користувача та змінюєте GID (номер групи, шукайте його в /etc/group), майте на увазі, що синтаксис такий:

 <name>:*:<UID>:<GID>:<comment>:<directory>:<shell>

Там не бракує я можу думати про такий підхід (якщо ви знаєте GID), це те , що я часто використовую для локальних користувачів, в основному тому , що я використовую багато різних систем UNIX з різною usermod, adduserі useraddпараметрами командного рядка.

Це трохи більш посібник, проте робить роботу. Зауважте, що ви можете використовувати viiso nanoдля редагування файлів, якщо знаєте vi.


0

Щоб назавжди змінити основну групу користувача, виконайте:

  • usermod -g команда ім'я користувача ім'я групи

Або ви можете використовувати newgrpдля невеликих умов та тимчасової ситуації.

Створіть нового bob користувача та нову групу dodo.

useradd bob

Отже, у RedHat / Centos у нас є UID = (ID_number) bob; За замовчуванням GID = (ID_ номер) bob як основна група

groupadd dodo

Додайте користувача bob до dodoгрупи:

usermod -aG dodo bob -make sure to use "a"

Наступне використання newgrpдля зміни власності:

newgrp dodo

Будьте уважні до свого облікового запису, щоб мати пароль та бути членом майбутньої первинної групи. І newgrp відкриває нову оболонку; доки користувач залишається в цій оболонці, первинна група не зміниться. Щоб повернути первинну групу до початкової, ви можете залишити нову оболонку, виконавши команду exit.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.