2019-09-22Linuxでの権限確認についてsellLinux,Docker,permission,ubuntu18.04introductionLinuxの基礎を学習中にパーミッションエラーに悩まされて勉強した際に学んだことを整理します。実際に開発の現場で使っているわけではなく自身のPCのDockerを用いて構築したubuntu:18.04の環境で操作しています。Linuxの権限とはファイルやディレクトリを開いたり編集したりするときに設定される権限のことです。誰に何の作業を許可するかという認識がわかりやすいと思います。Linuxでは複数人で開発を行うためにすべてのファイルやディレクトリにはどのユーザーに対してどのような操作が行えるのかというアクセス権(パーミッション)が設定されます。アクセス権を正しく設定することにより、システムのセキュリティを確保し安全に運用することができるようになります。ディレクトリ上で行いました。その結果が以下のようになります。ubuntu-app以下一番下の行に注目して解読していきます。ubuntu-app左から順に示す内容を記述します。後ほど詳しく説明していきます。-alの結果、homeディレクトリにはhello.txtファイルとubuntu-appディレクトリが存在することがわかります。ubuntu-appこの行の左端に注目します。ファイルを示しています。ubuntu-app一番右のubuntu-appという部分ではファイル名やディレクトリ名を示しており、以下でこのファイルやディレクトリに対して自分がどのような権限が与えられているかを確認して行きます。権限には種類があります。usr左から2文字目以降の部分を参照します。その他のユーザーに与えられた権限(その他のユーザーに対するグループ名は省力されている。)ここで数字の2はこのディレクトリのハードリンク数を示すので一旦無視してください。何を示すかを下の表にまとめました。可能ではない所属グループの確認方法ここまでではどのファイル、ディレクトリに対してどのような権限が与えられているかを確認してきました。そこで自分がどのグループに所属しているかを確認しましょう。コマンドを行うことで自分がどのグループに所属しているのかを確認することができます。下の場合だとuserというグループに所属していることがわかります。この操作はどのディレクトリにいるかは依存しません。ubuntu-app自分が権限者(root)ではなくusrグループの一員であるので、usrグループに与えられた権限を得ていることがわかります。usrグループの人はd以降の左から4文字目から6文字目までのr-xが与えられた権限であります。読み込み可、書込み不可、実行可という内容が読み取れます。(この場合その他のグループの人も7文字目から9文字目でr-xが与えられているので混乱してしまうかも知れません。)結果として自分(usrグループの一員)がubuntu-appディレクトリに対して持っている権限を確認することができました。その他のファイル、ディレクトリの権限の確認ここでubuntu-appディレクトリ以外に関しても権限の確認を行いましょう。hello.txtこの1行に注目してみると自分はroot(権限者)でなくusrグループの一員なのでその他のグループの権限が与えられます。r--が与えられた権限で読み込みのみ可能です。..この部分についても見て行きます。読み解くとusrグループである私に与えられた権限はその他のユーザーに与えられた権限であるので、r-xの部分を参照します。カレントディレクトリに対して読み込み可能、実行可能であることがわかります。..の場合はカレントディレクトリの一つ上の親ディレクトリの権限を示しています。親ディレクトリの場合も同様に参照することができます。まとめ今回はファイル、ディレクトリの権限の確認方法を記述しました。以上のように確認していくことで自分がどのグループでどの権限が可能かを参照することができました。私自身は自分がどのグループに所属していて、どこを参照すればそのグループの権限を確認できるかを理解するのに苦労しました。そのような方の手助けとなれば嬉しいです。