CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
みなさんこんにちは。株式会社パイプラインの濱田です。前回はLinuxにおけるファイルやディレクトリの権限について概要を説明いたしました。今回は、ファイルやディレクトリの権限変更コマンドを、実例を交えて取り上げていきたいと思います。
ファイルやディレクトリのパーミッションを変更するコマンドは「chmod」コマンドです。chmodコマンド自体はrootユーザーでも一般ユーザーでも実行することが可能ですが、以下の条件のいずれかに合致していることが必要です。
ファイルのパーミッションを確認するには、lsコマンドに「-l」オプションをつけて実行することで確認することができます。ファイル「hogehoge.txt」のパーミッションを確認してみましょう。
ls -l ${HOME}/hogehoge.txt
コマンドの実行結果は以下の通りです。
-rw-r--r-- 1 nullpopopo nullpopopo 31230 Feb 14 18:55 /home/nullpopopo/hogehoge.txt
パーミッションを表示するフィールドのうち、ユーザーを示す箇所が「rw」となっていますので、ファイルのオーナーであるnullpopopoユーザーはhogehoge.txtを読むことも書き込みを行うこともできます。2番め グループを示すフィールドと3番め 他ユーザーを示すフィールドが「r」となっていますので、 /home/nullpopopo/hogehoge.txt は
ファイルやディレクトリのパーミッションを変更するにはchmodコマンドを用います。コマンドの構文は
chmod <オプション> <モード> <ファイル名またはディレクトリ名>
となり、権限はモードで指定します。ファイルのオーナーにのみ読み書きの権限を与え、グループと他ユーザーには読み書きの権限を与えたくない場合は、以下のように設定します。
chmod 600 ${HOME}/hogehoge.txt
それではlsコマンドで確認してみましょう。
ls -l ${HOME}/hogehoge.txt
以下のように、ファイルのオーナーにのみ読み(r)書き(w)の権限が付与されており、グループと他ユーザーには一切の権限が与えられていないことがわかります。
-rw------- 1 nullpopopo nullpopopo 31230 Feb 14 18:55 /home/nullpopopo/hogehoge.txt
再度、グループと他ユーザーに読み込みの権限を付与します。
chmod 644 ${HOME}/hogehoge.txt
もう一度lsコマンドで確認しましょう。
ls -l ${HOME}/hogehoge.txt
以下のように出力されているはずです。
-rw-r--r-- 1 nullpopopo nullpopopo 31230 Feb 14 18:55 /home/nullpopopo/hogehoge.txt
chmodコマンドによるパーミッションの変更は数字のほかにもアルファベットで指定することが可能です。解説の前に、実例を示します。まずはユーザー、グループ、他ユーザー全員から読み書き実行すべての権限を剥奪します。
chmod ugo-rwx ${HOME}/hogehoge.txt
どのようなパーミッションになったか、lsコマンドで確認しましょう。
ls -l ${HOME}/hogehoge.txt
lsコマンドの出力結果は以下の通りです。
---------- 1 nullpopopo nullpopopo 31230 Feb 14 18:55 /home/nullpopopo/hogehoge.txt
これは、chmod 000 ${HOME}/hogehoge.txt を実行したのと同じです。(u)ser、(g)roup、(o)therから(r)ead、(w)rite、e(x)ecuteの権限を引いた、と理解するとよいでしょう。反対に、権限を付与する場合は「-」を「+」にして実行します。まずはユーザーに読み書きの権限を付与します。
chmod u+rw ${HOME}/hogehoge.txt
lsコマンドの出力結果は以下の通りです。
-rw------- 1 nullpopopo nullpopopo 31230 Feb 14 18:55 /home/nullpopopo/hogehoge.txt
ここで「ユーザーに読み書きの権限を、グループには読み込みのみの権限を与えるが他ユーザーには一切の権限を与えない」というパーミッションにしたい場合は、「u+rw」「g+r」「o-rwx」のモード指定をカンマで繋いであげます。
chmod u+rw,g+r,o-rwx ${HOME}/hogehoge.txt
lsコマンドの出力結果は以下の通りです。
-rw-r----- 1 nullpopopo nullpopopo 31230 Feb 14 18:55 /home/nullpopopo/hogehoge.txt
モードをアルファベットで指定する方法は、あるディレクトリ以下をリカーシブ(再帰的)に変更する「-R」オプションと組み合わせると便利です。この手法については、次回のオーナー変更コマンド「chown」とあわせて解説します。もう1点注意すべき点があるとするならば、あまり複雑なパーミッション設定をしようとするとカンマ区切りが多くなってしまうので、それならモードを数字で指定したほうが直感的という考え方もあります。
CTC教育サービスではLinuxをはじめ多数の研修コースが用意されています。ご自身の興味や業務の必要性にあったコースを受講してみてはいかがでしょうか。
https://www.school.ctc-g.co.jp/category/
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes