ディレクトリが Linux システムによって作成されたのか、ルートなどのユーザーによって作成されたのかを確認する方法。例:Linuxで作成したディレクトリ/etc
があります。sys
rootとしてログインし、sys1ディレクトリを作成しました。それでは、どのように区別できますか?
例:varはシステムによって作成されたディレクトリ、testはrootユーザーを使用して作成されたユーザーです。
drwxrwxrwx 34 root root 4096 Aug 25 22:52 var
drwxr-xr-x 2 root root 4096 Aug 25 23:19 test
答え1
「システム作成ディレクトリ」という概念はないと思います。システムをインストールするとき、通常、インストールメディアは作業を行います。つまり、結果(たとえば、生成された/ etcディレクトリ)が表示されますが、実際にはスクリプトを実行しているユーザーが実行します。
「システム」によって生成されたすべての項目は、ルートによって生成されたと見なすことができますが、これが自動かどうかを知る方法はありません。
答え2
「システムによって生成される」の意味に応じて、パッケージングシステムを使用して特定のディレクトリがどのように生成されたかを確認できます。
たとえば、RPMベースのシステム(RedHat、Fedora、CentOSなど)では次のようになります。
rpm -qf /var
次のようなものを与える
filesystem-2.4.100.x86_64
filesystem
はパッケージの一部としてインストールされていることを示します。
rpm -qf /test
与えることができる
file /test is not owned by any package
基本インストールの一部ではないことを示します(人以外のプログラムによって生成される可能性があります)。
同様に、Aptベースのシステム(Debian、Ubuntuなど)では、次のものを使用できます。
dpkg -S /var
同じチェックを実行してください。
答え3
システムが作成したファイル(ディレクトリを含む)とユーザーが作成したファイル(ディレクトリを含む)はどちらも最終的に同じシステムコールであるため違いはありません。ファイルまたはディレクトリを作成したプロセスの所有者が誰であるかを後で知る方法はありません。ところで、「Linuxシステム」は主にユーザーです根:特別なユーザーはいません。また、ディレクトリとファイルの所有者はインストール時に常に設定されるため、以降は表示されません。
パッケージマネージャがある場合は、Debianパッケージマネージャなどを使用してパッケージインストールでディレクトリが作成されたことを確認できます。
dpkg -S /var
複数のパッケージがリストされており、存在しない場合はすべてディレクトリを作成します。しかし、
dpkg -S /opt
何もリストされていません。ただし、インストール中または特定のパッケージのインストール後にスクリプトを実行すると、システムインストーラによって生成されることがわかります。