![удалить пользователя с неуникальным идентификатором](https://rvso.com/image/76428/%D1%83%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C%20%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F%20%D1%81%20%D0%BD%D0%B5%D1%83%D0%BD%D0%B8%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%BC%20%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82%D0%BE%D1%80%D0%BE%D0%BC.png)
Я создал пользователя с неуникальным идентификатором, передающим -o -u 1000 -m
опцию в useradd
команду. Так что теперь у меня есть два пользователя с одинаковым идентификатором, но с разными именами и разными домашними каталогами.
Я подумал, что это может быть решением для создания новой чистой среды (для целей тестирования) и сохранения тех же прав доступа к некоторым каталогам и файлам разработки.
Хотя создание пользователя и вход в его собственную среду рабочего стола прошли успешно, одно приложение, вручную запущенное с терминала, использовало домашний каталог исходного пользователя. Поэтому, начиная idea.sh
какscantligt_2все еще использовал домашний каталог пользователяскудный свет.
как это возможно? почему это приложение все еще использует домашний каталог исходного пользователя, даже если я запустил его как второе использование?
вот содержимое некоторых переменных окружения.
$> echo $HOME
/home/scantlight_2
$> echo $USER
scantlight_2
$> cd ~
$> pwd
/home/scantlight_2
и после всех испытаний,
Безопасно ли удалять пользователя «scantlight_2» с помощью userdel
команды или мне следует сделать это вручную из /etc/shadow
файла, чтобы избежать конфликтов?
EDIT: idea.sh
Это стартовый скрипт IDE "IntelliJ IDEA". Я сделал быструю рекурсию grep
по содержимому каталога bin и не использовал команду getent. Ниже приведена команда, которую я использовал.
grep -r -i "getent|passwd" ./idea_install/bin
Спасибо.
решение1
Большинство программ, которым нужно заботиться об именах пользователей, будут выполнять getent()
поиск, чтобы найти UID и использовать его с тех пор - это потому, что пользователи идентифицируются по uid, номеру. Имя - это не более чем красивая печать и удобство.
Например, запустите id 1000
или getent passwd 1000
, и они отобразят только первую запись для этого uid.
userdel
Использовать или deluser
любую подобную команду для удаления второго пользователя небезопасно .
Это потому, что они, скорее всего, удалятпервыйпользователя с uid 1000, которого они находят.
Вместо этого вам необходимо вручную отредактировать файлы паролей и групп:
vipw
иvipw -s
редактировать/etc/passwd
и/etc/shadow
vigr
иvigr -s
редактировать/etc/group
и/etc/gshadow