私たちの大学では、私たちにUnixの課題を与えました。
222
新しく作成されたファイルの権限を無効にする必要がありますchmod
。
ファイル権限を「222」に減らす[chmodコマンドを使用しないでください]:
個人的にRubyを使用できます。
ruby -e "File.chmod(0222, File.join(Dir.pwd, 'F2'))"
ただし、このタイプのソリューションは許可されない場合があります。
また、ここに質問があります。 /usr/bin/chmodなしでchmodを実行する方法は?
しかし、答えは少し異なります。彼らは削除されたchmod
バイナリを回復することについて議論しています。
なしでファイルの権限を変更する方法はchmod
?
答え1
あなたの仕様が明示的に新しく作成されたファイル。chmod
新しいファイルを使用する前に作成すると、新しいファイルに一連の権限が付与されるため、変更することはできませんchmod
。
さらに、Rubyスクリプトはchmod
コマンド/ユーティリティを実行しませんが、同じ基本システムコールを使用するため、事実上同じです。国ならこんなことが起こるようにしておかなかっただろう。
完全な回答を提供せずに何を調べることをお勧めしますマニュアルページopen()
作成したファイルの権限に関する注意事項:
モードパラメータは、新しいファイルを作成するときに適用するファイルモードビットを指定します。このパラメーターは、フラグにまたはが指定されている場合は
O_CREAT
必須です。O_TMPFILE
あるいは、両方をO_CREAT
指定しない場合、O_TMPFILE
パターンは無視されます。有効モードは、通常の方法でプロセスのumaskによって変更されます。デフォルトのACLがない場合、生成されたファイルのモードは後で新しく生成されたファイルへの読み取り専用呼び出し(mode & ~umask)
にのみ適用されます。open()
ファイルの可能性が高いです。読み取り/書き込みファイル記述子を返します。パターンには次の記号定数が与えられます。
S_IRWXU
00700
ユーザー(ファイル所有者)に読み取り、書き込み、および実行権限があります。[など。 ]
また、引用したセクションに「権限の減少」と記載されています。渡す222"、いいえ到着222.これは私が検討している機能にも重要です。
コメントに言及されているので
umask
新しく作成されたファイルに対する権限を制限すると思います。これは標準的な機能でなければならず、LinuxとDragonFlyで同じようにうまく機能するはずです。
もちろん、これはすべて課題の私の解釈です。ここにいる私たちのどれも、あなたの教師/教授が正しい答えだと思うものが何であるかを確実に伝える方法はありません。特に時々教授が提供した答えが正解ではないかもしれないからです。