web-dev-qa-db-ja.com

Linux / etc / shadowパスワード変更セキュリティ

Linuxシステムでパスワードを変更するとどうなりますか?私が覚えているように、基本的にすべてのパスワードはBSDのようなシステムでは/etc/shadowまたは/etc/master.passwdというファイルに保存されます。それらの両方は、600の権限を持つroot/wheelが所有しています。

ターミナルでpasswdコマンドを使用してパスワードを変更すると、ルート権限でこのファイルにアクセスできます。次に、読み書きします。

ルートのアクセス許可を取得する方法と、パスワードの変更を担当するプロセス(またはプロセス)に興味があります。

15
PaulOverflow

基本的には、suidビットを使用しています。マシンでpasswdコマンドを確認した場合:

-rwsr-xr-x  1 root   root         43K Feb 15  2011 passwd

SUID(実行時に所有者のユーザーIDを設定する)は、ファイルに与えられる特別なタイプのファイル許可です。通常、Linux/Unixでは、プログラムが実行されると、ログインしたユーザーからアクセス許可を継承します。 SUIDは、プログラム/ファイルを実行するユーザーではなく、ファイル所有者のアクセス許可でプログラム/ファイルを実行する一時的なアクセス許可をユーザーに与えることと定義されています。簡単に言うと、バイナリを実行すると、ユーザーはファイルの所有者の権限と所有者のUIDとGIDを取得します。したがって、バイナリは実行時に実際にはrootとして実行されています。

21
Lucas Kauffman