読むだけでちょっと賢くなる、架空のまとめスレ

【初心者】Linuxの「chmod 755」の数字、なんなん?【LPIC】

22レスカテゴリ:Linux
1: 名無しさん

サーバー触ってたら「とりあえず chmod 755 しとけ」って言われたんやけど
755 って何の数字なんや

2: 名無しさん

まず ls -l で見てみ
-rwxr-xr-x 1 user staff 120 Jan 5 10:00 script.sh
みたいに出るやろ

3: 名無しさん

>>2
出た
呪文にしか見えん

4: 名無しさん

>>3
分解するで
先頭の1文字は種類。- はふつうのファイル、d はディレクトリ、l はシンボリックリンク
残り9文字を3文字ずつに分けて、所有者・グループ・その他の人の権限や
rwx / r-x / r-x

5: 名無しさん

r は読む、w は書く、x は実行、やな

6: 名無しさん

>>5
せや。で、数字はこれを足し算しただけ
r = 4、w = 2、x = 1
rwx = 4+2+1 = 7
r-x = 4+0+1 = 5
だから rwxr-xr-x は 755

7: 名無しさん

>>6
え、それだけ?

8: 名無しさん

>>7
それだけや
よく出るのは 755(実行ファイルやディレクトリ)と 644(rw-r--r--、ふつうのファイル)
600(rw-------)は自分だけが読み書きできる。秘密鍵とかに使う

9: 名無しさん

数字じゃなくて文字でも指定できるよな

10: 名無しさん

>>9
chmod u+x file で所有者に実行権を足す
chmod go-w file でグループとその他から書き込みを外す
u は所有者、g はグループ、o はその他、a は全員

11: 名無しさん

ディレクトリの r と x の違いがいまだに分からん

12: 名無しさん

>>11
ディレクトリは意味が変わる
r は中のファイル名の一覧を見られる
x は中に入れる(cd できる、中のファイルにたどり着ける)
w は中にファイルを作ったり消したりできる(x もないと実際は使えん)

13: 名無しさん

ファイルを消せるかどうかって、そのファイルの w で決まるんやないの?

14: 名無しさん

>>13
ちゃう。そこが引っかけポイント
消せるかどうかは、ファイルが入ってる「ディレクトリ」の w と x で決まる(スティッキービット付きの /tmp などは例外)
ファイル自体が読み取り専用でも、ディレクトリに書き込めれば消せる

15: 名無しさん

新しく作ったファイルが最初から 644 になるのはなんでや

16: 名無しさん

>>15
umask のせい
ファイルは 666、ディレクトリは 777 を出発点にして、umask のビットを落とす
umask が 022 なら、ファイルは 644、ディレクトリは 755

17: 名無しさん

新規ファイルに最初から x が付かんのも、出発点が 666 やからか

18: 名無しさん

>>17
そういうこと

19: 名無しさん

たまに rwsr-xr-x みたいに s が混ざってるやつあるよな

20: 名無しさん

>>19
特殊なビットや。さわりだけ言うと
SUID(4000)は、実行した人やなくてファイルの所有者の権限で動く。/usr/bin/passwd が有名
スティッキービット(1000)は /tmp に付いてて、他人のファイルは消せんようになる。表示は最後が t

21: 名無しさん

755 が足し算って分かっただけで、だいぶ怖くなくなったわ

22: 名無しさん

>>21
LPICでも、数字と記号の変換とディレクトリの権限は定番や
まずはそこを固めとけ

管理人のひとこと