問題タブ [inode]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - パスから開いていないファイルのiノード番号を取得する
まだ開いていないファイルのiノード番号を取得する方法はありますか?AC機能の中からやりたい
よろしく、リピカ
linux - カーネル セキュリティ モジュール: 構造体 inode の i_security
私の質問はおそらく非常に単純ですが、何も見つかりませんでした。Linux セキュリティ モジュールを作成しています。ご存知かもしれませんが、カーネルの struct inode には、LSM のセキュリティ関連情報を保存するための i_security フィールドが 1 つあります。ここで確認しておきましょう: どのユーザー (root でさえも) がこの値を読み書きできないと仮定しても安全でしょうか?つまり、この値は本当にカーネル空間からしかアクセスできないのでしょうか?
私の質問の理由は、一部の inode データがユーザー空間からアクセスできることは明らかだからです (私が推測するシステムコールを介して、しかしまだ chmod などを使用して、inode のいくつかの値を変更することができます)。つまり、すべての inode データ (i_security も) が何らかの方法でユーザー空間からアクセスできるということではありません。
乾杯
linux - / procのみを使用してソケットの所有PIDを見つけるにはどうすればよいですか?
/ proc / net / tcp出力から所有するPIDを見つけるにはどうすればよいですか(またはnetstat-pまたはss -p)?
以下の出力を示します。
/ proc / $ PIDを繰り返してiノードを検索する必要がありますか?
運が悪かったので、上記のiノードに一致するように/proc/でfindを実行してみました。
iノードのフィールドの意味を誰かが説明できますか?
ありがとう!
linux - raw ディスク セクタが使用されているかどうかを確認する
open(2)
、lssek[64](2)
、およびを使用して、空き領域のゼロ化を作成しようとしていwrite(2)
ます。ディスク セクタが使用中であることを確認しようとしています。
dd(1)
coreutils から確認しましたが、ユーティリティは同様のチェックを実行していません。Windows の世界では、FSCTL_GET_VOLUME_BITMAP を使用して DeviceIoControl を呼び出すことができました。
生のセクターが与えられた場合、そのセクターが使用中かどうかを判断できるシステム コールはありますか?
file - Linux カーネル空間からシステム内のすべてのパイプにアクセスする方法
システムで作成されたすべてのパイプに関する情報を表示する新しいシステム コールを Linux カーネルに追加したいと考えています。
pipefs 内のすべてのパイプの i ノード (または、pipe_inode_info にアクセスできるその他の関連構造) を取得するにはどうすればよいですか?
struct vfsmount、struct dentry、およびstruct super_blockを見てきましたが、適切な方法が見つかりませんでした。pipefs 内のすべてのファイルのファイル構造を取得する方法はありますか?
c - ディスクブロックをビットマップとして読み取る
ブロック ビットマップと inode ビットマップを含むブロックを読み込もうとしています
ブロックを unsigned char 配列として読み取り、次のようにバイナリに変換します。
char に「0」を入れて次のように出力すると
私は48を取得し、ビット配列には00110000が含まれていますこれは機能しますが、inodeビットマップをチェックすると機能しません。たとえば、ビットマップは次のとおりです。
1 1 1 0 0 0 0
しかし、私は
0 0 0 0 1 1 1 を得る
ブロックビットマップで同じことが起こるかどうかを確認できませんでした。
繰り返しますが、コードは通常の会話として機能します。たとえば、48 を出力する char '0' に対して 00110000 を出力します。これは 48 です。このスワッピングは、inode ビットマップで発生します。私が変更すると、inodeビットマップで機能しますが、ブロックビットマップで機能するようになるにはどうすればよいですか。これでコードは修正されますが、ロジックが間違っています。
何か案が?
linux - Linux では、NFS を使用して、open() コマンドはリモートで実行されますか?
ネットワーク上にサーバーがあり、ローカル マシンがファイルを開こうとしているとします。open("A/B/C/D/E/filename") は、次のような方法でローカル システムに実装されています。
ローカル システムは最初にサーバーから A のディレクトリ コンテンツを取得しますが、セキュリティ上の理由で失敗する可能性があります。
ローカル システムはディレクトリをスキャンして B の inode を探します。
ファイル名の inode に到達するまで、1 と 2 を再帰的に繰り返します。
ローカル システムは最終的にサーバーを呼び出して、ファイル名の inode を開きます。
または、open() はリモート ホストで完全に処理されます。
opendir(dir)、特定のファイル名パターンの readdir()、closedir()、および最後に open(filename) を実行するのに、open(filename) と同じ時間がかかるかどうかを判断しようとしています。
linux - パイプ、FIFO、またはソケットの作成中に i ノードを作成する
Linux について一般的な質問があります。fifo を作成すると inode は作成されますか? パイプ?ソケット?
c - iノードフィールドの再利用
私は、特定のファイルがプログラムAによってアクセスされたかどうかを示すために、簿記を行う必要があるプロジェクトに参加しています。他の追加のデータ構造を使用すると非効率になるため、この情報をiノードに格納する予定です。iノードデータ構造でフィールドi_modeを再利用する予定です。助言がありますか。さらに、ユーザースペースからiノードデータ構造に書き込む方法がわかりません。それ、どうやったら出来るの?ありがとう...
php - Linuxでディレクトリの変更を効率的に監視するには?
私はMagentoで作業しており、CSSとJavascriptを1つの大きなファイルにマージする機能があります。
その長所と短所に関係なく、次の問題があります。
最終的なファイルは、以下を含むがこれらに限定されない複数のレベルでキャッシュされます。
- アマゾン クラウドフロント
- プロキシ サーバー
- クライアントのブラウザ キャッシュ
Magento は、連結された css ファイル名の MD5 合計を使用して、マージされた css ファイルの新しいファイル名を生成します。css ファイルの個別のセットを持つすべてのページが適切にマージされた css ファイルを取得するようにします。
キャッシュの問題を回避するために、css ファイルが変更されるたびに新しいハッシュが生成されるように、ファイル変更のタイムスタンプもそのハッシュに含めました。
したがって、非再検証キャッシュ スコアの利点は十分に発揮されますが、リソース リンクが変更されているため、何かが変更された場合はすぐに表示されます。
ここまでは順調ですね:
唯一の問題は、has の生成に使用されるファイル名が、通常は HTML-Head ブロックで直接参照されるファイルのみであり、それらのファイル内に css インポートが含まれていないことです。
そのため、css ファイル内にインポートされたファイルの変更は、新しいハッシュにはなりません。
いいえ、すべてのインポートを再帰的に解析してスキャンしたり、そのようなことはしたくありません。
むしろ、ディレクトリベースのソリューションについて考えました。ファイルシステム単位で「ディレクトリ内の最後の変更」を効率的に監視するものはありますか?
ext4を使用しています。
それとも、find コマンドを使用して、inode インデックスに基づいてすべての作業を行う別の方法があるのでしょうか。
そんな感じ?
ファイルシステム全体をスキャンせずに変更を即座に「見る」プログラムをたくさん見てきました。Linux で利用できる「ファイル操作監視」デーモンのようなものもあると思います。
問題は、css ディレクトリが非常に大きいことです。
誰かが私を正しい方向に向けることができますか?