Удалить пользователя из группы linux
Обновлено: 21.11.2024
Какую команду следует использовать для удаления пользователя из группы в Debian?
При добавлении пользователя в группу это можно сделать с помощью:
Однако я не смог найти аналогичную команду (принимающую группу и пользователя в качестве аргументов) для удаления пользователя из группы. Самое близкое, что я мог получить, это:
Существует ли такая команда, как usermod OPTION group user с опцией OPTION, позволяющая заставить usermod (или аналогичную программу) удалить пользователя из группы?
Для пользователей Fedora, которые попадают сюда, man usermod показывает в комментариях опции -G, что список всех текущих групп, которые хотят сохранить, ЯВЛЯЕТСЯ способом удаления группы. Нет опции -R с Fedora; вы должны использовать подход Лекенштейна, которого он пытается избежать.
12 ответов 12
Вы можете использовать gpasswd :
Новая конфигурация группы будет назначена при следующем входе в систему. Если пользователь вошел в систему, результаты команды видны не сразу.
Отличное спасибо! gpasswd -a user group для добавления пользователя в группу тоже выглядит лучше, особенно если опечатка сделана и опция -a пропущена.
У меня не работает. Я получаю два сообщения: а) Удаление пользователя из группы. б) gpasswd: пользователь не является членом группы. После этого запуск «группы участников» не показывает никаких изменений.
@geoidesic Я получил эти ошибки на Centos 7. Я обнаружил, что вы получили это, если пытались удалить пользователя из его группы по умолчанию. Попробуйте переключить группу по умолчанию с помощью usermod -g user user, а затем попробуйте удалить их.
В Debian пакет adduser содержит программу deluser, которая удаляет пользователя из группы, если вы передаете оба параметра в качестве аргументов:
Если в вашем дистрибутиве нет adduser , вы можете отредактировать /etc/group и /etc/gshadow вручную.
@JonathanLeaders Каждый пользователь должен состоять хотя бы в одной группе. Используйте usermod или vipw, чтобы изменить основную группу пользователя. Этот вопрос касался дополнительных групп.
удаляет все второстепенные/дополнительные группы из username, оставляя их членами только своей основной группы. это работало в Solaris 5.9
Похоже, это лучший способ заставить вторичные группы использовать любой список групп, исключая все группы, не включенные в список.
Это подход «старой школы».
Большинство систем *nix хранят информацию о группе в текстовом файле /etc/group , где
каждая строка содержит поля
- имя_группы
- пароль
- GID и
- список_пользователей
разделяется символом :.
Теперь предположим, что вы хотите удалить пользователя с именем thisuser из группы с именем thatgroup . Начните с резервного копирования /etc/group , затем используйте редактор по вашему выбору с привилегиями su, чтобы отредактировать файл /etc/group и удалить ссылку thisuser из записи строки thatgroup, например,
исходная строка примерно такая:
thatgroup:x:1274:someuser,thisuser,otheruser
после редактирования следует оставить так:
thatgroup:x:1274:someuser,otheruser
Как и во всех других ответах, это не повлияет на текущий сеанс (сеансы) пользователя, если таковой имеется (т. е. если пользователь в настоящее время вошел в систему). Изменение вступит в силу при следующем входе пользователя в систему.
vigr уже упоминался для ручного редактирования /etc/group. В моих справочных страницах сказано, что имена пользователей разделяются запятыми, а не двоеточиями. Перезагрузка не требуется, вам просто нужно повторно войти в систему (или использовать newgrp ).
Чтобы помочь всем пользователям, не использующим Debian, добраться до этих берегов в поисках подсказок. этого может быть достаточно для Debian в соответствии с объемом вопроса OP, но если вы использовали это для ОС *BSD, вам нужно будет изменить здесь текстовый файл, как уже упоминалось, а затем введите pwd_mkdb -p /etc/master.passwd чтобы фактически использовать этот список.
Вы можете использовать приведенную ниже команду в дистрибутивах SUSE (и, очевидно, никаких других).
где группа — это группа, из которой вы хотите удалить пользователя, а имя_пользователя — пользователь, которого вы хотите удалить из группы. Например,
Какой пакет содержит двоичный файл usermod? Прошу узнать версию, так как моя из shadow-utils-4.1.4.3 не дает опции -R.
Мой пакет shadow 4.1.5.1-5 (Arch Linux) имеет опцию -R, но это означает нечто другое. Думаю, это не Linux.
Я не уверен, что это сработает. На странице руководства говорится, что -R это: "-R, --root CHROOT_DIR Применить изменения в каталоге CHROOT_DIR и использовать файлы конфигурации из каталога CHROOT_DIR."
Единственное, что я мог найти, это справочная страница оракула, но это все еще не одно и то же, поэтому этот ответ, возможно, следует удалить.
название группы: newgroup11
Задача: Удалить пользователя abc2 из группы newgroup11
** Пожалуйста, поправьте меня, если я ошибаюсь. **
Это "работает", но только потому, что у вас есть одна дополнительная группа. usermod -G newgroup11 abc2 поместит вас во вторичную группу newgroup11 . Поскольку основной группой является abc2, вы окажетесь в обеих группах. usermod -g abc2 abc2 приводит к тому, что newgroup11 удаляется из вторичных групп, потому что она больше не упоминается. Так что для трех и более разных групп этот метод не сработает. См. другие ответы, связанные с gpasswd, для лучшей команды.
Предположим, что username=student и groupname=research, поэтому для удаления пользователя student из исследовательской группы необходимо сделать следующее:
Вы можете удалить пользователей из группы, выполнив команду usermod без опции -a. Пример, выполнив
добавит пользователя в группу1 и удалит его из любых других групп, в которых он есть. Помните, что вы можете держать пользователей в разных группах, перечислив названия групп через запятую.
Решение, если вы по какой-либо причине используете CSH.
Чтобы продолжить использование usermod в дистрибутиве (например, Fedora), в котором нет параметра удаления, где user=bob и group=deletethisgroup, команда будет выглядеть так:
Конвейеры (1) получают все записи группы, к которым принадлежит пользователь, (2) удаляют ту, которую нужно удалить, (3) возвращают первый столбец (имя группы), заменяют новую строку запятой и удаляют запятую в конце.
Конечно, вы можете поместить все это в сценарий bash, который принимает пользователя и группу для удаления в качестве параметров. awk можно использовать для сокращения конца, но я хотел придерживаться grep, cut, tr и sed.
Согласно этой справочной странице, gpasswd -d bob deletethisgroup также доступен. По какой причине вы его не используете?
Не все хотят устанавливать групповые пароли. Я просто предлагал решение с использованием команды, на которую ссылался вопрос о конкретном дистрибутиве. в Fedora/RHEL/Centos с gpasswd -d удаленный пользователь все еще может присоединиться к группе, если у него есть доступ к паролю. Это фактически увеличивает групповой доступ, а не запрещает его.
Я понял, что утилита называется gpasswd, потому что она тесно связана с /etc/passwd, но вместо этого управляет группами. В отличие от простой команды passwd, которая просто управляет паролями, gpasswd также может использоваться для управления членством в группе. Групповой пароль не требуется, если вы являетесь пользователем root или администратором группы.
Прочитали ли вы руководство по gpasswd? Для Fedora/RHEL/CentOS, если вы читали руководство, указано, что команда «используется для администрирования /etc/group и /etc/gshadow». На самом деле это никак не влияет на файл /etc/passwd. В руководстве также говорится: «Групповые пароли являются неотъемлемой проблемой безопасности, поскольку пароль может знать более одного человека». На самом деле он не управляет членством в группе, он открывает группу для ЛЮБОГО пользователя с паролем. Групповой пароль не требуется, если вы уже являетесь ЧЛЕНОМ группы.
Близкое родство было в смысле схожих названий и целей, я не имел в виду, что файл /etc/passwd на самом деле управляется gpasswd. Обратите внимание, что «справочная страница» в моем первом комментарии указывает на справочную страницу gpasswd для Fedora 13. Используя gpasswd $group, вы можете установить групповой пароль, который вызывает упомянутую вами проблему безопасности. Однако вы также можете не иметь пароль и использовать gpasswd -d $user $group для удаления пользователя, как описано в первом комментарии и принятом ответе. Обратите внимание, что эта команда не запрашивает групповой пароль, не изменяет и не требует его.
В этом руководстве объясняется, как удалить пользователя из группы в Linux. Прочитав это, вы узнаете, как легко удалять пользователей из групп с помощью команд gpasswd и deluser.
Что такое группы в Linux?
В Linux пользователи связаны с группами, определяющими их разрешения и доступ. Чтобы понять, что такое группы в Linux, важно отметить, что существует 3 способа предоставления или ограничения разрешений и доступа: индивидуально, коллективно и «путем исключения».
Когда пользователю предоставляются разрешения индивидуально, эти разрешения связаны с идентификатором пользователя. Для коллективного предоставления разрешений системный администратор создает группу с определенными правами, и пользователи-члены этой группы получают групповые разрешения. Удаление пользователя из группы приведет к удалению всех разрешений, унаследованных пользователем от этой группы.
Как было сказано ранее, разрешения могут быть предоставлены или ограничены определенным пользователям индивидуально или коллективно через группы. Но системе также нужна политика для всех остальных, которые не являются связанными пользователями или группами. Таким образом, при предоставлении или удалении разрешений в Linux мы должны указать 3 категории:
- Пользователь: индивидуальные разрешения.
- Группа: коллективные разрешения.
- Другие (также известные как «Мир»): разрешение для неопределенных запрашивающих.
В Linux каждый пользователь связан с группой, созданной в процессе создания учетной записи пользователя.
Вы можете проверить группы, к которым принадлежит пользователь, выполнив команду groups, за которой следует имя пользователя, как показано на снимке экрана ниже.
Как видите, пользователь linuxhint является членом нескольких групп, которые будут объяснены позже.
Как удалить пользователя из группы в Linux с помощью gpasswd:
Чтобы удалить пользователя из одной из этих групп, вы можете вызвать команду gpasswd с флагом –delete, за которым следует удаляемый пользователь и группа.
В приведенном ниже примере пользователь linuxhint удален из групповой дискеты.
Как видите, linuxhint больше не входит в группу гибких дисков.
Как удалить пользователя из группы в Debian или Ubuntu с помощью deluser:
В дистрибутивах Linux на основе Debian вы можете удалить пользователя из группы с помощью команды deluser, за которой следует имя удаляемого пользователя и группа. В приведенном ниже примере пользователь linuxhint удален из групповой дискеты.
Удаление пользователя из группы в Linux путем редактирования файла /etc/group:
Еще один способ удалить пользователя из группы в Linux — отредактировать файл /etc/group. Откройте файл конфигурации /etc/group с помощью текстового редактора, как показано в примере ниже (nano).
Найти группу на дискете; вы можете использовать комбинацию клавиш CTRL+W для поиска «дискеты» или группы, из которой вы хотите удалить пользователя.
Вы увидите пользователей, принадлежащих к группе, в моем случае это пользователь linuxhint. Чтобы удалить пользователя из группы, удалите пользователя из строки группы.
В моем случае я меняю строку группы дискет следующим образом:
Нажмите CTRL+X, чтобы сохранить изменения и выйти.
Добавление пользователя в группу:
Вы также можете использовать gpasswd для добавления пользователей в группы. Просто замените флаг –delete на флаг –add a, как показано в примере ниже, в котором пользователь linuxhint добавляется в группу дискет.
Как видите, пользователь linuxhint добавлен в группу дискет.
Вы также можете добавлять пользователей в группы с помощью команды usermod с аргументом -aG, за которым следует группа и пользователь, которого нужно удалить, как показано в примере ниже. Пользователь linuxhint удаляется из группы дискет.
Оба описанных выше способа добавления пользователей в группы являются правильными.
Вывод:
Научиться управлять группой – это основное требование для работы с разрешениями. Группы — это функция Unix, позже принятая даже конкурентами, такими как Microsoft Windows.
Пользователи должны знать, как ограничить доступ пользователей к определенным группам, особенно в операционных системах, в которых первоначальным пользователям предоставляются права по умолчанию.
Методы gpasswd и /etc/group удобны тем, что они универсальны, в то время как deluser остается хорошим вариантом для пользователей, ограниченных дистрибутивами Linux на основе Debian.
Если вы нашли это руководство интересным, возможно, вам будет интересно прочитать объяснения Setuid, setgid и sticky bit.
Я надеюсь, что это руководство, объясняющее, как удалить пользователя из группы в Linux, было полезным. Продолжайте следовать Linux Hint, чтобы получить дополнительные советы и руководства по Linux.
Об авторе
Дэвид Адамс
Дэвид Адамс — системный администратор и писатель, специализирующийся на технологиях с открытым исходным кодом, программном обеспечении для обеспечения безопасности и компьютерных системах.
Пользователь может быть членом одной основной и одной или нескольких вторичных (дополнительных) групп в Linux. Файл '/etc/group' определяет членство в группе для каждого пользователя в системе Linux.
В этом руководстве мы узнаем, как удалить пользователя из группы в Linux. Мы будем использовать два метода, а также я покажу, как вручную удалить пользователя из группы, удалив его из файла '/etc/group'.
Создать пользователя Linux
Для целей этого руководства мы создадим пользователя с именем «testuser».При создании нового пользователя также создается новая основная группа с тем же именем для этого пользователя.
Мы создадим нового пользователя, введя следующую команду:
Теперь мы можем создать пароль для этого пользователя:
Я использовал тот же пароль, что и имя пользователя, поэтому получил предупреждение о том, что пароль не должен содержать имя пользователя в какой-либо форме.
Добавление пользователя в группу
Сначала мы создадим две новые группы с помощью команды groupadd следующим образом:
Теперь мы добавим пользователя testuser в две созданные выше группы, а также добавим в группу root с помощью следующих команд:
Хорошо, теперь, если мы посмотрим на файл '/etc/group' и увидим, что 'testuser' является членом всех трех групп.
Узнать, к каким группам принадлежит пользователь
Мы также можем использовать два альтернативных способа проверить, к каким группам принадлежит пользователь, следующим образом
Как видите, вывод очень похож, и эти команды выполняют одно и то же.
Удаление пользователя из группы с помощью usermod
Мы можем удалить пользователя из группы или нескольких групп одновременно с помощью команды usermod. Используя usermod, вы должны указать, в каких вторичных группах вы хотите оставить пользователя. Позвольте мне объяснить на примере.
Чтобы удалить пользователя «testuser» из групп «testgroup1» и «testgroup2», выполните следующую команду (т.е. оставьте testuser только в группе «root» и в основной группе «testuser»):
Поэтому, чтобы сохранить пользователя в большем количестве групп, вам нужно указать имена групп, разделенные запятой (,), например:
Удаление пользователя из группы с помощью gpasswd
Еще одна команда, дающая аналогичные результаты, — gpasswd. Мы используем эту команду для удаления пользователей из указанных групп, в отличие от usermod.
Чтобы удалить пользователя из одной конкретной группы, мы можем использовать команду gpasswd:
Удаление пользователя из группы (вручную)
Мы также можем удалить пользователя из группы, вручную отредактировав файл '/etc/group'. Эффекты этого метода будут применены к пользователю после перезагрузки.
Вы можете использовать свой любимый текстовый редактор для редактирования файла '/etc/group':
Теперь мы вручную отредактируем две последние записи, чтобы удалить testuser и удалить его из testgroup1 и testgroup2 (отредактированный файл должен выглядеть так):
Изменения вступят в силу после перезагрузки, и теперь пользователь удален из этих двух групп:
Заключение
В этом руководстве мы узнали, как удалить пользователя из группы с помощью usermod, gpasswd, а также вручную удалив его из файла '/etc/group'.
Эти инструкции можно использовать в любой системе Linux, такой как Ubuntu, CentOS, Fedora и многих других. Если у вас есть какие-либо вопросы, сообщите нам об этом в комментариях ниже.
Теги Заголовок терминала; $list = get_page_by_title('related', 'OBJECT', 'wp_show_posts'); wpsp_display($list->ID, 'tax_term="' . $cat_slug . '"' );*/ ?>
1. Создайте нового пользователя и добавьте его в существующую основную группу
- По умолчанию, когда мы создаем нового пользователя, создается новая основная группа с тем же именем, что и у пользователя.
- Но мы также можем использовать useradd для создания пользователя и добавления этого пользователя в любую существующую группу
- Поэтому эта группа не станет основной группой вашего нового пользователя.
В этом примере я создам новую группу "admin"
Убедитесь, что группа существует
Далее я создам нового пользователя "user1" и добавлю этого пользователя в группу "admin" с помощью useradd -g
Проверьте основную группу user1
2. Создайте нового пользователя и добавьте его в существующую дополнительную группу
Мы хотим создать нового пользователя и добавить его/ее в дополнительную группу (обратите внимание, здесь мы добавим пользователя в дополнительную группу, а не в основную группу)
У меня есть список групп на моем Linux-сервере
Я создам нового пользователя "user2" и добавлю этого пользователя во все эти дополнительные группы, используя useradd -G , , ..
Проверьте дополнительные группы.
ОБРАТИТЕ ВНИМАНИЕ, что, поскольку мы не указали основную группу с помощью -g , создается новая группа user2, которая назначается пользователю в качестве основной группы
3. Создайте нового пользователя и добавьте его в существующую основную и дополнительную группу
Теперь мы объединим оба вышеуказанных аргумента, т. е. -g, чтобы добавить основную_группу, и -G, чтобы добавить дополнительную_группу.
В этом примере я создам пользователя 3 с основной_группой в качестве администратора и с дополнительной_группой devops и qa_team
Проверьте данные новой группы пользователей
4. Изменить основную группу существующего пользователя
У меня есть пользователь, который в настоящее время добавлен в свою основную группу
Я изменю основную группу этого пользователя на admin, используя usermod
Проверьте новую основную группу для пользователя4
5. Добавить пользователя в группу (дополнительную или вторичную) с помощью usermod
- Чтобы добавить пользователя в группу, мы можем использовать команду usermod или gpasswd
- Мы можем добавить пользователя только в дополнительные группы
- В этом примере я добавлю пользователя4 в дополнительную группу devops
Синтаксис для добавления пользователя в группу: usermod -G
Проверьте данные пользователя
6. Добавьте пользователя в несколько групп (дополнительных или второстепенных) с помощью usermod
Мы также можем добавить пользователя в несколько дополнительных групп, используя синтаксис usermod -G , , ..
В этом примере я добавлю пользователя4 в несколько дополнительных групп (devops и qa_team)
Проверьте данные пользователя
7. Добавьте пользователя в группу (дополнительную или дополнительную) с помощью gpasswd
- Подобно usermod, мы также можем использовать gpasswd, чтобы добавить пользователя в группу
- Синтаксис для добавления пользователя в группу: gpasswd -M
В этом примере я добавлю пользователя 4 в devops в качестве дополнительной группы
Проверьте данные пользователя
В качестве альтернативы вы также можете использовать gpasswd -a
В этом примере я добавлю user4 в qa_team в качестве дополнительной группы
Проверьте данные пользователя
8. Добавить нескольких пользователей в одну группу
Нам нужен пользователь gpasswd, чтобы добавить несколько пользователей в одну группу
В настоящее время у меня уже есть группа администраторов, в которой нет пользователей
Синтаксис для добавления нескольких пользователей в одну группу: gpasswd -M , , ..
В этом примере я добавлю своих существующих пользователей, т. е. user1 , user2 и user3, к администратору в качестве дополнительной группы
Проверьте данные группы администраторов
9. Удалить пользователя из группы (дополнительной или вторичной)
В настоящее время мой user4 состоит в трех разных дополнительных группах
gpasswd — лучший инструмент для удаления пользователя4 из группы qa_team
Мы также можем использовать команду usermod для удаления пользователя из группы. Проблема с usermod заключается в том, что вы должны определить полный список дополнительных групп, частью которых является пользователь, и удалить только ту группу, из которой вы хотите удалить пользователя.
Например, мой user4 является частью devops , admin и qa_team . Таким образом, чтобы удалить пользователя4 из qa_team, мы повторно добавим пользователя в группу devops и admin (не в qa_team)
Проверьте данные пользователя
Я бы рекомендовал использовать gpasswd для удаления пользователя из группы
10. Удалить нескольких пользователей из дополнительной группы
Не существует единой команды для удаления нескольких пользователей из одной группы, но мы можем использовать небольшой скрипт
В настоящее время у меня есть администратор с тремя пользователями
Я напишу небольшой скрипт, чтобы удалить всех 3 пользователей из группы администраторов
удалить нескольких пользователей из одной группы
11. Удалить пользователя из всех групп (дополнительных или дополнительных)
- Мы можем использовать gpasswd для удаления пользователя из группы
- Но если пользователь входит в несколько групп, вам нужно выполнить gpasswd несколько раз
- Или напишите скрипт для удаления пользователя из всех дополнительных групп
- В качестве альтернативы мы можем использовать usermod -G ""
В настоящее время мой пользователь4 входит в несколько дополнительных групп
Чтобы удалить пользователя из всех дополнительных групп, используйте:
Проверьте данные пользователя
Наконец, я надеюсь, что описанные в статье действия по добавлению пользователя в группу, удалению пользователя из группы и различиям между основной и дополнительной группами в Linux были полезны. Итак, дайте мне знать ваши предложения и отзывы, используя раздел комментариев.
Похожие сообщения
Не нашли то, что искали? Выполните быстрый поиск в GoLinuxCloud
Если мои статьи о GoLinuxCloud помогли вам, пожалуйста, купите мне кофе в знак признательности.
Для любых других отзывов или вопросов вы можете использовать раздел комментариев или форму обратной связи.
Читайте также: