ディレクトリ・ファイルの権限の確認方法
権限を確認したいディレクトリ/ファイルに移動して以下のコマンドを実行する。
ls -l
すると、ファイルの場合はそのファイルの情報が、ディレクトリの場合はディレクトリとディレクトリ内のファイルの情報が以下のように一覧で表示される。
-rw-r--r--. 1 ec2-user ec2-user 524 Dec 30 09:58 Dockerfile
drwxr-xr-x. 2 root root 63 Dec 31 10:42 __pycache__
1番左の
-rw-r--r--
drwxr-xr-x
の部分が権限情報部分。
権限情報の見方
ルール1: rwxの3セット
権限の種類はrwxの3文字で表現される。
文字 | 意味 |
---|---|
r | 読み取り権 ファイル/ディレクトリの読み取りができる |
w | 書き込み権 ファイル/ディレクトリの書き込み・編集ができる |
x | 実行権 ファイル/ディレクトリの実行ができる |
ルール2: 一文字目はファイルの種類を表す
一文字目がdの場合ディレクトリであることを表し、-(ハイフン)の場合はファイルであることを表す。
※一文字目以外の-(ハイフン)は権限がないこと表す
① -rw-r--r--
② drwxr-xr-x
①はファイルに対する権限を、②はディレクトリに対する権限を表している。
ルール3: rwxの3文字×3(ユーザーの種類)のセットになっている
権限は、ルートユーザー、ユーザーグループ、その他のユーザーの3種類のユーザーに対して設定できる。
ルートユーザー: ファイルやディレクトリの所有者。他のユーザを作成したり、OSの設定ファイルを修正したりといったことができる(管理者権限)
ユーザーグループ: ファイルの所有グループ
ユーザー: その他のゲストユーザー
① -rw-r--r--
② drwxr-xr-x
①の場合
種類: フォルダに対する権限
ルートユーザー: 読み込み権・書き込み権
ユーザーグループ: 読み込み権
ユーザー: 読み込み権
②の場合
種類: ディレクトリに対する権限
ルートユーザー: 読み込み権・書き込み権・実行権
ユーザーグループ: 読み込み権・実行権
ユーザー: 読み込み権・実行権
アクセス権を変更する
各ユーザーのアクセス権を変更するには、Linuxのchmodコマンドを使う。
chmod (モードを指定) (ファイル名)
権限を変更する(モードを指定)部分では、数字で指定する方法とアルファベットで指定する方法の2種類がある。
数字で権限を変更
数字 | 権限 |
---|---|
4 | 読み取り権(r) |
2 | 書き込み権(w) |
1 | 実行権(x) |
数字で権限変更をする場合は、読み取り、書き込み、実行のそれぞれの数字を足した数値を、ルートユーザー、ユーザーグループ、ユーザーの順に指定する。
ex) hoge.txtファイルに対して
ルートユーザーに全ての権限を、
ユーザーグループに読み込み権と書き込み権を、
ユーザーに読み込み権を付与したい場合は、
chmod 764 hoge.txt
となる。
アルファベットで権限を変更
権限を与える対象 | 与える権限 | 変更方法 |
---|---|---|
u (ルートユーザー) |
r (読み込み) |
= (指定した権限にする) |
g (ユーザーグループ) |
w (書き込み) |
+ (権限を追加する) |
o (ユーザー) |
x (実行) |
ー (権限を除去する) |
a (全て) |
ex1) ユーザーグループとユーザーに書き込み権を追加する場合
chmod go+w hoge.txt
ex2) 全てのユーザーの権限を読み込みにする場合
chmod a=r hoge.txt
一時的に管理者権限の状態で操作ができるようになるsudoコマンド
コマンドの先頭に「sudo」をつけると、その時だけルートユーザーの権限と同じ権限で操作することができる。
管理者権限を利用できるのはsudoコマンドをつけて実行した時だけなので、連続した操作で使用したい場合にはコマンドを実行するたびに打たなくてはいけないので注意。
Permissionエラー(権限関係のエラー)が出た場合はchmodコマンドで権限を変更するか、sudoコマンドで一時的に管理者権限で操作することで解決するかも。