Как мне узнать, существует ли uid?

Я добавил нового пользователя в Ubuntu, используя puppet с жестко закодированным идентификатором 10017. Идентификаторы должны быть одинаковыми на рабочих станциях, чтобы при восстановлении пользовательских данных все выстраивалось.

Теперь я узнаю, что UID не уникален. Mysql использует это. Как я могу протестировать сервер, чтобы узнать, существует ли uid (10018)?

2 ответа

Решение

Отвечая на конкретный вопрос (как узнать, используется ли uid) ...

getent passwd 1234

Завершит работу с 0, если используется uid, и с 2, если нет. Как говорит Марк, он также выведет любые подходящие записи. При использовании внутри сценария оболочки я бы ожидал отбросить вывод и просто протестировать код выхода.

Обратите внимание, что с помощью getent имеет преимущество любых методов, которые смотрят на /etc/passwd непосредственно, потому что он также будет обращаться к любым другим источникам данных, которые вы настроили (NIS, LDAP и т. д.).

cat /etc/passwd | awk -F: '{print $3}' | sort -n
Другие вопросы по тегам