お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2021-11-06 23:26:18

iha_katunori
メンバ
登録日: 2017-08-15

passwdコマンドで/etc/shadowファイルが更新可能な理由

root権限のない一般ユーザでログインし、passwdコマンドで自分のパスワードを更新すると、
rootにしか更新権限のない/etc/shadowファイルが更新可能です。
なぜ更新出来てしまうのですか?

オフライン

 

#2 2021-11-07 16:25:53

elliptic
メンバ
登録日: 2020-03-05

Re: passwdコマンドで/etc/shadowファイルが更新可能な理由

passwdコマンドは setuidされています。
「端末」を2つ開いて片方で passwd を実行中にもう片方で ps コマンドで観察すると
実効ユーザ root として動いているのがわかります。

コード:

$ ls -l $(which passwd)
-rwsr-xr-x 1 root root 68208  7月 15 07:08 /usr/bin/passwd

$ ps -O ruid,ruser,euid,euser -C passwd
    PID  RUID RUSER     EUID EUSER    S TTY          TIME COMMAND
   3209  1000 user         0 root     S pts/0    00:00:00 passwd

オフライン

 

#3 2021-11-07 17:55:35

iha_katunori
メンバ
登録日: 2017-08-15

Re: passwdコマンドで/etc/shadowファイルが更新可能な理由

ellipticさん、返信ありがとうございました。

勉強不足でsetuidについてはよく知りませんでした。
chmod 4755等で設定して、一般ユーザがroot権限で実行できる仕組みのようですね。

オフライン

 

Board footer

Powered by FluxBB