はじめに
chmod 777 ~/hoge/config
プログラミング初心者の方は、参考にしたサイトで上記のようなターミナルのコマンドを見たことがあると思います。
私自身、初めの頃は意味もわからずがむしゃらにコマンドを叩きまくっていました(真似しないように)。
permissionの設定はセキュリティに関わるため初心者の方こそ知っていてほしいと思い、記事にまとめました。
まだまだ私も勉強中なので、至らない部分があるかもしれませんが
プログラミング初心者の方々へのお力添えになれると幸いです。
permission(パーミッション)とは
permissionとは、ファイルやディレクトリに対するアクセス権限
のことです。
それぞれ「所有者」「グループ」「その他のユーザ」
にパラメータを割り振りが可能となっています。
特殊なパラメータもありますが、パラメータは基本的に「読み込み」「書き込み」「実行」
の3つです。
「はじめに」でも記載した通り、permissionはセキュリティのために重要です。
例えば、本番環境にあるWebサイトを誤って編集してしまったということが無いように、責任者以外は本番環境のWebサイトを編集できないようにすることなどができます。
permissionを適切に管理すると事故防止になります。
実際のpermission
permissionはアルファベット、もしくは数字で表されます。
数字は後ほど説明します。まずはアルファベットから見てみましょう。表にまとめるとこんな感じです。
【 ファイルへのアクセス権 】
アクセス権 | 表記 | 説明 |
---|---|---|
読み取り(Read) | r | ファイルの読み込みが可能 ( 内容表示など ) |
書き込み(Write) | w | ファイルへの書き込みが可能 ( 編集や上書きコピーなど ) |
実行(eXecute) | x | ファイルの実行が可能 ( プログラムやシェルスクリプトの実行 ) |
【 ディレクトリへのアクセス権限 】
アクセス権 | 表記 | 説明 |
---|---|---|
読み取り(Read) | r | ディレクトリの読み込みが可能 (ディレクトリに登録されているファイル名の表示) |
書き込み(Write) | w | ディレクトリの書き込みが可能 ( 新規ファイル作成、削除、名前変更など) |
実行(eXecute) | x | ディレクトリに登録されいているファイルへのアクセスが可能 |
※ ファイルへのアクセス権限にreadの許可があっても、ディレクトリのexecute許可がなければファイルにアクセスできません。
実際にこれらをターミナルで確認してみましょう。
ターミナルで適当な位置で以下コマンドを入力してください。
ls -al
次のようになると思います。
drwxr-xr-x 10 onyankopon staff 320 9 8 2021 directory-name
drwxr-xr-x 11 onyankopon staff 352 9 8 2021 directory-name
-rwxr--r-- 17 onyankopon staff 544 9 8 2021 file-name
-rwxrwxr-x 3 onyankopon staff 96 9 8 2021 file-name
-rwxrwxrwx 6 onyankopon staff 192 9 22 2021 file-name
これはカレントディレクトリ(現在位置)の中身の情報を表しています。
この左側に注目してください。
(一番左の d
はディレクトリ -
はファイル その他表記あり)
左側のr
からx
までがそれぞれ「所有者」「グループ」「その他のユーザ」のアクセス権限
になります。
所有者 | グループ | その他ユーザー |
---|---|---|
rwx | rwx | rwx |
例えば
rwxr-xr--
これが何を意味するかと言うと
所有者
:読み込み・書き込み・実行
が許可されている
グループ
:読み込み・実行
が許可されている
その他
:読み込み
が許可されている
こうなります。
permissionの変更
ここまでざっくりアクセス権限について理解できてきたかなと思います。
ここからは変更について説明していきます。
アクセス権限の変更を行いたい場合は以下コマンドを入力します。
chmod 777 ~/hoge/config
冒頭に出てきたこいつです。このchmod
コマンドで変更します。
ではその横の数字は何かと言うと、先ほど説明を後回しにした数字で表したpermission
です。
さらに言うと、permissionのrwx
を2進数で表して8進数に変換した数字です。
混乱しそうですが実際は簡単なので表にまとめます。
表記記号 | 2進数 | 8進数 |
---|---|---|
--- | 000 | 0 |
--x | 001 | 1 |
-w- | 010 | 2 |
-wx | 011 | 3 |
r-- | 100 | 4 |
r-x | 101 | 5 |
rw- | 110 | 6 |
rwx | 111 | 7 |
これだけです。
これをもとに先ほどのコマンドを見てみると
chmod 777 ~/hoge/config
この777
はrwxrwxrwx
を表していることがお分かりいただけるかと思います。
つまりconfig
のアクセス権をrwxrwxrwx
に変更するコマンドと言うことです。
chmod 640 ~/hoge/config
この場合は、
config
のアクセス権限をrw-r-----
に変更するコマンドです。
これでpermissionの扱い方が分かっていただけたかと思います。
まとめ
意味もわからずchmod 777
を入力すると誰でも触りたい放題のアクセス権限が完成し、そのまま気にもせず放置してしまう可能性も大いにあります。(chmod 777
が悪いと言う意味ではありません。)
調べたコマンドを入力する前にそのコマンドの意味を理解しましょう。
また、今回はアクセス権限にフォーカスしたのでその周りの細かいところ(ユーザー等)には触れていません。
最後まで読んでくださった初心者の方々はこれを機に自分でpermission
について調べてみてください。
以上です。