Я добавил нового пользователя в Ubuntu, используя марионетку с жестко запрограммированным uid 10017. uid должны быть одинаковыми на всех рабочих станциях, чтобы при восстановлении данных пользователя все выстроилось в линию.
Теперь выяснилось, что uid не уникален. Mysql его использует. Как я могу протестировать сервер, чтобы узнать, существует ли uid (10018)?
Отвечая на конкретный вопрос (как узнать, используется ли uid) ...
getent passwd 1234
Завершится с 0, если uid используется, и с 2, если нет. Как говорит Марк, он также выведет любые совпадающие записи. При использовании внутри сценария оболочки я ожидал бы отбросить вывод и просто протестировать код выхода.
Обратите внимание, что использование getent
имеет преимущество перед любыми методами, которые смотрят на /etc/passwd
напрямую, потому что он также будет обращаться к любым другим источникам данных, которые вы настроили (NIS, LDAP и т. д.).
cat /etc/passwd | awk -F: '{print $3}' | sort -n