Как удалить пользователя из группы?

Какую команду следует использовать для удаления пользователя из группы в Debian?

При добавлении пользователя в группу это можно сделать с помощью:

usermod -a -G пользователь группы

Однако я не смог найти подобную команду (принять группу и пользователя в качестве аргументов) для удаления пользователя из группы. Самое близкое, что я мог бы получить, это:

usermod -G все, существующие, группы, кроме, для, группы пользователей

Есть ли команда типа usermod OPTION group user с опцией OPTION, чтобы сделать usermod (или аналогичную программу) удалить пользователя из группы?

270 голосов | спросил Lekensteyn 20 Jpm1000000pmFri, 20 Jan 2012 20:29:49 +040012 2012, 20:29:49

10 ответов


310

Вы можете использовать gpasswd:

# gpasswd -d группа пользователей

, то новая конфигурация группы будет назначена при следующем входе в систему, по крайней мере, на Debian. Если пользователь вошел в систему, эффекты команды не отображаются сразу.

ответил 20 Jpm1000000pmFri, 20 Jan 2012 20:40:16 +040012 2012, 20:40:16
141

В Debian пакет adduser содержит программу deluser, которая удаляет пользователя из группы, если вы передаете оба аргумента:

группа пользователей deluser

Если ваш дистрибутив не имеет adduser, вы можете вручную отредактировать /etc /group и /etc /gshadow.

vigr
vigr -s
ответил Gilles 20 Jpm1000000pmFri, 20 Jan 2012 20:44:45 +040012 2012, 20:44:45
52
usermod -G "" имя пользователя

удаляет все вторичные /дополнительные группы из username , оставляя их членами только своей основной группы. это работало в Solaris 5.9

ответил user208145 5 Mayam13 2013, 03:56:23
9

Это подход «школьной школы» ...

Большинство систем * nix поддерживают информацию о группе в текстовом файле /etc /group , где

  • каждая строка содержит поля

    • group_name
    • пароль
    • GID и
    • user_list

    , ограниченный символом :.

  • поле user_list - это список имен пользователей, разделенных запятыми.

Теперь предположим, что вы хотите удалить пользователя с именем thisuser из группы с именем thatgroup. Начнем с создания резервной копии /etc /group, затем используйте редактор ваших предпочтений с привилегиями su для редактирования файла /etc /group и удалите ссылку thisuser из строки строки thatgroup, например,

оригинальная строка выглядит примерно так:

thatgroup : х: 1274: someuser, thisuser , anotheruser

после редактирования следует оставить так:

thatgroup : х: 1274: someuser, anotheruser

Как и во всех других ответах, это не повлияет на текущий сеанс (ы) пользователя, если таковой имеется (например, если пользователь в настоящий момент зарегистрирован). Это изменение вступит в силу при следующем входе пользователя в систему.

ответил p57 10 WedEurope/Moscow2014-12-10T13:59:43+03:00Europe/Moscow12bEurope/MoscowWed, 10 Dec 2014 13:59:43 +0300 2014, 13:59:43
3

Вы можете использовать следующую команду в дистрибутивах SUSE (и, по-видимому, нет других ).

usermod -R  group   имя_пользователя 

, где group - это группа, которую вы хотите удалить из и user_name пользователя, которого вы хотите удалить из группы. Например,

usermod -R root imnottheroot
ответил Stavros Fan Koutsouropoulos 17 +04002013-10-17T12:58:38+04:00312013bEurope/MoscowThu, 17 Oct 2013 12:58:38 +0400 2013, 12:58:38
1

Рассмотрим:

  • имя пользователя: abc2
  • имя группы: newgroup11

  • Задача: Удаление пользователя abc2 из группы newgroup11

[root @ home1 ~] # группы abc2
abc2: abc2
[root @ home1 ~] # usermod -G newgroup11 abc2
[root @ home1 ~] # группы abc2
abc2: abc2 newgroup11
[root @ home1 ~] # usermod -G newgroup11 abc2
[root @ home1 ~] # usermod -G abc2 abc2
[root @ home1 ~] # группы abc2
abc2: abc2

** Пожалуйста, поправьте меня, если я ошибаюсь. **

ответил new user 18 Jam1000000amSun, 18 Jan 2015 00:19:12 +030015 2015, 00:19:12
1

Предположим, что имя пользователя = ученик и groupname = research , поэтому для удаления пользователя student из группы research необходимо выполнить следующее:

Исследование gpasswd -d студентов
ответил ravi 11 AMpWed, 11 Apr 2018 11:11:37 +030011Wednesday 2018, 11:11:37
0

Чтобы продолжить использование usermod в дистрибутиве (например, Fedora), у которого нет опции удаления, где user = bob и group = deletethisgroup, команда будет:

usermod -G `cat /etc /group | grep bob | grep -v Удалить группу | cut -d ':' -f 1 | tr '\ n' ',' | sed 's /, $ //' `bob

Трубы (1) получают все входящие в группу записи, которые принадлежат пользователю, (2) вынимают тот, который нужно удалить, (3) возвращает первый столбец (имя группы), заменяет новую строку запятой и удаляет конечную запятую.

Конечно, вы можете поместить все это в сценарий bash, который заставляет пользователя и группу удаляться как параметры. awk можно использовать для сокращения конца, но я хотел придерживаться grep, cut, tr и sed.

ответил Stephen 26 MaramSat, 26 Mar 2016 00:02:50 +03002016-03-26T00:02:50+03:0012 2016, 00:02:50
-1
pw groupmod "groupname | gid" -d "имя пользователя uid"

Решение, если вы используете CSH по какой-либо причине.

ответил james 15 Jpm1000000pmWed, 15 Jan 2014 13:06:39 +040014 2014, 13:06:39
-1

Чтобы удалить пользователя из группы, gpasswd - лучшая утилита для этой IMO.

Пример команды:

sudo gpasswd -d пользователь группы

* Справка *

Использование: gpasswd [option] GROUP

Опции:
  -a, --add USER добавить пользователя в группу
  -d, --delete USER удалить USER из группы GROUP
  -h, --help отобразить это справочное сообщение и выйти
  -Q, --root CHROOT_DIR директория, чтобы
  -r, --delete-password удалить пароль GROUP
  -R, - ограничивать доступ к GROUP своим членам
  -M, - пользователи USER, ... задают список членов группы GROUP
  -A, --administrators ADMIN, ...
                                установить список администраторов для группы GROUP
За исключением опций -A и -M, параметры нельзя комбинировать.
ответил Brian Cotton 19 Jpm1000000pmFri, 19 Jan 2018 22:40:28 +030018 2018, 22:40:28

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132