権限のあるファイル---S--l---

権限のあるファイル---S--l---

誰かがこれらの属性が何を意味するのかを説明できますか---S--l---

いつ、なぜこのプロパティを設定するのですか?何のために?

$ ls -ltr
---S--l---   1 root     root          0 Mar 10 04:25/opt/sm/OP/Tor/kur/ll3/tur_lock

答え1

私はあなたが基本的な-rwxrwxrwxシンボルに慣れていると確信しています。おそらくset-user-IDが役に立ち、-rwsrwxrwx set-group-IDが役に立つかもしれないことをご存知でしょう-rwxrwsrwx。しかし、これらの形式はさらに説明せずにあいまいです。を見ると、-rws------モードが04700(ユーザーID設定+ユーザー読み取り+書き込み+実行)と考えることができますが、x表示されないときに実行ビットがオンになっているかどうかはどうすればわかりますか?答えは、モード04600(ユーザーID設定+ユーザー読み取り+書き込み、実行しない)が表示されることです-rwS------。同様に、02060(グループID設定+グループ読み取り+書き込み、未実行)が表示されます---rwS---

今、lこれに関する文書を見つけるのが難しいことが証明されています。幸いなことに、私はここにしばらく滞在し、体の一部がどこに埋もれているかを知っています。私はこれを見つけましたFCNTL(2)ページは次のとおりです。

(非POSIX。)...レコードロックは推奨または必須であり、デフォルトでは推奨です。アドバイザリロックは適用されず、協力プロセス間でのみ有効です。

すべてのプロセスに必要なロックが適用されます。プロセスが互換性のないアクセスを実行しようとした場合(例:読書(2) または書き込み(2))互換性のない必須ロックを持つファイル領域では、結果は次のように異なります。O_非遮断開くファイル記述のフラグを有効にします。もしO_非遮断フラグが有効になっていない場合、ロックが削除されるかアクセス互換モードに変換されるまで、システムコールはブロックされます。もしO_非遮断フラグが有効な場合、システムコールはエラーで失敗します。イガオン

強制ロックを使用するには、ロックファイルを含むファイルシステムとファイル自体で強制ロックを有効にする必要があります。-o mandファイルシステムの強制ロックを有効にするには、 " "オプションを使用します。設置(8)またはMS_MANDLOCKフラグは次のとおりです。取付(2)。ファイルのグループ実行権限を無効にし、set-group-ID権限ビットを有効にすることで、ファイルの強制ロックを有効にできます(参照:修正(1) そして修正(2))。

Linuxの強制ロックの実装は信頼できません。以下のエラーを参照してください。

長い話を短く

一部(非POSIX?)* nixシステムでは、set-group-IDモードビットをオンにしてグループ実行ビットをオフにしてファイルを強制的にロックすることができます(その機能がファイルシステムで有効になっている場合)。したがって、lsこれらのシステムの一部のプログラムは、l強制実行を示すためにモーダルテキスト表現の7番目の位置を表示します(代わりに)。Sロックが有効です。したがって、tur_lockファイルモードは06000です。

ロングストーリーショート2

  • 4番目の位置Sは、設定されたユーザーID(04000)モードビットが設定されているが、ユーザー(所有者)実行権限(00100)モードビットがオフになっていることを示します。
  • 7番目のビットのSまたはは、lグループID設定(02000)モードビットが設定されているがグループ実行権(00010)モードビットがオフになっていることを示します。
  • lsビット 7 (set-group-ID モードビットが設定されているがグループ実行権限モードビットがオフの場合) に表示されるかどうかは、明確に文書化されていない規則によって決定されますが、Sオペレーティングシステムとファイルロックを強制するファイルシステムサポートが提供になります。次に、ファイルに対して強制ファイルロックが有効になっていることを示します。lll

次のコマンドを使用して、ディレクトリツリー内のすべてのファイルやその他のコンテンツの数値モード(または少なくともユーザー制御下のモードビット)を表示できます。

探す目次-printf "%.5m %p\n"

findモードを数値(8進数)として報告する形式を許可します-printf%m%M記号的にパターンを報告する場合は次のとおりですls。)もちろん、複数のディレクトリを指定しfindたり、オプション、または、および-mindepth/または-maxdepthテストを使用して検索を絞り込んだり、フォーマットを変更したりできます。-mtime-name-iname-size-printf

次のコマンドを使用して、選択したファイルの数値パターンを表示できます。

統計 -c "%a%n"文書…

statレポート形式(-cまたはで指定)は、数値(8進数)形式でモード(「アクセス権」)を報告する--formatために使用されます。%a%Aこのように記号的にパターンを報告するために使用されますls。)

上記の2つは、ユーザー制御下のモードビットのみを表示します。確認するみんなモードビット(ファイル/inodeタイプを指定するビットを含む)、使用

統計 -c "%f%n"文書…

残念ながら、これは16進数で表されます。


...「S」のあるファイルを認識するオプションはありますか?

S4番目の場所でファイルを見つけることができます。

探す目次-パーマ-4000! -パーマ-100

これは英語の構文に最も近いですfind。特権(モード)ビット04000が設定されているがモードビット0100が設定されていないファイルを見つけます。

同様に、次のコマンドを使用して7番目の場所にあるファイルまたはSそのファイルを見つけることができます。l

探す目次-パーマ-2000! -パーマ-010

上記の基準のいずれかを満たすファイルを見つけるのはかなり混乱します。

探す目次"(""("-perm -4000!-perm -100")"-o"("-perm -2000!-perm -010")"")"

答え2

これはLinuxのコマンドで設定できますchattr

chattrユーザーがLinuxファイルシステム上のファイルに特定の属性を設定できるようにするLinuxオペレーティングシステムのコマンド。

不変ビットとも呼ばれます。

Linuxには、ファイルに適用できるプロパティがたくさんあります。上記の質問では、SとIはいくつかの属性です。以下は、属性SとIの説明です。

S- ディスクへの同期書き込みを変更します。これは、ファイルサブセットに適用される「同期」マウントオプションと同じです。

I- ハッシュツリーを使用して、ディレクトリがインデックスの後ろにあることを示すためにhtreeコードで使用されます。

不変ビットを任意のファイルに設定するには、構文は次のとおりです。

chattr +(attribute) (file name)

ファイルの不変ビットを削除するには、構文は次のとおりです。

chattr -(attribute) (file name)

属性が設定されているファイルを確認するには、lsattrコマンドを使用します。

もっと情報が欲しいなら読んでくださいchattrマンページ。すべての属性とその特性はマニュアルページに記載されています。

関連情報