私はumaskを適用する前に、他のすべてのファイル形式に対する一般的なファイル権限を指定するリストを探しています。
man 1p touch
一般ファイルのデフォルト値は次のとおりです。
S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH
また、ディレクトリとシンボリックリンクのデフォルト値が次のように推測される危険性があります。
S_IRWXU | S_IRWXG | S_IRWXO
stat.h
ただし、マニュアルページでは、ソケット、FIFO、ブロックデバイス、およびCharデバイスの基本権限が何であるかを見つけることができませんmknod.h
。mknod
通常のファイルと同じですか?それともこれを説明するマニュアルページがないのでしょうか?
答え1
なかなか明確に理解されたようです。もっと詳しく話し合ってください。ここ。あなたが見逃した可能性があるのは、マニュアルページでのtouch(1)
ステートメントを見つけcreat(2)
ましたが(シンボリックリンクを除く)のステートメントを見つけたということです。システムレベルデフォルト - 各プログラムには独自のデフォルト値があります。すべてではありませんが、ほとんどのプログラムが同じ規則に従うことがあります。
答え2
ファイルの権限は次のとおりumask
です。open
ファイルが最初に作成されたときに呼び出されます。存在するfopen
、権限は0666に設定されますが、これにはストリームI / Oが含まれます。ファイルを生成するアプリケーションによっては、低レベルのオープン/読み取り/書き込みを使用することも、使用しない場合もあります。
特殊装備を使用しますmknod
、再びアプリケーションに初期権限を指定させます。例えば、mkfifo
LinuxおよびLinuxで使用されるコマンドOSX権限を設定するオプションがあります。繰り返しますが、[mknod][6]
コマンドには権限設定オプションがあります。これに関するマニュアルは初期権限を指定しません。
興味深いことに、POSIXの説明は次のとおりです。mkfifo
また、特定の権限セットを表しません(設定オプションを文書化することを除く)。
具体性が不足しているため、これらのコマンドの一部の実装では権限に0666を使用しない可能性がありますが、この仮定の実装がより緩やかであるかどうかはわかりません。内容を確認すると、/dev
通常はグローバルに書き込み可能な特殊なデバイスが見つかりません。これは特定の実装によって実施できます。たとえば、特定のデバイスに実装する許可、そうではないかもしれません良いもの、その内容は(通常)通常のファイルとは異なり、「実行」すると予期しないことが発生する可能性があるためです。
文書はありません。伝統的なアクセスは特定の実装を観察することに制限する必要があります。 0666 権限は実行不可能なファイルに広く使用されていますが、これが普遍的な事実であるという保証はありません。
許可シンボリックリンク一方、これは明らかにシステムによって異なります。これsymlink(7)
Linuxのマニュアルページには常に0777が表示されます。
Linuxでは、シンボリックリンクの権限はどの操作にも使用されません。権限は常に0777(すべてのユーザークラスに対して読み取り、書き込み、および実行)であり、変更できません。
BSDのような他のシステムでは、これも可能です。FreeBSDそしてOSXその呼び出しの文書-h
にもかかわらず、権限を変更するために使用できるオプションを文書化します(symlink(2)
FreeBSD、OSX) には初期権限は記載されていません。
追加資料:
答え3
ほとんどのシステムでは、umaskを適用する前のディスクファイルに対するデフォルトの権限は通常のファイルと同じです。 (0666)