🐧 Как (правильно) изменить UID и GID пользователя / группы в Linux |

🐧 Как (правильно) изменить UID и GID пользователя / группы в Linux

Мануал
Изменение UID и GID пользователя может показаться тривиальной задачей для большинства системных администраторов.
Но это не так тривиально и требует гораздо больше изменений в бэкэнде.
В этом руководстве мы отметили точные шаги для изменения UID и GID пользователя «user01».
Username: user01
Group: group01
Existing UID: 800
Existing GID: 700
New UID: 900
New GID: 600

Предпосылки

1. Убедитесь, что пользователь, для которого необходимо изменить UID и GID, в данный момент не имеет активных процессов, запущенных в системе.

Чтобы проверить то же самое, используйте команду «ps».

Например:

# ps -ef | grep user01
# ps -ef | grep 800
Примечание: в команде «ps -ef» отображаются UID. Так что убедитесь, что вы грепаете поя UID, а также имени пользователя.
2. Сделайте резервную копию важных файлов, в которых хранится информация, связанная с UID и GID. т.е. /etc/passwd и /etc/group.
# cp -p /etc/passwd /etc/passwd.bkp
# cp -p /etc/group /etc/group.bkp

3. Проверьте существующие UID и GID пользователя с помощью команды «id»:

# id user01
uid=800(user01) gid=700(group01) groups=700(group01)

Изменение UID и GID пользователя и группы


После того, как вы сделали необходимые резервные копии, мы можем изменить UID и GID.

1. Сначала измените GID группы, group01:

# groupmod -g 600 group01

2. Затем также измените UID и GID пользователя user01:

# usermod -u 900 -g 600 user01

3. Проверьте новый UID и GID пользователя:

# id user01
uid=900(user01) gid=600(group01) groups=600(group01)

Предостережения


1. Если в группе «group01» несколько пользователей, после изменения GID группы вам придется изменить других пользователей, а также user01, как показано выше.

2. После того, как вы изменили UID и GID, вам также придется изменить права доступа к файлам, принадлежащим пользователю/группе.

Но команда chown также сбрасывает SETUID и SETGID файлов, поэтому вам потребуется вручную изменить разрешения этих файлов позже.

Чтобы найти такие файлы:

# find / -uid 900 -perm /6000 -ls
# find / -gid 900 -perm /6000 -ls
3. Чтобы найти файлы, принадлежащие user01 и group01, и изменить их права:
# find / -uid 800 -exec chown -v -h 900 '{}' \;
# find / -gid 700 -exec chgrp -v 600 '{}' \;

Опция -h также используется для изменения прав символических ссылок.

 

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий

  1. user

    Ошибка в
    # find / -gid 900 -perm /6000 -ls

    Должно быть
    # find / -gid 600 -perm /6000 -ls
    😉

    Ответить
  2. Альф

    Спасибо.
    Добавьте в Предостерижения в п.1
    # cat /etc/group | grep group01
    чтоб увидеть пользователей входящих в группу.

    Ответить
  3. Александр

    в команде «ps -ef» НЕ отображаются UID

    Ответить
    1. cryptoparty автор

      Отображаются, добавил скриншот

      Ответить