Користувачі не з'являються в / etc / passwd на Mac OS X


29

Досліджуючи /etc/passwdфайл, я повинен отримати список усіх користувачів у системі. Однак, коли ви завантажуєте passwdфайл на Mac OS XI, я не бачу мого поточного імені користувача, але багато записів, таких як:

  _xgridagent: *: 86: 86: Агент Xgrid: / var / xgrid / agent: / usr / bin / false
  _appowner: *: 87: 87: Власник програми: / var / empty: / usr / bin / false
  _windowserver: *: 88: 88: WindowServer: / var / empty: / usr / bin / false
  _spotlight: *: 89: 89: Прожектор: / var / empty: / usr / bin / false
  _tokend: *: 91: 91: Демон Token: / var / empty: / usr / bin / false

Як я можу увійти в оболонку зі своїм ім'ям користувача і побачити це ім’я користувача, коли я це роблю who?

Відповіді:


25

/etc/passwdФайл радився тільки тоді , коли операційна система знаходиться в режимі одного. "Стандартне" місце для інформації про облікові записи в OS X - це DirectoryService.

Спробуйте man DirectoryServiceотримати додаткову інформацію.

Наступний блок коментарів з’являється вгорі файлу мого пароля:

##
# User Database
# 
# Note that this file is consulted directly only when the system is running
# in single-user mode.  At other times this information is provided by
# Open Directory.
#
# This file will not be consulted for authentication unless the BSD local node
# is enabled via /Applications/Utilities/Directory Utility.app
# 
# See the DirectoryService(8) man page for additional information about
# Open Directory.
##

В останніх версіях утиліти OS X Directory було переміщено до /System/Library/CoreServices/Directory Utility.


Я пішов шукати щось подібне (Utility Directory) - а його там немає в моїй установці Snow Leopard ... будь-яка ідея, чого я міг би пропасти - як це потрапило на твою?
Джонатан Леффлер

Гммм ... Apple каже: " Mac OS X v10.5 включає дві утиліти, які використовуються для прив'язки комп'ютерів до Microsoft Active Directory. Утиліта каталогу - це програма, а dsconfigad - це утиліта командного рядка, доступ до якої здійснюється через термінал. Обидва можуть бути використані для налаштування Роз'єм Active Directory в утиліті Directory ".
Джонатан Леффлер,

Він не встановлений у рекламованому місці та не з’являється у центрі уваги. Схоже, що мій файл пароля бреше мене.
Стів Вет

Файл мого пароля повідомляє ту саму фіб. Я знайшов dsconfigad.
Джонатан Леффлер

2
Додано нове місце утиліти каталогу.
Алан Шутко

10

Існує набір служб каталогів, який зберігає інформацію. Існує ряд інструментів командного рядка ( dsclдля одного) для маніпулювання ними (важко) або ви можете використовувати Системні налаштування для обробки деяких з них.


4

OS X не використовує файли UNIX / LINUX / etc / passwd. Натомість він зберігає його в NetInfo. Команда, що використовується для взаємодії з NetInfo - це утиліта команд служби служб каталогів або dscl.

Я не знайомий з командами, але впевнений, що звичайна man dsclлюдина нікому не зашкодила б.


2
NetInfo було замінено службами каталогів на Mac OS X 10.5 і новіших.
Chealion


1

Я розумію, що це не відповідає безпосередньо на питання, але я думаю, що багатьом, хто стикається з цим питанням, просто захочеться знати, як зробити простий запит, щоб знайти інформацію про користувача з командного рядка. Для інших на цьому шляху просто потрібно побачити подібний конфігурацію до стандартних команд unix, я знайшов цю просту команду корисною.

dscl . -read /Users/<putusernamehere> UniqueID PrimaryGroupID NFSHomeDirectory UserShell

Ви також можете зробити:

dscl . -read /Users/<putusernamehere>

Щоб побачити все, але не попередити, він викине на екран шестигранну версію фотографії користувачів. Якщо вам потрібні інші компоненти, хоча це корисно, щоб побачити, що там, якщо ви можете уникнути пункту JPEGPhoto.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.