アニメ『龍の歯医者』
このアニメのように、歯を削らすに虫歯治療できたらいいなあと思います。口の中に小人を飼って、歯磨きも自動でやってくれるとすごく楽ですねえ。
今回は、ディレクトリの権限のスティッキービットを見ていきます。
root@deb8:~# mkdir sample root@deb8:~# chmod 777 sample root@deb8:~# cd sample root@deb8:~/sample#
実験用ユーザを追加します。名前はperson1とperson2としました。
root@deb8:~/sample# useradd person1 root@deb8:~/sample# useradd person2
person1用にはdir1を、person2用にはdir2ディレクトリを用意します。
root@deb8:~/sample# sudo -u person1 mkdir dir1 root@deb8:~/sample# sudo -u person2 mkdir dir2 root@deb8:~/sample# ls -l 合計 8 drwxr-xr-x 2 person1 person1 4096 5月 23 21:05 dir1 drwxr-xr-x 2 person2 person2 4096 5月 23 21:05 dir2 root@deb8:~/sample#
互いに相手用のディレクトリへは書き込みできませんね。
root@deb8:~/sample# sudo -u person1 touch dir2/hello touch: `dir2/hello' に touch できません: 許可がありません root@deb8:~/sample# sudo -u person2 touch dir1/hello touch: `dir1/hello' に touch できません: 許可がありません root@deb8:~/sample#
自分用のディレクトリへは書き込みができます。
root@deb8:~/sample# sudo -u person1 touch dir1/hello root@deb8:~/sample# sudo -u person2 touch dir2/hello root@deb8:~/sample# find . ./dir2 ./dir2/hello ./dir1 ./dir1/hello root@deb8:~/sample#
ユーザperson2が所属するグループをperson1に変更してみます。
root@deb8:~/sample# usermod -G person1 person2
次にperson1のディレクトリdir1をグループを書き込み可能にします。
これでperson1グループであるperson2も書き込み可能となりました。
drwxr-xr-x 2 person1 person1 4096 5月 23 21:10 dir1 drwxr-xr-x 2 person2 person2 4096 5月 23 21:11 dir2 root@deb8:~/sample# chmod 775 dir1 root@deb8:~/sample# ls -l 合計 8 drwxrwxr-x 2 person1 person1 4096 5月 23 21:10 dir1 drwxr-xr-x 2 person2 person2 4096 5月 23 21:11 dir2 root@deb8:~/sample#
では、person2ユーザでdir1内に書き込んでみましょう。
root@deb8:~/sample# sudo -u person2 touch dir1/goodnight root@deb8:~/sample# find . ./dir2 ./dir2/hello ./dir1 ./dir1/hello ./dir1/goodnight root@deb8:~/sample#
dir1のスティッキービットをONします。
root@deb8:~/sample# sudo -u person1 chmod 1775 dir1 root@deb8:~/sample# ls -l 合計 8 drwxrwxr-t 2 person1 person1 4096 5月 23 21:17 dir1 drwxr-xr-x 2 person2 person2 4096 5月 23 21:11 dir2 root@deb8:~/sample#
xがtになりましたが、これがスティッキーONの表示です。
1000を加えてchmodすればスティッキーがONできます。`
現在のdir1のファイルを確認してみましょう。
root@deb8:~/sample# ls -l dir1 合計 0 -rw-r--r-- 1 person2 person2 0 5月 23 21:17 goodnight -rw-r--r-- 1 person1 person1 0 5月 23 21:10 hello root@deb8:~/sample# root@deb8:~/sample# id person2 uid=1003(person2) gid=1003(person2) groups=1003(person2),1002(person1) root@deb8:~/sample#
person2はプライマリグループがperson2と表示されていますが、所属グループはperson1です。
スティッキーフラグがONされているdir1のファイルを削除したいと思います。
root@deb8:~/sample# sudo -u person1 rm dir1/* rm: 書き込み保護されたファイル 通常の空ファイル `dir1/goodnight' を削除しますか?y root@deb8:~/sample# find . ./dir2 ./dir2/hello ./dir1 root@deb8:~/sample#
書き込み保護されたファイルを消すかどうかのメッセージが出ましたね。
もう一度ファイル名を変えて確認してみます。
root@deb8:~/sample# sudo -u person1 touch dir1/AAAA root@deb8:~/sample# sudo -u person2 touch dir1/BBBB root@deb8:~/sample# sudo -u person1 rm dir1/AAAA root@deb8:~/sample# sudo -u person1 rm dir1/BBBB rm: 書き込み保護されたファイル 通常の空ファイル `dir1/BBBB' を削除しますか?y root@deb8:~/sample#
コメント