Группа процесса является понятием ядра Unix. Это не подходит очень часто. Можно отправить сигнал во все процессы в группе путем вызова kill
системный вызов или утилита с отрицательным аргументом.
Когда процесс создается (с fork
), это остается в той же группе процесса как ее родитель. Процесс может переместиться в другую группу путем вызова setpgid
или setpgrp
. Это обычно выполняется оболочкой, когда она запускает внешний процесс, прежде чем она выполнится execve
загрузить внешнюю программу.
Основное использование для групп процесса - это, когда Вы нажимаете Ctrl+C
, Ctrl+Z
или Ctrl+\
чтобы уничтожить или приостановить программы в терминале, терминал отправляет сигнал целой группе процесса, группе приоритетного процесса. Детали довольно сложны и главным образом интереса окружить или реализаторы ядра; Общая глава Терминального интерфейса стандарта POSIX является хорошей презентацией (Вам действительно нужен некоторый фон программирования Unix).
Задания являются внутренним понятием к оболочке. В простых случаях каждое задание в оболочке соответствует группе процесса в ядре.
usermod
команда позволит Вам изменять основную группу пользователя, дополнительную группу или много других атрибутов. -g
переключитесь управляет основной группой.
Для Ваших других вопросов...
Если Вы указываете группу, groupname
, это не существует во время useradd
этап, Вы получите ошибку - useradd: неизвестная группа groupname
groupadd
команда создает новые группы.
Группа останется, если Вы удалите всех пользователей, содержавших в. Необходимо не обязательно удалить пустую группу.
Создайте hilbert
группа через groupadd hilbert
. Затем переместите использование основной группы David usermod -g hilbert hilbert
. (Обратите внимание на то, что первое hilbert
название группы и второе hilbert
имя пользователя. Это важно в случаях, куда Вы перемещаете пользователя к группе с другим именем),
Можно усложнять вещи немного здесь, все же. Во многих дистрибутивах Linux, простом useradd hilbert
создаст пользователя hilbert
и группа того же имени как основное устройство. Я добавил бы дополнительные группы, указанные вместе с помощью -G
переключатель.
Необходимо читать man usermod
который объясняет, что происходит с различными вариантами:
usermod -g hilder hilder
заменит Вашу группу входа в систему от 'способности' до 'hilder', пока группа 'hilder' существует. Если это не существует затем, сначала необходимо создать его с groupadd.
Когда Вы используете -G
опция необходимо также использовать -a
опция добавить новые группы к текущему списку дополнительных групп, что пользователь 'hilder' принадлежит. Без -a
опция Вы замените текущие дополнительные группы новым набором группы. Поэтому используйте это осторожно.
Чтобы изменить основную группу пользователя в Linux:
usermod -g new_group user_name
Чтобы проверить свои изменения, запустите id
и посмотрите значение gid =
. Если команда выполняется без ошибок, но gid не изменился, вы пропустили выделенная жирным шрифтом часть шага 2.
ответ №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
.
Чтобы навсегда изменить основную группу пользователя, выполните:
Или вы можете использовать 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 открывает новую оболочку; пока пользователь остается в этой оболочке, основная группа не изменится. Чтобы переключить основную группу обратно на исходную, вы можете выйти из новой оболочки, выполнив команду выхода.
usermod -g hilbert hilbert
это удалит другие группы Гильберта? Если так, как я сохранил бы те другие группы? В противном случае, ничего себе, я удалил бы его из его других групп? – cwd 16.12.2011, 01:06