ログイン中のQiita Team
ログイン中のチームがありません

Qiita Team にログイン
コミュニティ
OrganizationイベントアドベントカレンダーQiitadon (β)
サービス
Qiita JobsQiita ZineQiita Blog
Linux
UNIX
chmod
権限
ls
14
どのような問題がありますか?

この記事は最終更新日から3年以上が経過しています。

`ls -l` と `chmod` による謎の数字とアルファベットの意味まとめ

はじめに

よくLinuxの手順書に chmod 644 ○○ とか chmod 755 ×× とか書いてあるのを見て、意味もわからず実行していませんか?
恥ずかしながら私はそうでした。
仕事ではなくプライベートな環境で実行することがほとんどなのであまり気にしていませんでしたが、やはり気になっているので、このあたりで意味をまとめることにします。

本記事の目標

以下のコマンドと出力結果の意味がわかるようになる。

$ ls -l
total 0
drwxr-xr-x 2 {ユーザー名} staff 64  4 12 00:14 bar
-rw-r--r-- 1 {ユーザー名} staff  0  4 12 00:14 foo.txt

$ chmod 666 foo.txt

$ ls -l
total 0
drwxr-xr-x 2 {ユーザー名} staff 64  4 12 00:14 bar
-rw-rw-rw- 1 {ユーザー名} staff  0  4 12 00:14 foo.txt

環境

  • OS:macOS High Sierra 10.13.1

Linuxでなくてすみません。
MacもUNIX系のOSなのでお許しください。

「ls -l」とは?

ファイルやフォルダの情報を出力するコマンド。
-l オプションを付けることで権限などの詳細な情報も出力されます。

出力結果の意味

# 左から順に、ファイルの種類, 権限, ハードリンク数, 所有者, グループ, サイズ(バイト), タイムスタンプ, ファイル名
$ ls -l
total 0
drwxr-xr-x 2 {ユーザー名} staff 64  4 12 00:14 bar
-rw-r--r-- 1 {ユーザー名} staff  0  4 12 00:14 foo.txt

barfoo.txt は「staff」グループのユーザーによって4/12 00:14に作成されたことがわかります。

ファイルの種類

記号 意味
- ファイル -
d フォルダ directory
l シンボリックリンク link

bar はフォルダなので d , foo.txt はファイルなので - となっています。

権限の見方については次のセクションで説明します。

「chmod」とは?

ファイルやフォルダのアクセス権を変更するコマンド。
「change file modes or Access Control Lists」の略。

各記号の意味

記号は x w r の3種類です。
記号があればその権限があり、 - ならば権限がないということです。

記号 意味
x 実行権限 execute
w 書き込み権限 write
r 読み込み権限 read

数字と記号の対応表

数字は0〜7の8進数であり、記号と以下のように対応しています。
2進数の足し算のように、右から1ずつ足していくのがポイントです。

数字 記号
0 ---
1 --x
2 -w-
3 -wx
4 r--
5 r-x
6 rw-
7 rwx

x=1, w=2, r=4 と覚えるのもいいです。
例えば「6」なら4+2なので「rw-」となります。

よく使うモード

モードは数字3桁で表します。
左から順に「所有者」「グループ」「その他のユーザー」のアクセス権限を表します。

モードの組み合わせは8の3乗で512通りもあるため、ここではよく使うモードのみ抜粋して紹介します。

数字 記号 説明 主な用途
600 rw------- 所有者のみ読み書き可 TBD
644 rw-r--r-- 所有者のみ書込可、他は読取専用
666 rw-rw-rw- 全ユーザーが読み書き可
700 rwx------ 所有者のみ読み書き実行可
755 rwxr-xr-x 所有者のみ書込可、他は読みと実行のみ可
777 rwxrwxrwx 全ユーザーが読み書き実行可

ls -l で出力される権限もこの記号と同様の意味です。

おわりに

最初に紹介したコマンドと出力結果の意味はわかりましたでしょうか?
foo.txt には所有者しか書き込み権限がなかったので、 chmod 666 foo.txt を実行して全ユーザーにも書き込み権限を付与したということでした。
その結果を ls -l で示しています。

これで権限にまつわる謎の数字やアルファベットも怖くありません!

参考リンク

ユーザー登録して、Qiitaをもっと便利に使ってみませんか。
  1. あなたにマッチした記事をお届けします
    ユーザーやタグをフォローすることで、あなたが興味を持つ技術分野の情報をまとめてキャッチアップできます
  2. 便利な情報をあとで効率的に読み返せます
    気に入った記事を「ストック」することで、あとからすぐに検索できます
uhooi
Mobile app developer / iOS / Swift / Android / Kotlin / AtCoder茶
この記事は以下の記事からリンクされています

コメント

この記事にコメントはありません。
あなたもコメントしてみませんか :)
ユーザー登録
すでにアカウントを持っている方はログイン
記事投稿イベント開催中
Azure Kubernetes Serviceに関する記事を投稿しよう!
~
14
どのような問題がありますか?
ユーザー登録して、Qiitaをもっと便利に使ってみませんか

この機能を利用するにはログインする必要があります。ログインするとさらに下記の機能が使えます。

  1. ユーザーやタグのフォロー機能であなたにマッチした記事をお届け
  2. ストック機能で便利な情報を後から効率的に読み返せる
ユーザー登録ログイン
ストックするカテゴリー