##最初に
permissionエラーで詰まったので今回はpermissionに関することを自分用のメモとしてまとめてみました。
##permissionとは
- permission:フォルダやファイルに対してのアクセス権のこと。
この権限には、「①読み取り権限②書き込み権限③実行権限」の3つがあり、それぞれには記号が割り当てられている。権限の割り当ては、
- d: ディレクトリ
- r: 読み取り権限
- w: 書き込み権限
- x: 実行権限
となっている。
##permissionを確認
permissionエラーが出たディレクトリまたはファイルで権限を確認。
$ ls -l
すると、こんな感じで表示される。
drwxr-xr-x 1 user名 group名 2000 1 3 2:11 app
先頭からみていくと...
drwxr-xr-x
- d:ファイルの種類がディレクトリ(ファイルの場合は「-」)。
- rwx:ファイルの所有者に対する権限で、所有者にrwx全ての権限がある。
- r-x:ファイルの所有グループに対する権限で、所有グループに読み取り、rxの権限がある。
- r-x :その他にrxの権限がある。
1 user名 group名
- リンク数、所有者名、所属するグループ名
2000 1 3 2:11 app
- サイズ、最終更新日時、ファイル名orディレクトリ名
##ファイルを変更して保存しようとするとエラーが発生
エディタでファイルに変更を加え、保存しようとすると「アクセス権限が不十分です。[Sudo 権限で再試行] を選択してスーパーユーザーとして再試行してください。」とのこと。
そこで
$ ls -l
で確認したところ所有者はrootに。
そこで下記のコマンドで所有者をrootからユーザー名に変更。
$ sudo chown -R ユーザ名 ディレクトリ名
上記のコマンドでは、ディレクトリ内の全てのファイルおよびディレクトリの所有者をユーザ名にしています。
これでアクセス権限に引っかからずに保存することができました!
##補足
###root、sudoについて
- root:管理者権限
- sudo:コマンド単位で一時的にroot権限を使う方法
- su:任意のユーザーに切り替え可能(ただしユーザー名を省略するとrootユーザーになる)
$ su -l
とするとrootユーザーとしてログインし直してくれる。-l
オプションをつけないと単にユーザーを切り替えるだけに。通常はログインし直した方が良い。
上記のコマンドは、lを省略することもでき、下記のコマンドでも可。
$ su -
ただrootユーザーの権限は広すぎることから、うっかりrmコマンドなどを使って消してはいけないファイルなどを消してしまっては困るので、sudo
を先頭につける。(rootユーザーに切り替えて作業することは滅多にないらしい...)
###chown(changeowner)コマンドについて
- chown:所有者を変更するコマンド
ユーザー名とグループ名ともに変更したい時は、下記のコマンドを実行する。
$ sudo chown ユーザー名:グループ名 ディレクトリorファイル名
##終わりに
今回はPermissionに関してまとめて見ました。何か間違っているところなどがあればコメントください。
##参考資料