blog

特殊な属性

Linux講座

2017.01.31

特殊な属性

以前『体調管理は大事ですよ!』なんて偉そうに言っていましたが
先日自分が風邪を引いてしまいました・・・。

しっかり管理しているつもりでも、ダメな時はダメですね。
反省しつつ、更なる体調管理を目指さなくては・・・!とジム通いの頻度を増やそうかと画策中です。

さて、今回は特殊なファイル属性のSUIDについて

こちらは、実行可能ファイルに付けられるものでして
このビットが付いたファイルは、誰が実行した場合でも
そのファイルの所有者の権限で実行できるという仕組みです。 

具体的には、rootユーザ所有のプログラムファイルにSUIDが付いていると、
一般ユーザが実行した場合でも、そのファイル所有者であるrootユーザの権限で実行されます。

因みに、SUIDが付与されたプログラムファイルは、アクセス権を確認してみると
所有者の実行権限の箇所が【x】ではなく、【s】と表記されています。

この機能はどういった場面で有効になるでしょうか。

主なものとしてはpasswdコマンドが挙げられます。
passwdコマンドは、ユーザやグループのパスワードを登録、変更するコマンドです。

登録された各パスワードは、同じくrootユーザ所有の /etc/shadow ファイルに保存されます。
しかし、このファイルはアクセス権を確認してみると、一般ユーザには読み書きできない設定になっています。

ブログ0131_04

そうなりますと、一般ユーザは自身のパスワードを変更した時
通常ではその変更内容をシャドウファイルに書き込む事が出来ません。

しかし、passwdコマンドにSUIDが付与されている為、
passwdコマンドを実行いた一般ユーザは、そのファイルの所有者であるrootユーザの権限でコマンドを実行。
すなわち、管理者権限でシャドウファイルに変更されたパスワードを書き込む事ができるのです。

直接、ファイルを編集されたり、中身を読まれてしまうのはセキュリティ上よろしくありませんが
こういったコマンドを通して変更内容を記録させる事が出来るんですね。

では、実際にpasswdコマンドのSUIDを取ってしまうとどうなってしまうのでしょうか。
実際に試してみました。

passwdコマンドにSUIDが付与されているのがわかります。
こちらをchmodコマンドでSUIDを外してみます。
ブログ0131_01

この状態で、一般ユーザになって自分のパスワードを変更しようと試みます。

ブログ0131_02

ブログ0131_05

何度試してもダメでした。
一般ユーザなので、パスワードが格納されているシャドウファイルへの書き込みが出来ない為、
コマンドが実行されませんでいた。

この動きで判る通り、SUIDはファイルのアクセス権に
より複雑で高度な機能を提供してくれているのですね。
 

SHARE

最新記事

無料相談する

INTERNOUS,inc. All rights reserved.