umaskはデフォルト権限を750に設定します。

umaskはデフォルト権限を750に設定します。

次の問題を解決しています。Unix教科書

私はこの問題を解決しようとしています。(8章15号、207ページ):

  1. ユーザーには読み取り、書き込み、および実行権限があり、ユーザーのグループには読み取りおよび実行権限があり、ユーザーのグループには読み取りおよび実行権限があり、他のすべてのユーザーには読み取り、書き込み、および実行権限があるようにデフォルトのアクセスモードを設定します。するコマンドラインを提供します。新しく作成された実行可能ファイルです。ファイルに権限またはディレクトリがありません。動作していることを確認するにはどうすればよいですか?

私の元の答えはを使用することumask 027でしたが、私は見つけたtouchnotに実行権限が適用または適用されず、期待vimどおりに新しいファイルが作成されます。umask666777

私の最終目標は権限値を持っているので、このコマンドに適用されたものは何も結果が発生しないので、750このコマンドは不可能なようです。umaskumask666750

このセクションのすべての質問は意図した目標を達成するために使用できないため、この質問に欠陥がchmodありますか?umaskumask

答え1

質問には次の部分が含まれています。

新しく作成された実行可能ファイルまたはディレクトリの場合。

新しく作成された実行可能ファイルとディレクトリは、モード0777を使用して作成できるため、必要な実行権限も取得されます。したがって、質問が正しく定式化されているようです。 umask 027が機能するはずです。

答え2

すべてこれらの文書777 から umask を減算することで umask を決定できます (666 はデフォルトでは実行可能でないファイルに推奨されます)。

だからあなたは次のことをすることができます

PERM=750
UMASK=$(expr 777 - $PERM)
echo $UMASK
>>> 27

前にゼロがないので、場合によっては問題になる可能性がありますが、必要に応じてうまく機能します。

関連情報