Назад | Перейти на главную страницу

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

Я добавил нового пользователя в 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