web-dev-qa-db-ja.com

ファイル権限の「s」属性はどういう意味ですか?

次の2行を比較してください。

-rws---r-x 1 root root 21872 2009-10-13 21:06 prg1 

-rwx---r-x 1 root root 21872 2009-10-13 21:06 prg2 

prg1のsetuidビット、および「その他」の読み取りビットと実行ビットは、すべてのユーザーがルート権限で実行できることを意味しますか? prg2も 'other'の読み取りと実行を行っていますが、setuidビットが設定されていません。つまり、どのユーザーでもroot権限なしで実行できるということですか。

59
anders

まったく逆です。Sudoを使用したり、rootに切り替えたりする必要はありません。実行可能ファイルがそれを行います。

20
orion

これは「setuid」ビットで、OSにその所有者のユーザーIDでそのプログラムを実行するように指示します。これは通常、rootが所有するファイルで使用され、通常のユーザーが外部ツール(Sudoなど)なしでrootとして実行できるようにします。

chmodを使用してsuidビットを設定できます。たとえば、chmod 4755を使用すると、755が行う通常のアクセス許可がファイルに付与され(rwxr-xr-x)、sidビットを追加してrwsr-xr-xを付与できます。

先頭に0を付けて通常のchmodコマンドを発行すると、setuidビットをクリアできます。たとえば、権限をrwxr-xr-xに戻すには、chmod 0755を使用します。

69
casey