Я должен очистить всех пользователей, у которых есть идентификатор 0, отличный от root. Например, мой файл PASSWD содержит корень пользователя с ID 0 и пользовательский Гомер с идентификатором 0.Как удалить пользователей с uid 0?
Я пытался что-то вроде
grep :x:0: passwd | grep -v root:x: | awk -F : '{ print $1 }' | xargs userdel
, но я получил userdel ошибки: пользователь Гомер в настоящее время вошли в систему, даже если Я зарегистрирован как root, а не Гомер. Я полагаю, эта ошибка возникает из-за их совместного использования и идентификатора.
Есть ли способ обойти это? Должен ли я просто редактировать файлы passwd и shadow? В противном случае существует ли способ заставить id 0 быть уникальным, чтобы мы могли гарантировать, что никакие другие пользователи не будут созданы с id 0? Благодарю.
UIDs * являются * уникальными. У вас нет двух пользователей с ID = 0, у вас есть два имени пользователя для пользователя с ID = 0. Ваша команда запрашивает 'userdel' для удаления этого пользователя (через его имя пользователя' homer'), которое вы не можете сделать потому что вы вошли в систему как пользователь (через свое имя пользователя «root»). – ruakh
ОК спасибо. Есть ли способ удалить другие имена пользователей? Удаляет ли строки из passwd и тени все, что необходимо? –
См. Ниже правильную команду. Редактирование непосредственно опасно на машине с любой нагрузкой. – Bryce