Użytkownicy nie pojawiają się w / etc / passwd w Mac OS X


29

Analizując /etc/passwdplik, powinienem uzyskać listę wszystkich użytkowników w systemie. Jednak podczas zrzutu passwdpliku w systemie Mac OS XI nie widzę mojej bieżącej nazwy użytkownika, ale wiele takich wpisów:

  _xgridagent: *: 86: 86: Agent Xgrid: / var / xgrid / agent: / usr / bin / false
  _appowner: *: 87: 87: Właściciel aplikacji: / var / empty: / usr / bin / false
  _windowserver: *: 88: 88: WindowServer: / var / empty: / usr / bin / false
  _spotlight: *: 89: 89: Spotlight: / var / empty: / usr / bin / false
  _tokend: *: 91: 91: Token Daemon: / var / empty: / usr / bin / false

Dlaczego mogę zalogować się do powłoki przy użyciu mojej nazwy użytkownika i zobaczyć tę nazwę użytkownika, gdy to zrobię who?

Odpowiedzi:


25

/etc/passwdPlik jest konsultowany tylko wtedy, gdy system operacyjny jest w trybie pojedynczego użytkownika. „Standardową” lokalizacją informacji o koncie w OS X jest DirectoryService.

Spróbuj man DirectoryServiceuzyskać więcej informacji.

W górnej części mojego pliku haseł pojawia się następujący blok komentarzy:

##
# 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.
##

W najnowszych wersjach OS X Directory Utility został przeniesiony do /System/Library/CoreServices/Directory Utility.


Szukałem czegoś takiego (Directory Utility) - i nie ma go w mojej instalacji Snow Leopard ... jakiś pomysł, czego mógłbym przegapić - jak to się stało?
Jonathan Leffler,

Hmmm ... Apple mówi: „ Mac OS X 10.5 zawiera dwa narzędzia służące do wiązania komputerów z Microsoft Active Directory. Directory Utility to aplikacja, a dsconfigad to narzędzie wiersza polecenia, do którego można uzyskać dostęp przez Terminal. Oba mogą być używane do konfigurowania Łącznik usługi Active Directory w Directory Utility.
Jonathan Leffler,

Nie jest zainstalowany w reklamowanej lokalizacji ani nie pojawia się w centrum uwagi. Wygląda na to, że mój plik hasła mnie okłamuje.
Steve Weet,

Mój plik haseł mówi to samo fib. I znaleźliśmy dsconfigad.
Jonathan Leffler,

2
Dodano nową lokalizację narzędzia katalogu.
Alan Shutko

10

Istnieje zestaw usług katalogowych, który przechowuje informacje. Istnieje szereg narzędzi wiersza polecenia ( dscldla jednego) do manipulowania nimi (na twardo) lub można użyć Preferencji systemowych do obsługi niektórych z nich.


4

OS X nie używa plików UNIX / LINUX / etc / passwd. Zamiast tego przechowuje go w NetInfo. Poleceniem używanym do interakcji z NetInfo jest narzędzie polecenia usługi katalogowej lub dscl.

Nie znam poleceń, ale jestem pewien, że prosty man dsclnie skrzywdziłby nikogo.


2
NetInfo zostało zastąpione przez Directory Services od Mac OS X 10.5 i nowszych.
Chealion


1

Zdaję sobie sprawę, że nie jest to bezpośrednia odpowiedź na pytanie, ale czuję, że wielu, którzy napotkają to pytanie, będą chcieli wiedzieć, jak wykonać proste zapytanie, aby znaleźć informacje o użytkowniku z wiersza poleceń. Dla innych osób znajdujących się na tej ścieżce, które chciałyby zobaczyć konfigurację podobną do standardowych poleceń uniksowych, uznałem to proste polecenie za przydatne.

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

Możesz także:

dscl . -read /Users/<putusernamehere>

Aby zobaczyć wszystko, ale być ostrzeżonym, zrzuci szesnastkową wersję zdjęcia użytkownika na ekran. Jeśli potrzebujesz innych komponentów, warto jednak zobaczyć, co tam jest, jeśli możesz uniknąć elementu JPEGPhoto.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.