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

Материал из Записки на полях
Перейти к навигации Перейти к поиску

Вводные данные

Username: user01
Group: group01
Existing UID: 800
Existing GID: 700
New UID: 900
New GID: 600

Подготовка

Убедимся, что отсутствуют запущенные процессы от имени нашего пользователя

# ps -ef | grep user01
# ps -ef | grep 800

Сделаем резервную копию /etc/passwd и /etc/group

# cp -p /etc/passwd /etc/passwd.bkp
# cp -p /etc/group /etc/group.bkp

Проверим UID и GID нашего пользователя

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

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

Сначала меняем GID для группы group01

# groupmod -g 600 group01

Далее меняем UID и GID для пользователя user01

# usermod -u 900 -g 600 user01

Проверяем, что новые значения применились к пользователю

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

Нюансы

1. В группу group01 могут входить несколько пользователей. Процедуру смены GID надо провести для всех из них.

2. Необходимо найти все файлы принадлежащие user01 или group01 и поменять права доступа на них

# find / -uid 800 -exec chown -v -h 900 '{}' \;
# find / -gid 700 -exec chgrp -v 600 '{}' \;