FIETS ~インフラエンジニアトレーニング場~

24歳までIT音痴・PC嫌いだった人間が、インフラエンジニアとして食べていけるようになるまでに役に立った情報を掲載

[Linux] mkdir時にアクセス権を指定する方法

【悩み】

mkdir → chmodに疲れた!

 

 

悩み詳細

mkdirディレクトリ作成しても、デフォルトでは設定したい権限ではないことが多い...

そのため、直後にchmodを打つことが多いのですが、手間!!

 せっかくPCを使用しているなら少しでも楽をしていく考え方をしないと。

※この考え方大事

(このくらい頑張ればいいじゃんのスタンスでは成長無いし、いつか溢れてしまいます)

 

 

 解決方法

そこで -m (--mode) オプション!

デフォルトと比較した実行結果が下記です。

※因みに

-v (--verbose)オプションはコマンド結果を出力するためのものです。

 多くのコマンドに付いていて、付けないと(特に成功した場合は)何も返ってきません。

 

$ ls -l
合計 0

#オプション無でdefaultディレクトリ作成
$ mkdir -v default
mkdir: created directory `default'

#-m付けてmode_rwxディレクトリ作成
$ mkdir -v -m 777 mode_rwx
mkdir: created directory `mode_rwx'

#赤字のアクセス権を表示する箇所に違いが!
$ ls -l
合計 8
drwxrwxr-x 2 works works 4096 11月 15 21:35 2019 default
drwxrwxrwx 2 works works 4096 11月 15 21:36 2019 mode_rwx

 

 

豆知識

-mオプション付けない時、ディレクトリのアクセス権はどう決まるのでしょう?
複数の環境触った方だと、各環境で違うと感じたことがあるかもしれないです。

 

その秘密は マスク値 です。

マスク値の最大(ディレクトリでは777) からマスク値を引いた数字がデフォルトのアクセス権になります。

 

マスク値はumaskで確認できます。

上の例の環境で実行してみましょう。

$ umask
0002

マスク値は002なので、

777-002=775=rwxrwxr-x

となり、デフォルトディレクトリと同じアクセス権となっています。

 

 

 参考

Man page of MKDIR