Người dùng không xuất hiện trong / etc / passwd trên Mac OS X


29

Bằng cách kiểm tra /etc/passwdtệp, tôi sẽ nhận được danh sách tất cả người dùng trong hệ thống. Tuy nhiên, khi kết xuất passwdtệp trên Mac OS XI không thấy tên người dùng hiện tại của tôi mà có nhiều mục như sau:

  _xgridagent: *: 86: 86: Tác nhân Xgrid: / var / xgrid / tác nhân: / usr / bin / false
  _appowner: *: 87: 87: Chủ sở hữu ứng dụng: / var / blank: / usr / bin / false
  _windowserver: *: 88: 88: WindowServer: / var / blank: / usr / bin / false
  _spotlight: *: 89: 89: Spotlight: / var / blank: / usr / bin / false
  _tokend: *: 91: 91: Daemon mã thông báo: / var / trống: / usr / bin / false

Tại sao tôi có thể đăng nhập vào shell bằng tên người dùng của mình và xem tên người dùng đó khi tôi làm who?

Câu trả lời:


25

Các /etc/passwdtập tin được chỉ tham khảo ý kiến khi hệ điều hành đang ở chế độ đơn người dùng. Vị trí "tiêu chuẩn" cho thông tin tài khoản trên OS X là DirectoryService.

Hãy thử man DirectoryServiceđể biết thêm thông tin.

Khối nhận xét sau xuất hiện ở đầu tệp mật khẩu của tôi:

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

Trong các phiên bản gần đây của OS X Directory Utility đã được chuyển sang /System/Library/CoreServices/Directory Utility.


Tôi đã đi tìm thứ gì đó tương tự (Tiện ích thư mục) - và nó không có trong bản cài đặt Snow Leopard của tôi ... có ý tưởng nào tôi có thể thiếu - làm thế nào nó đến được với bạn không?
Jonathan Leffler

Hmmm ... Apple cho biết " Mac OS X v10.5 bao gồm hai tiện ích được sử dụng để liên kết máy tính với Microsoft Active Directory. Directory Utility là một ứng dụng và dsconfigad là tiện ích dòng lệnh được truy cập qua Terminal. Cả hai có thể được sử dụng để định cấu hình Trình kết nối Active Directory trong Directory Utility. "
Jonathan Leffler

Nó không được cài đặt ở vị trí được quảng cáo, cũng không xuất hiện trong ánh đèn sân khấu. Có vẻ như tập tin mật khẩu của tôi đang nói dối tôi.
Steve Weet

Tập tin mật khẩu của tôi nói với cùng một sợi. Tôi đã tìm thấy dsconfigad.
Jonathan Leffler

2
Đã thêm vị trí mới của tiện ích thư mục.
Alan Shutko

10

Có một bộ Dịch vụ thư mục lưu giữ thông tin. Có một loạt các công cụ dòng lệnh ( dsclcho một) để thao tác chúng (cứng) hoặc bạn có thể sử dụng Tùy chọn hệ thống để xử lý một số trong số chúng.


4

OS X không sử dụng các tệp UNIX / LINUX / etc / passwd. Thay vào đó, nó lưu trữ nó trong NetInfo. Lệnh được sử dụng để tương tác với NetInfo là tiện ích lệnh dịch vụ thư mục, hoặc dscl.

Tôi không quen thuộc với các lệnh, nhưng tôi chắc chắn một điều đơn giản man dsclsẽ không làm tổn thương bất cứ ai.


2
NetInfo đã được thay thế bởi Dịch vụ thư mục kể từ Mac OS X 10.5 trở lên.
Chealion


1

Tôi nhận ra điều này không trực tiếp trả lời câu hỏi nhưng tôi cảm thấy nhiều người gặp phải câu hỏi này sẽ chỉ muốn biết cách thực hiện một truy vấn đơn giản để tìm thông tin người dùng từ dòng lệnh. Đối với những người khác trên đường dẫn này chỉ cần xem cấu hình tương tự với các lệnh unix tiêu chuẩn, tôi thấy lệnh đơn giản này hữu ích.

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

Bạn cũng có thể làm:

dscl . -read /Users/<putusernamehere>

Để xem mọi thứ nhưng được cảnh báo, nó sẽ đổ một phiên bản hex của ảnh người dùng lên màn hình. Nếu bạn cần các thành phần khác mặc dù nó hữu ích để xem những gì ở đó nếu bạn có thể tránh mục JPEGPhoto.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.