Mac OS Xのユーザーが/ etc / passwdに表示されない


29

/etc/passwdファイルを調べることにより、システム内のすべてのユーザーのリストを取得する必要があります。ただし、passwdMac OS XIでファイルをダンプすると、現在のユーザー名は表示されませんが、次のような多くのエントリが表示されます。

  _xgridagent:*:86:86:Xgrid Agent:/ 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:Spotlight:/ var / empty:/ usr / bin / false
  _tokend:*:91:91:Token Daemon:/ var / empty:/ usr / bin / false

ユーザー名でシェルにログインし、そのユーザー名を見ることができるのはwhoなぜですか?

回答:


25

/etc/passwdOSがシングルユーザーモードになっているときに、ファイルにのみ参照されます。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 Utilityはに移動しました/System/Library/CoreServices/Directory Utility


私はそのようなものを探しに行きました(ディレクトリユーティリティ)-そして私のSnow Leopardのインストールにはありません...私が見逃している可能性のあるアイデア-それがあなたのものにどのように着いたのですか?
ジョナサンレフラー

Hmmm ... Appleは、「Mac OS X v10.5には、コンピューターをMicrosoft Active Directoryにバインドするための2つのユーティリティが含まれています。ディレクトリユーティリティはアプリケーションであり、dsconfigadはターミナルからアクセスするコマンドラインユーティリティです。ディレクトリユーティリティのActive Directoryコネクタ。 "
ジョナサンレフラー

広告された場所にはインストールされず、スポットライトにも表示されません。パスワードファイルが嘘をついているようです。
スティーブウェット

私のパスワードファイルは同じfibを伝えます。私は見つけましたdsconfigad
ジョナサンレフラー

2
ディレクトリユーティリティの新しい場所が追加されました。
アランシュトコ

10

情報を保持する一連のディレクトリサービスがあります。dsclそれらを操作するための一連のコマンドラインツール(1つ)(ハード)があるか、システム環境設定を使用してそれらの一部を処理できます。


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>

警告を除いてすべてを表示するには、ユーザーの写真の16進バージョンを画面にダンプします。他のコンポーネントが必要な場合、JPEGPhotoアイテムを回避できれば、そこにあるものを確認するのに役立ちます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.