Amazonのアソシエイトとして、ラズパイダ(raspida.com)は適格販売により収入を得ています。詳しくは当サイトの プライバシーポリシーをご覧ください。
初心者にはなかなか理解し難いファイルの権限付与で使うファイルパーミッションを簡単にまとめてみます。
よく「rwx」「755」などで表現されていて、慣れないとよく分かりませんよね。私も初めての時はWindowsなどでは馴染みがなくて「権限がありません」とエラーが帰ってきて困ったものでした。
Raspbianでもコマンドで権限を操作することが多いと思います。その辺の意味が理解できると、なんてことはありません。
実は簡単な算数なんです。
2進数や16進数といったコンピューターならではの概念を知っていると楽しいですよ。
rwxは
ls -l コマンドで出力される表示に「drwx」とあります。それぞれは以下のように分類されています。
| フォルダかどうか | 読み取り | 書き込み | 実行 |
| d | r | w | x |
dは付いていたり無かったししますが、これはその名前がフォルダかどうかで付きます。
意味も難しくないんですよ。
| d | Directory | ディレクトリ | 付いていればフォルダという意味 |
| r | Read | 読む | 閲覧可能(読み取り)、コピーも可能 |
| w | Write | 書く | 書込可能、上書きも可能 |
| x | Execute | 実行する | ファイルを実行できる、ファイルとして移動も可能 |
3つのrwx
この「rwx」で表しているのが3つあると思います。(例:rwxr-xr-x)
これらはそれぞれ順番に「ファイルの所有者」「所有グループのユーザー」「その他のユーザー」の権限を表しています。
日本語でも難しいように感じますか? ザックリと言い換えるとこうなります。
- 所有者=ファイルを作った人
- グループ=作った人が所属しているグループ全員
- その他=先の2つに当て嵌まらない全員
さらに、これを会社に例えると・・・、そのファイルは誰に権限があるのか分かり易い??
- 所有者=営業部の太郎さん(俺が作ったんだ)
- グループ=営業部の皆さん(うちの部署の物だ)
- その他=太郎さん本人と営業部の人を除いた部署の皆さん全員(経理の花子さんなど部外者)
これら3つを並べてファイルのアクセス権として表現しています。
権限を表す数字の意味
ファイルの権限を777、700、755、644などで表しますが、どういう法則かを理解すると非常に簡単になります。
これは2進数を10進数に置き換えた結果です。
我々現代人の数の数え方は10進数です。(こういった命数法は8進数や20進数が利用されている言語圏もあった)
コンピューターは2進数とか16進数がよく出てきますね。
2進数
コンピューターは電気信号なので、電流が流れてオンと切ったオフで動作させます。極端に言えばそれだけでして、その組み合わせで処理していると思ってください。
- 電気が流れてオン=1
- 流れていないなら=0
だからこの2つしか数字がないとすると、一般的な10進数とは異なり、2がないから足して2になる時は桁が上がるという数え方です。

■Pi 5は8GBモデルがオススメ
数字の求め方
それぞれのパーミッションを数字で表した横に並べて足した時に「755」といった数字で表現できるわけです。

チェック入れたのはオンでOKという意味ですから「1」となり、チェックが入っていないのはオフですから「0」と表します。
所有者の欄のように全てOKとした場合は「111」です。
つまり、先程の2進数の表の通り「111」は「7」ですから、755の先頭の数字が7となっているわけです。

755の5は、101ですから、書き込みができない。
それらを左から並べたのが「755」というわけです。
もっと簡単に覚えるには、権限を付与した場合、左からのrは4、wは2、xは1となりますから、それを覚えて足し算しても同じです。

r–、-w-、–xこのパターンは全部で8つあります。
これも2進数を10進数に変換しているだけですね。
rwx → 4+2+1=7
結果は同じです。
よく使う形
よく使う権限を覚えてしまうというのが手っ取り早いです。
「.py」などコードを書いて実行権与える場合、「755」にすることが多いですよね。
フルコントロールを与えたい時は、全部がOKですから「777」として自由に書き込めるようにしたりします。
他にもよく目にするであろう「644」は呼び出すライブラリなんかで多いですね。
もちろん、権限の付与を間違えると思ったように動作しませんから、ファイルによってはきちんと考えないとなりませんよ。
Raspberry Pi OSの権限付与コマンド
コマンドで権限付与するのに「chmod」を使います。数字でも実行できます。
sudo chmod 755 test.py
オプションなどはここでは省きます。
以上、ファイルのパーミッションにある数字の意味でした。
- 細かい所を極力省いています。



