はじめまして。
linuxを使っていてわからないことがあったので教えて下さい。
ファイルのパーミションについて学んでいた時に、SUIDというものに出会ったので、
早速実験してみましたが、参考にした情報どおりの挙動にならなかったので原因が分かりましたらご教示頂きたいです。
OS: CentOS 6.5
実験手順
1. 実験に使う実行ファイルをつくる(744)
bash
1[riki permTest]$ cat hello 2#/bin/bash 3 4# 実行者のUIDとユーザ名を表示する 5echo $UID $USER 6 7[riki permTest]$ ls -la . 8合計 16 9drwxrwsr-x 2 riki riki 4096 8月 25 00:25 2015 . 10drwxr-sr-x 31 riki riki 4096 8月 25 00:25 2015 .. 11-rwxr--r-- 1 riki riki 29 8月 25 00:25 2015 hello 12
2. 所有者が実行してみる
[riki permTest]$ ./hello 503 riki
これは意図どおりです。
3. 他のユーザが実行してみる
hogeユーザで実行してみる
[hoge permTest]$ ./hello -bash: ./hello: 許可がありません
実行権限を与えてないので、これも意図どおり。
4. 他のユーザに実行権限を与えて、他のユーザが実行してみる
他のユーザにもhelloに実行権限を与える
[riki permTest]$ chmod o+x hello [riki permTest]$ ls -la . 合計 16 drwxrwsr-x 2 riki riki 4096 8月 25 00:25 2015 . drwxr-sr-x 31 riki riki 4096 8月 25 00:25 2015 .. -rwxr--r-x 1 riki riki 29 8月 25 00:25 2015 hello
もう一回hogeで実行
[hoge permTest]$ ./hello 500 hoge
実行出来ました。そしてhogeが実行したことになってます。
これも意図どおり。
5. uidを設定して、hogeで実行してみる
いよいよ本題です。helloにsuidを設定してみます。
[riki permTest]$ chmod u+s hello [riki permTest]$ ls -la . 合計 16 drwxrwsr-x 2 riki riki 4096 8月 25 00:25 2015 . drwxr-sr-x 31 riki riki 4096 8月 25 00:25 2015 .. -rwsr--r-x 1 riki riki 29 8月 25 00:25 2015 hello
suidが設定された状態でhogeが実行(503 riki
と表示されるハズ)
[hoge permTest]$ ./hello 500 hoge
これが意図と違いました。
質問
上記のサイトを見て、suidが設定された実行ファイルは、他のユーザが実行しても実行ユーザがファイルの所有者になると思い、今回のような実験をしてみました。
期待していた結果としては、suidを設定したhelloスクリプトはhogeユーザが実行した時も503 riki
と表示してくると思っていましたが、普通に500 hoge
となってしまいました。。
何か私の認識で勘違いしている部分があるのでしょうか・・><
期待通りの結果になっていない原因をご教示いただけますと幸いです!
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。