Как изменить uid пользователя в linux
Перейти к содержимому

Как изменить uid пользователя в linux

  • автор:

Как изменить uid и gid

При смене числовых ID y пользователя нужно сменить и ID (owner/group) файлов вне домашнего каталога (если таковые имеются).

Пример. Найти все директории и файлы с ID 1007 от самого корня / и сделать chown для каждого найденного элемента

find / -user 1007 -exec chown -h 1337 <> \;

Сайт rtfm.wiki использует cookies и трекинг посещений. Продолжая использовать этот сайт, вы соглашаетесь с сохранением файлов cookie на вашем компьютере. Если вы не согласны покиньте сайт или включите Adblock �� ОК Что такое cookies? ��

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

Мануал

Автор cryptoparty На чтение 2 мин Опубликовано 27.07.2020

Изменение 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 также используется для изменения прав символических ссылок.

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

Добавить комментарий Отменить ответ
user 09.02.2022 в 16:38
Ошибка в
# find / -gid 900 -perm /6000 -ls Должно быть
# find / -gid 600 -perm /6000 -ls
��
Альф 05.03.2022 в 23:30

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

Поддержать нас

  • Аудит ИБ (49)
  • Вакансии (12)
  • Закрытие уязвимостей (110)
  • Книги (27)
  • Мануал (2 359)
  • Медиа (66)
  • Мероприятия (39)
  • Мошенники (23)
  • Обзоры (831)
  • Обход запретов (34)
  • Опросы (3)
  • Скрипты (116)
  • Статьи (360)
  • Философия (124)
  • Юмор (18)

Наш Telegram

Социальные сети
Поделиться

Anything in here will be replaced on browsers that support the canvas element

  • �� Каковы различные форматы сертификатов? 27.10.2023

Цифровые сертификаты могут использоваться для различных целей. Они могут использоваться для защиты соединений с веб-сайтами, для шифрования сообщений электронной почты или для проверки личности пользователя. Выбор правильного формата сертификата необходим для обеспечения безопасности и сохранности данных. Когда речь идет о различных форматах сертификатов, важно выбрать тот, который соответствует вашим потребностям Выберите формат сертификата, совместимый с […]

Преобразование файла PFX (PKCS #12) в формат PEM (Privacy Enhanced Mail) достаточно просто на Linux и Unix-подобных системах. В этой статье мы рассмотрим, как преобразовать файл сертификата в формате PFX в файл PEM с помощью OpenSSL из командной строки. Что такое файл PFX? PFX (также PKCS#12) – это формат файла, содержащего сертификат(ы) и закрытый(ые) ключ(ы), […]

Одним из основных нововведений, появившихся в Podman, стала возможность запуска контейнеров без прав root. С точки зрения безопасности это было существенным улучшением, поскольку потенциально скомпрометированный контейнер, запущенный от имени root, представляет собой угрозу безопасности для хост-системы. Чтобы добиться аналогичного поведения, последние версии Docker поддерживают запуск демона docker в пользовательском контексте. �� Почему процессы в контейнерах […]

Small Form Factor Pluggable (SFP) – это компактный приёмопередатчик, который устанавливается в SFP порт коммутатора Ethernet. Модуль используется для присоединения платы сетевого устройства к оптическому волокну или витой паре. Модули SFP заменили устаревшие модули GBIC благодаря своим миниатюрным размерам. Это преимущество в размерах позволяет им эффективно работать в ограниченных сетевых средах, обеспечивая быстрый обмен данными […]

Давайте поговорим о классификации вредоносных программ. Когда антивирусная программа или средство защиты от вредоносного ПО обнаруживает что-то потенциально вредоносное, она использует определенный формат, чтобы помочь вам или другим специалистам понять, с какой именно угрозой вы имеете дело. Формат может выглядеть примерно так: Type:Platform/Family.Variant!Suffixes Это не всегда будет выглядеть именно так, поскольку, как вы помните, не […]

Смена ID пользователя

Как можно поменять ID пользователя локальной linux-системы?

drSchur ★★★
20.10.13 20:25:45 MSK
Gotf ★★★
( 20.10.13 20:30:15 MSK )

В гугле то забанили?

#usermod -u UID username

sugresmax ★
( 20.10.13 20:52:27 MSK )
Ответ на: комментарий от sugresmax 20.10.13 20:52:27 MSK

А я обычно ручками.

Anon
( 20.10.13 21:16:17 MSK )

В /etc/passwd третье поле — uid. Меняй на здоровье 🙂

generator ★★★
( 21.10.13 12:52:27 MSK )
Ответ на: комментарий от Anon 20.10.13 21:16:17 MSK

Для плечистого народа хочу заметить, что usermod не только UID в passwd меняет, но и приводит в соответствие создателя директорий, папок. Не нужно делать после chown.

lvi ★★★★
( 21.10.13 14:32:36 MSK )
Ответ на: комментарий от lvi 21.10.13 14:32:36 MSK

usermod не только UID в passwd меняет, но и приводит в соответствие создателя директорий, папок

Anon
( 21.10.13 14:50:01 MSK )
Ответ на: комментарий от Anon 21.10.13 14:50:01 MSK

lvi ★★★★
( 21.10.13 15:07:01 MSK )
Последнее исправление: lvi 21.10.13 15:07:23 MSK (всего исправлений: 1)

Ответ на: комментарий от sugresmax 20.10.13 20:52:27 MSK
drSchur ★★★
( 21.10.13 15:11:04 MSK ) автор топика
Ответ на: комментарий от lvi 21.10.13 14:32:36 MSK

Да хрен там, всегда после него chown приходится проходить.

anonymous
( 21.10.13 15:40:49 MSK )
Ответ на: комментарий от anonymous 21.10.13 15:40:49 MSK

Да хрен там, всегда после него chown приходится проходить.

Мож у тебя ОС какая-то особенная.

lvi ★★★★
( 21.10.13 15:52:52 MSK )
Ответ на: комментарий от lvi 21.10.13 15:07:01 MSK

Что-то не могу придумать ситуацию, в которой возникла бы необходимость смены UID’а уже длительное время существующего пользователя. А у нового пользователя и хомяка-то нет еще, пока сам /etc/skel не скинешь и chmod не сделаешь.

Anon
( 21.10.13 15:56:57 MSK )
Ответ на: комментарий от Anon 21.10.13 15:56:57 MSK

А у нового пользователя и хомяка-то нет еще, пока сам /etc/skel не скинешь и chmod не сделаешь

Из всех ОС, что использовал, useradd все это делает поумолчанию. Debian не помню, raspbian точно явно нужно -m (useradd -m), чтобы он домашнюю директорию сделал. Тем не менее и там (useradd если с -m) копируются файлы из скела, устанавливается own, все само делается.

Ну хочет ТС UID поменять, мало ли.

lvi ★★★★
( 21.10.13 16:30:27 MSK )
Ответ на: комментарий от Anon 21.10.13 15:56:57 MSK

Легко: два сервера PostgreSQL, репликация master-slave, мастер складывает сегменты WAL в NFS-шару, откуда при необходимости восстановления их забирает slave. 2 варианта: или дикая ебля с idmapd(я не осилил), или привести id пользователей postgres в соответствие на обоих системах.

dark_barker: технические заметки

Дополнительный блог, куда я пишу разные статьи, заметки и решения каких-либо технических вопросов. Основная тематика блога: программирование, операционные системы, алгоритмы, java, linux, технологии.

13 сентября 2011 г.

linux: изменить UID/GID юзера в системе

Сабж надобится иногда для того, чтобы аккуратно перевести систему на другой дистрибутив. Или чтобы корректно работали общие ресурсы в сети. И т.д. Всё примитивно, просто памятка. Проверяю под федорой и арчем, но способ универсальный. Мне надо поменять uid (1000 вместо 500) юзера dimon и назначить ему другую основную группу — 100(users) вместо 500(dimon).

Информация о текущих uid и группах юзера

# id dimon uid=500(dimon) gid=500(dimon) группы=500(dimon),5(tty),14(uucp),54(lock),501(vboxusers),503(truecrypt),18(dialout)

Смена uid юзера

# usermod -u 1000 dimon

Для этого надо, чтобы пользователь не находился в системе. Иногда команда выполняется долго — меняются(!) права файлов, принадлежащих юзеру. Т.е. им перепрописывается новый uid. Но это происходит только в домашнем каталоге.
Кстати, аналогично для gid, если понадобится

# groupmod -g 1000 dimon

Смена прав всем файлам, принадлежащим юзеру

Помимо домашней папки поменять надо бы все остальные права файлов, делаем через find + exec, просто один из способов “в лоб”.

# find / -user -exec chown <> \;

И для групп аналогично:

# find / -group -exec chgrp <> \;

Выполняется тоже не так уж быстро. Смотрите, чтобы всякие сетевые папки были отмонтированы, а то смените вообще всем 🙂
Для домашнего каталога можно, конечно, сделать что-то типа

# chown -R dimon:dimon /home/dimon

Смена группы юзера

Это смена основной группы юзера (а не смена gid группы). Назначаем:

# usermod -g 100 dimon
# id dimon uid=1000(dimon) gid=100(users) группы=100(users),5(tty),14(uucp),54(lock),501(vboxusers),503(truecrypt),18(dialout)

Ещё обратите внимание, что права в домашней папке уже не меняются, т.е. все они остаются группы dimon, что довольно логично. При желании можно через find + exec найти все файлы группы dimon и заменить на users (в примере выше меняем oldgid=500 на newgid=100), но я делать не стал, не требовалось.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *