Linuxについて パーミッションなど
※こちらは学習中のメモ書きです。プログラミング勉強中の者が書いています。
学習内容
ファイルのパーミッション(アクセス権限)
ファイルに設定された「誰にどのような操作を許すか」を規定する情報のこと。
$ls -l (ファイル名)
にて、そのファイル詳細表示して、オーナーを確認することができる。
$ ls -l -rw-r--r-- 1 username username 16 2010-01-09 18:12 access.txt
一番左の部分に、このファイルに対するアクセス権限が記載されている。
権限には
『ファイルを見る権利・r』
『ファイルに書き込む権利・w』
『ファイルを実行する権利・x』の3種類がある。
-rw-r--r--
は4パーツに分けて見る。
1番左の「-」:それがファイルであるか、ディレクトリであるか。またはシンボリックファイルであるかを示す。ファイルの場合は
-
ディレクトリの場合はd
シンボリックファイルの場合はl
「rw-」:ファイルを所有している人の権限を示す。(この場合『読む権利』と『書き込む権利』)
真ん中の「r--」:ファイルを所有しているグループの権限を示す。(この場合『読む権利』のみ)
一番右の「r--」:ファイルの所有者でもグループでも無い人(その他のユーザー)の権限を示す。(この場合『ファイルを読む権利』のみ)
username username
について。
- 左側:ファイルの所有者名
- 右側:グループ名
一般ユーザーとグループ
Linuxでは一般ユーザーを追加できる。グループとは、ユーザーをまとめた集まりのこと。
一人のユーザーは同時に複数のグループに所属することが出来る。
自分が属しているグループを確認する時は
$ groups
ディレクトリのパーミッション
パーミッションを確認する際は以下のコマンドとなる
$ ls -ld (ディレクトリ名)
なおこの際出てくる「r・w・x」の意味合いは、ファイルのパーミッションとは違うので注意。
「r」:ディレクトリに含まれるファイル一覧の取得
「w」:ディレクトリ下のファイル・ディレクトリの作成・削除
「x」:ディレクトリをカレントディレクトリにする
- ディレクトリの設定に
r
がなければ、ファイルの一覧取得ls
コマンドがエラーとなる。 - ファイルの削除については、ディレクトリのパーミッションで決まるため、ファイル自身のパーミッションは関係ない。
(例えばファイルが「r」のみの設定をされていても、削除は可能ということ)
権限の変更
ファイルやディレクトリのパーミッションの設定は、ファイルモードを変更するchmod
コマンドを利用する。
このコマンドにはシンボルモードと数値モードの2種類の指定方法がある。
なおこれを変更できるのは、オーナーまたはスーパーユーザー(管理者権限を持つrootユーザー)のみ。
シンボルモード
指定したパーミッション以外の変化はない相対的な指定方法。(オーナー権限のみなどの)パーミッションの一部だけ変更したい時に利用するのが良い。
chmod [ugoa] [+-=][rwx] <ファイル名>
- ugoaはどのユーザーに対する変更かのこと
記号 | 対象 |
---|---|
u | オーナー |
g | グループ |
o | その他のユーザー |
a | 上記全て |
- 演算子「=」は指定した権限と等しくする。
例)オーナーにwの権限を追加
$ chmod u+w <ファイル名>
数値モード
元のパーミッションに関わらず、新しい指定へと変更する絶対的な指定方法。
chmod <8進数の数値> <ファイル名>
- パーミッションの数値
記号 | 対象 |
---|---|
r | 4 |
w | 2 |
x | 1 |
これらを足した値を、オーナー・グループ・その他のユーザーの順に並べる。
例) rwxr-xr-xの場合、「755」