SSHクライアントで、Linuxに接続し、llコマンドでファイルの一覧を表示すると、左側にファイルの情報が表示される。
-rwxrw-r– 1 sampleuser samplegroup 12312312 Sep 20 16:32 sample.txt
-rwxrw-r– の箇所がパーミッション、sampleuser samplegroup の箇所が所有者を示している。
sample.txtは、samplegroupというグループのsampleuserというユーザーが所有しており、sampleuserというユーザーであれば、rwxの操作が可能、samplegroupに所属しているユーザーであれば、rw-の操作が可能、それ以外のユーザーはr–の操作が可能、という意味になる。。
何を言っているかわからないと思うので、以下、詳しく解説する。
パーミッションの変更
-rwxrw-r– 部分がパーミッション、つまりユーザーが行うことのできる操作権限の種別を表している。
パーミッション(-rwxrw-r–)の意味
-rwxrw-r–は1つの文字列ではなく、『-』『rwx』『rw-』『r–』の4つに分割して読むことができる。
各項目の示す内容は以下の通り。
- 1つ目の『-』:ファイルタイプ。ファイルの場合は『-』、ディレクトリの場合は『d』となる。他にもあるが、とりあえずこの2つ覚えておけばOK
- 2つ目の『rwx』:所有者(ユーザー)に与えられているパーミッション
- 3つ目の『rw-』:所有者(グループ)に与えられているパーミッション
- 4つ目の『r–』:その他のユーザーに与えられているパーミッション
2~4つ目の項目でパーミッション、つまり権限を管理している。rは読み取り、wは書き込み、xは実行権限を表す。
今回の例では、sample.txtの所有者はsampleuserなので、sampleuserでサーバーにログインしていれば、読み取り、書き込み、実行、すべての操作が可能だが、別のユーザーで、さらにそのユーザーがsamplegroupにも属していなければ、読み取りしかできない、ということになる。
パーミッションの変更方法
パーミッションの変更は、chmodコマンドで行う。
chmod 600 sample.txt
上記のコマンドを実行し、改めてsample.txtの情報を見ると、以下のようにパーミッション部分が『-rw——-』に書き換わる。
-rw——- 1 sampleuser samplegroup 12312312 Sep 20 16:32 sample.txt
chmodの後にある600という数字で権限を指定しており、これも600ではなく、『6』『0』『0』と3つの数字で、それぞれ所有者、所有グループ、その他のユーザーの権限を指定している。
各数字で設定できる権限は以下の通り。
- rwx:7
- rw-:6
- r-x:5
- r–:4
- -wx:3
- -w-:2
- –x:1
- —:0
先ほど600、つまり『6』『0』『0』という数字で権限を指定したことによって、『rw-』『—』『—』が指定され、『rw——-』となった。
よく使用する権限設定
- 600:『rw——-』。所有者しか読み書きできないセキュアな権限。
- 755:『rwxr-xr-x』。バッチファイルとか、みんなが実行したいけど編集権限は危ないから所有者だけにしようね、という権限。
- 777:『rwxrwxrwx』。普通は指定しないが、テストで変な権限エラーを吐かないように一時的に設定したりする。
所有者の変更
以下では、sample.txtの所有者(ユーザー)はsampleuserで、所有しているグループはsamplegroupであるということを表している。
-rw——- 1 sampleuser samplegroup 12312312 Sep 20 16:32 sample.txt
所有者と所有グループの変更
所有者(ユーザー)の変更は、chown コマンドで行う。-Rオプションを指定すると、対象がファイルではなくディレクトリだった場合に、ディレクトリ配下のすべてのファイルについて権限変更を行う。
chown -R newuser:newgroup sample.txt
所有グループのみを変更したい場合は、chgrp コマンドで行うが、上記でユーザーは既存ユーザーを指定すればよいので、覚えなくても問題はない。
chgrp -R newgroup sample.txt
コメント