【初心者でもすぐわかる】SUIDとは?と設定方法

suid
  • このエントリーをはてなブックマークに追加
  • Pocket

SUIDとは「Set User ID」の略で、誰がそのファイルを実行しても、セットされたユーザで実行されるという状態だ。

このページではSUIDのもう少し細かい説明と、使い方についてお伝えした。参考にしていただければと思う。

SUIDとは?

Linuxパーミッションには幾つか特殊なパーミッション属性が存在している。

その一つが「SUID」(Set User ID)だ。

Set User IDとは「誰がそのファイルを実行しても、セットされたユーザで実行される」という状態だ。

例えば、passwdコマンドなどは所有者がrootになっておりSUIDが指定されている。この場合どのユーザがpasswdコマンドを実行しても必ずrootユーザが実行した状態となる。

一般的にSUIDは扱いに注意が必要なものとなっている。SUIDでrootユーザを指定してある場合、なんの認証もなしにroot権限でそのコマンドを実行できてしまうからだ。

所有者がrootでSUIDがセットされているコマンドは言わば例外的、特権的な動きをすることに注意しておこう。そのため無闇にSUIDをセットすることは避けよう。

SUIDを具体的に見てみよう

試しにpasswdコマンドを「ls -l」でパーミッション情報を表示してみよう。普通のパーミッションとは少しだけ異なる情報が記載されるはずだ

$ ls -l /usr/bin/passwd

「r」が読み込み許可のフラグ、「x」が実行許可のフラグとなっている。そのほか「s」というフラグがたっているのが確認できる。

フラグがたっている位置は所有者の権限を設定する位置となっている。所有者権限のところに「s」があるとそれはSUIDを示している。

実行権限のあるSUIDは「s」、実行権限が付与されていないのならば「S」と表記される。

今回所有者はrootなので誰がこのコマンドを実行してもroot権限でこのコマンドが実行されることとなる。

そのため一般ユーザで実行しても、パスワードの設定ファイルにpasswdコマンドを使用して設定を書き換えることが許される。特にこれといった認証は行われない。つまり特権として実行されることとなる。

そのため安易にSUIDを割り振ると意図しない権限の昇格が発生してしまうので、気をつけよう。

試しにSUIDを剥奪してみる。

ではSUIDがないとどうなるのかも実験してみよう。passwdコマンドはクリティカルなコマンドだ。あくまで実験なので自信がない方は実際の操作は控えて、こういう現象がおこるということを確認するだけでいいだろう。

$ su

# chmod 511 /usr/bin/passwd

# exit

$ passwd

passwd

上のようにエラーが発生する。

元に戻す

# chmod 4511 /usr/bin/passwd

SUIDを指定するには?

上の実験でも出てきたが、chmodコマンドでパーミッション数値に4000を足しあわせた数値を指定することでSUIDを指定できる。

# chmod 4511 /usr/bin/passwd

といった具合だ。

剥奪する時は単に4000を引き算すればよい。

もしくは以下の方法でも剥奪や付与が可能となっている。

SUID権限の付与

# chmod u+s /usr/bin/passwd

SUID権限の剥奪

# chmod u-s /usr/bin/passwd

find コマンドでSUIDに設定されている実行ファイルの列挙

$ find / -perm -4000

などとするとSUIDなファイルを列挙してくれる、基本的には実行ファイルに付与される権限なので

$ find /bin -perm -4000

$ find /sbin -perm -4000

$ find /usr/bin -perm -4000

$ find /usr/sbin -perm -4000

などとbinの下などを指定した方が綺麗な結果が反ってくるだろう。

まとめ

このページではSUIDについてお伝えしてきた。

パーミッションを勉強しはじめの頃に設定することはないだろうが、どういった機能かというのと、判別方法は知っておこう。

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できる。

短期間でエンジニアになる方法

・「まったくの初心者だけどエンジニアになりたい!」

・「プログラマーとして転職をしたい!」

という方はリナックスアカデミーの資料を見てみてください。短期間で未経験からエンジニアになることができるスクールとして15年間選ばれ続けてきた理由やノウハウが載った資料です。

エンジニアの入り口に立つために必要な勉強技術の最新動向本当に使えるIT資格学習に役立つ国からの奨励金などの情報が詰まっています。

無料で2,3日中にお手元にお届けします。


資料を見てみる

SNSでもご購読できます。

コメントを残す

*