디렉토리가 시스템 또는 루트 사용자에 의해 생성되었는지 확인하는 방법은 무엇입니까?

디렉토리가 시스템 또는 루트 사용자에 의해 생성되었는지 확인하는 방법은 무엇입니까?

디렉토리가 Linux 시스템에 의해 생성되었는지 아니면 루트와 같은 사용자에 의해 생성되었는지 확인하는 방법. 예: Linux에서 생성한 디렉터리 /etc가 있습니다 . sys루트로 로그인하고 sys1 디렉토리를 생성했습니다. 그렇다면 어떻게 구별할 수 있나요?

예: var는 시스템에서 생성된 디렉터리이고, test는 루트 사용자를 사용하여 생성된 사용자입니다.

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

아무것도 나열되어 있지 않습니다. 하지만 설치 중이나 특정 패키지에 대한 설치 후 스크립트를 실행할 때 시스템 설치 프로그램에 의해 생성된다는 점은 알 수 있습니다.

관련 정보