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