Как я могу изменить группу пользователя по умолчанию в Linux?

Группа процесса является понятием ядра Unix. Это не подходит очень часто. Можно отправить сигнал во все процессы в группе путем вызова kill системный вызов или утилита с отрицательным аргументом.

Когда процесс создается (с fork), это остается в той же группе процесса как ее родитель. Процесс может переместиться в другую группу путем вызова setpgid или setpgrp. Это обычно выполняется оболочкой, когда она запускает внешний процесс, прежде чем она выполнится execve загрузить внешнюю программу.

Основное использование для групп процесса - это, когда Вы нажимаете Ctrl+C, Ctrl+Z или Ctrl+\ чтобы уничтожить или приостановить программы в терминале, терминал отправляет сигнал целой группе процесса, группе приоритетного процесса. Детали довольно сложны и главным образом интереса окружить или реализаторы ядра; Общая глава Терминального интерфейса стандарта POSIX является хорошей презентацией (Вам действительно нужен некоторый фон программирования Unix).

Задания являются внутренним понятием к оболочке. В простых случаях каждое задание в оболочке соответствует группе процесса в ядре.

42
13.12.2011, 03:24
5 ответов

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

Для Ваших других вопросов...

  1. Если Вы указываете группу, groupname, это не существует во время useradd этап, Вы получите ошибку - useradd: неизвестная группа groupname

  2. groupadd команда создает новые группы.

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

  4. Создайте hilbert группа через groupadd hilbert. Затем переместите использование основной группы David usermod -g hilbert hilbert. (Обратите внимание на то, что первое hilbert название группы и второе hilbert имя пользователя. Это важно в случаях, куда Вы перемещаете пользователя к группе с другим именем),

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

28
27.01.2020, 19:35
  • 1
    спасибо. если я делаю usermod -g hilbert hilbert это удалит другие группы Гильберта? Если так, как я сохранил бы те другие группы? В противном случае, ничего себе, я удалил бы его из его других групп? –  cwd 16.12.2011, 01:06
  • 2
    Проверьте его и см. свою конкретную среду. –  ewwhite 16.12.2011, 08:39
  • 3
    получает мой upvote, потому что он указывает, что необходимо использовать-a с-G (иначе любая группа, которую Вы бросаете, будет удален) –  Jeff 29.07.2016, 21:51

Необходимо читать man usermod который объясняет, что происходит с различными вариантами:

usermod -g hilder hilder

заменит Вашу группу входа в систему от 'способности' до 'hilder', пока группа 'hilder' существует. Если это не существует затем, сначала необходимо создать его с groupadd.

Когда Вы используете -G опция необходимо также использовать -a опция добавить новые группы к текущему списку дополнительных групп, что пользователь 'hilder' принадлежит. Без -a опция Вы замените текущие дополнительные группы новым набором группы. Поэтому используйте это осторожно.

9
27.01.2020, 19:35

Чтобы изменить основную группу пользователя в Linux:

  • usermod -g new_group user_name
  • terminate all user_name активные сеансы

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

. Если команда выполняется без ошибок, но gid не изменился, вы пропустили выделенная жирным шрифтом часть шага 2.

5
27.01.2020, 19:35

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

# nano / etc / group {{ 1}}

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

Следующее позволит вам изменить основную группу пользователя. # nano / etc / passwd

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

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

Я не могу придумать обратных сторон этого подхода (при условии, что вы знаете GID), это то, что я часто использую для локальных пользователей. в основном потому, что я использую много разных систем UNIX с разными параметрами команд usermod , adduser и useradd .

Это немного больше ручное, но работает. Обратите внимание, что вы можете использовать vi iso nano для редактирования файлов, если вы знаете vi .

1
27.01.2020, 19:35

Чтобы навсегда изменить основную группу пользователя, выполните:

  • usermod -g groupname username команда

Или вы можете использовать newgrpдля небольшой среды и временной ситуации.

Создайте нового пользователя bob и новую группу dodo.

useradd bob

Итак, в RedHat/Centos у нас есть UID= (ID _number )bob; GID= (ID _номер )боб в качестве основной группы по умолчанию

groupadd dodo

Добавить пользователя Bob в группу dodo:

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

Далее используйте newgrpдля смены владельца:

newgrp dodo

Будьте осторожны с вашей учетной записью, чтобы иметь пароль и быть членом будущей основной группы. И newgrp открывает новую оболочку; пока пользователь остается в этой оболочке, основная группа не изменится. Чтобы переключить основную группу обратно на исходную, вы можете выйти из новой оболочки, выполнив команду выхода.

0
27.01.2020, 19:35

Теги

Похожие вопросы