1.所有者の確認と変更方法(別名:パーミッション)
ファイルやディレクトリは作成したユーザが所有者として設定されて、同時に所有者のプライマリグループがファイルやディレクトリのグループとなります。
①ファイルの権限・所有者の見方
①-②rws③-wx④--x 1 ⑤test001 ⑥test001 0 12月 10 19:10 test001
- ファイルの場合は「-」、ディレクトリの場合は「d」、リンクの場合は「l」
- 所有者権限(rwsは読み取り可能、書き込み可能、実行可能)
- グループ権限(-wxは読み取り不可、書き込み可能、実行可能)
- その他ユーザー(–xは読み取り不可、書き込み不可、実行可能)
- ユーザー
- グループ
②ファイル・ディレクトリの権限変更方法(chmod)
アクセス権は記号と数値で変更する2種類の方法がありますが、数値で変更する方法がシンプルで、以下のように権限変更を簡単にすることができます。権限変更はroot権限が必要です。
-rwx-wx--x 1 test001 test001 0 12月 10 19:10 test001.txt
test001@raspberrypi:~$
test001@raspberrypi:~$ ls -l
合計 0
-rwx-wx--x 1 test001 test001 0 12月 10 19:10 test001.txt
test001@raspberrypi:~$ chmod 755 test001.txt
test001@raspberrypi:~$ ls -l
合計 0
-rwxr-xr-x 1 test001 test001 0 12月 10 19:10 test001.txt
「rは4、wは2、rは1」となります、上記の場合は所有者は全ての権限を保持して、グループ・その他のユーザーは(読み取り可能、書き込み不可、実行可能)となります。
所有者以外に書き込みされたくない場合に755という権限を良く付与しますが、状況に応じて所有者・グループ・その他ユーザーの権限を変更することでどのようにも変更することができます。因みに初めてファイルを作成すると644という権限になります。
③特殊なSUIDの設定方法
1.SUID
SUID(Set User ID)は、実行ファイルが特定のユーザーの権限で実行されるように設定されたビットです。SUIDをセットすると、どのユーザで実行してもセットされたユーザで実行するこすができます。
2.SUIDの設定方法(chmod)
SUIDを使用した場合、所有者の実行権が「s」となり、数値で表すと4000となります
test001@raspberrypi:~$ touch test001.txt
-rw-r--r-- 1 test001 test001 0 12月 10 19:10 test001.txt
test001@raspberrypi:~$ chmod u+s ./test001.txt
test001@raspberrypi:~$ ls -l
-rwSr--r-- 1 test001 test001 0 12月 10 19:10 test001.txt
④.特殊なSGIDの設定方法
1.SGID
SGID(Set Group ID)をセットすると、ファイルやディレクトリに関連付けられた実行可能なプログラムが、実行される際にそのファイルが属しているグループの権限を使用します。
設定方法はSUIDと同じように「chmod g+s /ファイル名」というコマンド実行でSGIDを設定可能で、(-rwSr-Sr– 1 test test 72 10月 1 21:11 testfile)な感じでグループに大文字Sがつきます。
ようは、SUIDのグループ版と思ってもらえればOKです。
⑤.スティッキービット
「スティッキービット」は特別なアクセス権限の一つで、主にディレクトリに設定されます。スティッキービットが設定されたディレクトリでは、そのディレクトリ内のファイルを作成したユーザーまたはファイルの所有者だけが、そのファイルを削除または名前を変更することができます。
つまり好き勝手に使ってほしいけど、削除されたらこまる公共の一時ファイルを保存するディレクトリなどで有用(例:/tmpディレクトリ)。
スティッキービットの設定方法
スティッキービットを設定するには、chmod
コマンドを使用します。コマンドの一般的な形式
chmod +t ディレクトリパス
例えば、/tmp
ディレクトリにスティッキービットを設定する場合は、以下のコマンドを実行
chmod +t /tmp
スティッキービットが設定されているかどうかを確認するには、ls -ld
コマンドを使用。最後に t
または T
が表示されていればスティッキービットが設定されていることがわかる。
drwxrwxrwt 17 root root 4096 Oct 7 12:34 /tmp
これで、権限系の基本もOK。