[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
となり、デフォルトディレクトリと同じアクセス権となっています。
参考