- How to (Correctly) Change the UID and GID of a user/group in Linux
- Pre-requisites
- Modifying the UID and GID of the user and group
- Caveats
- Some more articles you might also be interested in …
- How to change UID or GID safely in Linux
- Current scenario :
- Expected scenario :
- How to switch GID of two groups
- Current scenario :
- Expected scenario :
- How to switch UID of two users
- Изменить UID и GID пользователя/группы в Linux
- Изменение UID и GID пользователя и группы
- 🐧 Как (правильно) изменить UID и GID пользователя / группы в Linux
- Предпосылки
- Изменение UID и GID пользователя и группы
- Предостережения
How to (Correctly) Change the UID and GID of a user/group in Linux
Changing the UID and GID of a user might seem a trivial task to most of the system admins. But it’s not so trivial and it involves a lot more changes in the backend. In this post, we have outlined the exact steps to change the UID and GID of a user “user01”.
Username: user01 Group: group01 Existing UID: 800 Existing GID: 700 New UID: 900 New GID: 600
Pre-requisites
1. Make sure the user for which UID and GID is to be changed is currently not having any active process running in the system. To check the same use “ps” command. For example:
# ps -ef | grep user01 # ps -ef | grep 800
Note: In the “ps -ef” command UID are displayed. So make sure you grep for UID as well as the username for the user.
2. Take the backup of important files where UID and GID related information is stored. i.e. /etc/passwd and /etc/group.
# cp -p /etc/passwd /etc/passwd.bkp # cp -p /etc/group /etc/group.bkp
3. Verify the exisitng UID and GID of the user using the “id” command:
# id user01 uid=800(user01) gid=700(group01) groups=700(group01)
Modifying the UID and GID of the user and group
Once you have taken necessary backups and command outputs we can go ahead and change the UID and GID.
1. First change the GID of the group, group01:
2. Next, change the UID as well and GID of the user, user01:
# usermod -u 900 -g 600 user01
3. Verify the new UID and GID of the user:
# id user01 uid=900(user01) gid=600(group01) groups=600(group01)
Caveats
1. If there are multiple users in the group “group01”, after changing the GID of the group you will have to modify the other users as well along with the user01 as shown above.
2. Once you have changed the UID and GID, you will have to change the permissions of the files owned by the user/group as well. But the chown command also resets the SETUID and SETGID of the files, so you will need to manually change the permissions of these files later on. To find such files:
# find / -uid 900 -perm /6000 -ls # find / -gid 900 -perm /6000 -ls
3. To find the files owned by user01 and group01 and to change their permissions:
# find / -uid 800 -exec chown -v -h 900 '<>' \; # find / -gid 700 -exec chgrp -v 600 '<>' \;
The -h option is used to change the permissions of symbolic links as well.
Some more articles you might also be interested in …
How to change UID or GID safely in Linux
In this article, we will walk you through to change UID or GID of existing users or groups without affecting file ownership owned by them. Later, we also explained how to switch GID between two groups and how to switch UID between two users on the system without affecting file ownership owned by them.
Let’s start with changing UID or GID on the system.
Current scenario :
User shrikant with UID 1001
Group sysadmin with GID 2001
Expected scenario :
User shrikant with UID 3001
Group sysadmin with GID 4001
Changing GID and UID is simple using usermod or groupmod command, but you have to keep in mind that after changing UID or GID you need to change ownership of all files owned by them manually since file ownership is known to the kernel by GID and UID, not by username.
Change UID or GID as below :
root@kerneltalks # usermod -u 3001 shrikant root@kerneltalks # groupmod -g 4001 sysadmin
Now, search and change all file’s ownership owned by this user or group with for loop
root@kerneltalks # for i in `find / -user 1001`; do chown 3001 $i; done root@kerneltalks # for i in `find / -group 2001`; do chgrp 4001 $i; done OR root@kerneltalks # find / -user 1001 -exec chown -h shrikant <> \; root@kerneltalks # find / -group 2001 -exec chgrp -h sysadmin <> \;
That’s it. You have safely changed UID and GID on your system without affecting any file ownership owned by them!
How to switch GID of two groups
Current scenario :
Group sysadmin with GID 1111
Group oracle with GID 2222
Expected scenario :
Group sysadmin with GID 2222
Group oracle with GID 1111
In the above situation, we need to use one intermediate GID which is currently not in use on your system. Check /etc/group file and select one GID XXXX which is not present in a file. In our example, we take 9999 as intermediate GID.
Now, the process is simple –
- Change sysadmin GID to 9999
- Find and change the group of all files owned by GID 1111 to sysadmin
- Change oracle GID to 1111
- Find and change the group of all files owned by GID 2222 to oracle
- Change sysadmin GID to 2222
- Find and change the group of all files owned by GID 9999 to sysadmin
List of commands for above steps are –
root@kerneltalks # groupmod -g 9999 sysadmin root@kerneltalks # find / -group 1111 -exec chgrp -h sysadmin <> \; root@kerneltalks # groupmod -g 1111 oracle root@kerneltalks # find / -group 2222 -exec chgrp -h oracle <> \; root@kerneltalks # groupmod -g 2222 sysadmin root@kerneltalks # find / -group 9999 -exec chgrp -h sysadmin <> \;
How to switch UID of two users
It can be done in the same way we switched GID above by using intermediate UID.
Изменить UID и GID пользователя/группы в Linux
Изменение UID и GID пользователя может показаться тривиальной задачей для большинства системных администраторов. Но она не так уж тривиальна и требует гораздо большего количества изменений в бэкенде. В этом посте мы описали точные шаги по изменению UID и GID пользователя «user».
id user uid=255(user) gid=255(user) groups=255(user)
Убедитесь, что пользователь, для которого необходимо изменить UID и GID, в настоящее время не имеет активного процесса, запущенного в системе. Для проверки используйте команду «ps». Например:
ps -ef | grep user ps -ef | grep 255
В команде «ps -ef» отображаются UID. Поэтому убедитесь, что в grep отображается UID, а также имя пользователя.
Сделайте резервные копии важных файлов, в которых хранится информация, связанная с UID и GID, т.е. /etc/passwd и /etc/group.
cp -p /etc/passwd /etc/passwd.bkp cp -p /etc/group /etc/group.bkp
Изменение UID и GID пользователя и группы
После создания необходимых резервных копий и вывода команд мы можем приступить к изменению UID и GID.
Сначала измените GID группы, group01:
Затем измените UID и GID пользователя user01:
Проверьте новые UID и GID пользователя:
id user uid=900(user) gid=600(user) groups=600(user)
Если в группе «user» несколько пользователей, то после изменения GID группы вам придется изменить и других пользователей вместе с user, как показано выше.
После изменения UID и GID необходимо изменить разрешения файлов, принадлежащих пользователю/группе. Но команда chown также сбрасывает SETUID и SETGID файлов, поэтому позже вам придется вручную изменить разрешения этих файлов. Чтобы найти такие файлы:
find / -uid 900 -perm /6000 -ls find / -gid 900 -perm /6000 -ls
Чтобы найти файлы, принадлежащие пользователю user и группе user, и изменить их разрешения:
find / -uid 255 -exec chown -v -h 900 '<>' \; find / -gid 255 -exec chgrp -v 600 '<>' \;
Опция -h также используется для изменения разрешений символических ссылок.
либо изменить для конкретных директорий, в случае если это служба и пути известны
chown -R user:user /var/log/ chown -R user:user /etc/ chown -R user:user /etc/default/
🐧 Как (правильно) изменить UID и GID пользователя / группы в Linux
Мануал
Изменение UID и GID пользователя может показаться тривиальной задачей для большинства системных администраторов.
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:
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
# find / -uid 800 -exec chown -v -h 900 '<>' \; # find / -gid 700 -exec chgrp -v 600 '<>' \;
Опция -h также используется для изменения прав символических ссылок.
Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Спасибо.
Добавьте в Предостерижения в п.1
# cat /etc/group | grep group01
чтоб увидеть пользователей входящих в группу.
- Аудит ИБ (49)
- Вакансии (12)
- Закрытие уязвимостей (105)
- Книги (27)
- Мануал (2 305)
- Медиа (66)
- Мероприятия (39)
- Мошенники (23)
- Обзоры (820)
- Обход запретов (34)
- Опросы (3)
- Скрипты (114)
- Статьи (352)
- Философия (114)
- Юмор (18)
Anything in here will be replaced on browsers that support the canvas element
В этой заметке вы узнаете о блокировке IP-адресов в Nginx. Это позволяет контролировать доступ к серверу. Nginx является одним из лучших веб-сервисов на сегодняшний день. Скорость обработки запросов делает его очень популярным среди системных администраторов. Кроме того, он обладает завидной гибкостью, что позволяет использовать его во многих ситуациях. Наступает момент, когда необходимо ограничить доступ к […]
Знаете ли вы, что выполняется в ваших контейнерах? Проведите аудит своих образов, чтобы исключить пакеты, которые делают вас уязвимыми для эксплуатации Насколько хорошо вы знаете базовые образы контейнеров, в которых работают ваши службы и инструменты? Этот вопрос часто игнорируется, поскольку мы очень доверяем им. Однако для обеспечения безопасности рабочих нагрузок и базовой инфраструктуры необходимо ответить […]
Одной из важнейших задач администратора является обеспечение обновления системы и всех доступных пакетов до последних версий. Даже после добавления нод в кластер Kubernetes нам все равно необходимо управлять обновлениями. В большинстве случаев после получения обновлений (например, обновлений ядра, системного обслуживания или аппаратных изменений) необходимо перезагрузить хост, чтобы изменения были применены. Для Kubernetes это может быть […]
Является ли запуск сервера NFS в кластере Kubernetes хорошей идеей или это ворота для хакеров Одним из многочисленных преимуществ сетевой файловой системы является ее способность выполнять многократное чтение-запись. И как и все в наши дни, NFS – это просто еще одна служба, которую можно запустить в своем кластере Kubernetes. Однако является ли сервер NFS подходящей […]
Репозитории Git хранят ценный исходный код и используются для создания приложений, работающих с конфиденциальными данными. Если злоумышленнику удастся скомпрометировать учетную запись GitHub с уязвимым репозиторием, он сможет перенести вредоносные коммиты прямо на производство. Подписанные коммиты помогают избежать этого. Что такое подписанные коммиты? Подписанные коммиты подразумевают добавление цифровой подписи к вашим коммитам с использованием закрытого криптографического […]