多くの本では、setuid ビットの使用例に passwd、at などが含まれていることを示しています。ただし、mac os x el Capitanでは、/ usr / bin / passwdにこのビットは設定されていません。
/etc/passwdファイルをどのように変更しますか?
答え1
OSXでは、/usr/bin/passwd
パスワードファイルは直接作成されません。代わりに、次を使用します。「ディレクトリシステム」たとえば、データベースまたはLDAPサーバー(ネットワーク資格情報など)などです。これを行うには、特権プロセスと通信します。
プログラムのマニュアルページpasswd(1)
良い出発点です。それはリストされていますpasswd(5)
(ファイル形式)記載
プロセスは通常、 getpwent(3) 関数系列の 1 つを使用してユーザー履歴を検索します。 Mac OS Xでは、この機能は次のとおりです。ディレクトリサービス(8)/etc/master.passwd ファイルを読み込み、ユーザーアカウントの他のディレクトリ情報サービスを検索するデーモンプロセス。
DirectoryService は次のように指摘しています。それ古いので、ぜひ読んでください。オープンディレクトリd(8)、これは再び次のことを意味します。
Open Directory は Mac OS X アクセスの基礎を形成します。すべての信頼できる構成情報(ユーザー、グループ、インストール、ホストされたデスクトップデータなど)。これにより、Appleとサードパーティのモジュールを介してほぼすべてのディレクトリシステムを使用できます。
そして
Open Directory Server は、Mac OS X クライアント、Mac OS X サーバー、および Darwin の一部である OpenLDAP を使用します。 OpenLDAPは、ディレクトリベースの情報を両方のデバイスに提供するための強力でスケーラブルなプラットフォームを提供します。独立そしてネットワークシステム。
passwd
したがって、最終的に(スタンドアロンシステムの場合でも)資格情報が保存されているLDAPサーバーと通信しているようです。出力を見るとそうps
かもしれません。
/usr/libexec/opendirectoryd
しかし、passwd
できるupdate /etc/passwd
、実際にはユーザーアカウントに対してこれを行いません。それを使用/etc/passwd
して/etc/pwd.db
「レガシー」アプリケーション(オープンカタログに変換されていないアプリケーション)にのみ使用できます。