0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

定時帰る術-Linuxパーミッション(chmod、umask)

Last updated at Posted at 2023-10-16

パーミッション管理-chmod

確認

ls -l
-rw-r--r-- 1 root root 38 10月 14 09:44 test.txt

もしくは

stat test.txt
  File: test.txt
  Size: 38              Blocks: 8          IO Block: 4096   通常ファイル
Device: fd00h/64768d    Inode: 33583486    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2023-10-14 09:46:16.000000000 +0900
Modify: 2023-10-14 09:44:59.000000000 +0900
Change: 2023-10-14 11:13:50.341510281 +0900
 Birth: -

-rw-r--r--が0644と同じことを指していますが、具体的な考え方が↓となる

rwxの値が↓となり、一つ目の[-]がファイルの種類を表示されているので、パーミッションには関係ないため、ここでは無視

読み取り:r:4
書き込み:w:2
実行:x:1

---が二進法であり、001が1、010が2、100が4なので、xが1、wが2、rが4となります。

一つ目の「-」を除いて、「-」が3つごとで「所有者」、「所有グループ」、「その他ユーザ」の考え方です。

上記「-rw-r--r--」の場合:
「rw-」:「r+w」=「4+2」= 6
「r--」:「r」=「4」= 4
「r--」:「r」=「4」= 4
なので、「-rw-r--r--」が644となります。

変更(chmod)

chmodでの変更が数字とアルファベット2つ方法があります。

数字
「-rw-r--r--」に実行権限(x)を付けたい場合
chmod 755 test.txt

「-rw-r--r--」からその他ユーザの読み取り権限を削除したい場合

chmod 640 test.txt

アルファベット

「対象」「操作」「パーミッション」

対象:
u:所有者
g:所有グループ
o:その他
a:上記のすべて

操作:

+:付ける
-:削除
=:にする

「-rw-r--r--」に実行権限(x)を付けたい場合

chmod a+x test.txt

「-rw-r--r--」からその他の読み取り権限を削除したい場合

chmod o-r test.txt

[,]を付けって、複数条件が書けます。

例:
「-rw-r--r--」に所有者に実行権限をつけて、所有グループの権限をrwにし、その他の読み取り権限を削除する。
chmod u+x,g=rw,o-r test.txt

また、-Rを付けることで、再帰的に変更することもできます。

「/var/tmp」配下の全ファイル、ディレクトリに対して、その他のアクセス権限を削除する。
chmod -R o= /var/tmp

umask

新しいファイル、ディレクトリを作る時のパーミッションはどうするのがumaskで管理する。
(ファイルの実行権限はumaskeでつけられない)

umask -Sで確認できる。
例:

umask -S
u=rwx,g=rx,o=rx

デフォルトの設定ファイル場所: /etc/profile
下記の処理で各ユーザのumaskを設定している。

if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
    umask 002
else
    umask 022
fi

ユーザIDが199より大きく、/usr/bin/id -gn(所有グループ)と/usr/bin/id -un(ユーザ名)が同じの場合、はumaskを002にする。
上記以外の場合、umaskを022にする。
(useraddの場合は、ユーザIDが1000となる)

umaskが002場合:
ファイル:777-002=775、775-111=664(-rw-rw-r--)
ディレクトリ:777-002=775(drwxrwxr-x)

022場合:
ファイル:777-022=755、755-111=644(-rw-r--r--)
ディレクトリ:777-022=755(drwxr-xr-x)

umask自体がumaskコマンドで変更できますが、ログアウトやOS再起動とかで設定が消えてしまうため、ユーザのホームディレクトリ配下の「.bash_profile」ファイルに追記した方がいいでしょう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?