web-dev-qa-db-ja.com

/ etc / shadow-読み取り専用の場合にどのように編集できますか

/ etc/shadowファイルの内容を変更しようとしていますが、読み取り専用であることに気付きました

sghk1> ls -l /etc/shadow
-r--------   1 root     sys         4045 Aug 19 16:13 /etc/shadow

/ etc/shadowファイルのパーミッションは読み取り専用です。その場合、/ usr/bin/passwdはその内容をどのように変更しますか?

e.g. passwd -x 30 username
6
Noob

Linux/unixシステムのrootユーザーは、書き込みフラグが設定されていなくてもファイルに書き込むことができます。したがって、彼は/etc/shadowまたはその他のファイルの内容をその権限とは無関係に変更できます。

passwdユーティリティにはsetuidビットが設定されています。で参照してください:

ls -la /usr/bin/passwd

次のようになります。

-rwsr-xr-x 1 root root 42824 Sep 13  2012 /usr/bin/passwd

ファイル所有者権限のsに注意してください。これは setuidビット を示します。通常のユーザーがpasswdユーティリティを実行する場合、ファイル所有者の許可を得て実行されます。この場合はルートです。

Setuidビットは、/etc/shadow/etc/passwdなどのシステムファイルの変更など、特定のタスクを実行するための一時的に昇格された特権を取得します。

Setuidビットは注意して扱う必要があります。このメカニズムは、間違ったバイナリに設定されている場合、いくつかの脆弱性に使用される可能性があります。想像してみてください。/bin/bashユーティリティはsetuidビットを設定します。したがって、システム内のすべてのユーザーがルートシェルを開始できます。

7
chaos