touchコマンドを使用してファイル権限を設定する方法

touchコマンドを使用してファイル権限を設定する方法

ファイルを作成するたびに、touch権限が次のように設定されているようです。-rw-r--r--

権限を設定する方法はありますかtouch?それとも別のコマンドを使用して実行する必要がありますか?

答え1

(ほとんどの実装では)より多くの読み取り/書き込み権限を許可するように権限を変更できますが、umask通常要求される権限は実行できません0666

その場合、ファイルが作成されたことがわかりumaskます022touch0644

楽しく、POSIX次の用語でこの動作を説明しますcreat

  1. ファイルが存在しない場合:

    これ作る()次のパラメータを使用して関数を呼び出します。

    • ファイルオペランドはパスパラメータとして使用されます。

    • ビット単位で含まれる値または~のS_IRUSRS_IWUSRS_IRGRPS_IWGRPS_IROTHS_IWOTHモードパラメータとして使用されます。

そして、リンクをクリックしてcreatからリンクをクリックし、言及しopenた内容を確認し、逆追跡umaskしてopenそれがcreat影響umaskを与えるかどうかを確認しますtouch

umaskコマンドにのみ影響を与えるには、touchサブシェルを使用します。

(umask 066; touch private-file)
(umask 0; touch world-writable-file)
touch file-as-per-current-umask

(とにかくファイルが辞書に存在している場合、touchその権限は変更されず、タイムスタンプのみが更新されます。)

答え2

umask通常、に設定すると、022ユーザーが自分の必要に応じてファイルを作成したときに取得する権限を操作できる0644ことを意味します。umask

関連情報