誰かがこれらの属性が何を意味するのかを説明できますか---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
オペレーティングシステムとファイルロックを強制するファイルシステムサポートが提供になります。次に、ファイルに対して強制ファイルロックが有効になっていることを示します。l
l
l
次のコマンドを使用して、ディレクトリツリー内のすべてのファイルやその他のコンテンツの数値モード(または少なくともユーザー制御下のモードビット)を表示できます。
探す目次-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」のあるファイルを認識するオプションはありますか?
S
4番目の場所でファイルを見つけることができます。
探す目次-パーマ-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
マンページ。すべての属性とその特性はマニュアルページに記載されています。