調べたら、「実行可能ファイルの所有者として実行される。ディレクトリに設定したら無視される」
と書いてありました。
以降検証のためにやったこと。
「ec2-user」と「test」の二つのユーザーがいて、testユーザーに切り替えます。
/home/testをほかのユーザーが読みと実行ができるようにします。
drwx---r-x 2 test test 4096 Jun 2 10:31 /home/test
testディレクトリにcommand.shを置きます。command.shの中は以下の通りです。
#!/bin/sh /usr/bin/id
このcommand.shを以下の権限にします。setuidを付けます。
ls -l /home/test/command.sh -rws---r-x 1 test test 22 Jun 2 10:31 /home/test/command.sh
ec2-userに切り替え以下を実行
cd /home/test ./command.sh 実行結果は uid=500(ec2-user) gid=500(ec2-user) groups=500(ec2-user),10(wheel)
ここでおもったのが、setuidでtestユーザーとして実行されるのなら実行結果はtestユーザーに関しての情報がでると思っています。
> 実行可能ファイルの所有者として実行される
command.shの所有者はtestユーザーです。ec2-userでcommand.shを実行してもtestユーザーとして実行されるのではないのでしょうか?だとしたら実行結果はtestの情報が出るべきではないのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。