0
2

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】デフォルトのパーミッションの変更(umask)

Posted at

デフォルトのパーミッションの変更について

ファイルやディレクトリを作成した際のデフォルトのパーミッション変更をしたい場合は、umaskの値を変更する必要があります。
現在設定されているumaskの値は確認したい時には、umaskコマンドで確認する事が出来ます。
コマンドを実行すると、0002が現在のumaskの値である事が分かりました。(-Sオプションを使用する事で、属性をシンボルで確認出来ます。)

[test_01@localhost ~]$ umask
0002
[test_01@localhost ~]$ umask -S
u=rwx,g=rwx,o=rx

ディレクトリの基本パーミッションは777(rwxrwxrwx)で、ファイルは666(rw-rw-rw-)となっております。
上記基本パーミッションからumaskの値を引いた値が、デフォルトのパーミッションになります。
現在の設定では、ディレクトリは777-002=775となります。ファイルは666-002=664となります。

実際にファイル/ディレクトリを作成して、想定通りのパーミッションである事を確認しました。

[test_01@localhost ~]$ touch test
[test_01@localhost ~]$ mkdir test_dir
[test_01@localhost ~]$ ll
合計 0
-rw-rw-r-- 1 test_01 test_01 0  3月  6 19:18 test
drwxrwxr-x 2 test_01 test_01 6  3月  6 19:18 test_dir

umaskの値の変更は、umask 変更したい値とする事で変更出来ます。
変更後に、デフォルトのパーミッションが変更された事を確認してみます。
umask 0000を実行後にファイル/ディレクトリを作成すると、ファイルは666ディレクトリが777のパーミッションとなっている事を確認出来ました。

[test_01@localhost ~]$ umask 0000
[test_01@localhost ~]$ touch test
[test_01@localhost ~]$ mkdir dir
[test_01@localhost ~]$ ll
合計 0
drwxrwxrwx 2 test_01 test_01 6  3月  6 19:29 dir
-rw-rw-rw- 1 test_01 test_01 0  3月  6 19:26 test

ログアウトすると、umaskの値は設定ファイルで指定された値が再度設定されます。
設定ファイルの値を変更する事で、恒久的にumaskの値を変更する事が出来ます。

設定ファイル内でumaskを設定する

/etc/profileファイルを編集して、デフォルトのパーミッションを設定する事が出来ます。
ユーザー毎に指定したい場合は、ホームディレクトリ配下の.bash_profileを編集して下さい。

/etc/profileファイル内に、下記のような記載がございます。
$UIDが200以上 AND ユーザー名とグループが同一の場合は、umask 002が実行されるようです。
それ以外が、022のようです。変更したい値をumaskコマンドに指定すればよいでしょう。

/etc/login.defsファイルのUID_MINの値が200以上の場合に、一般ユーザーを作成している場合はuidが200以上となっているはずです。(当方の環境では、デフォルトで1000が設定されていました。)

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

個別のユーザーだけ対応したいという場合は、.bash_profileumask 変更したい値を記載しましょう。

umask 0077を追記
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin
umask 0077

export PATH
0
2
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
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?