저는 Centos를 사용하고 있으며 디렉토리 중 하나에 ll 명령을 실행했습니다. 디렉토리에 있는 파일의 소유자는 사용자 이름이 아닌 숫자입니다. 왜 이런지 설명해 주실 수 있나요?
아래를 보면 소유자가 root가 아닌 600이 소유자로 표시됩니다. 그리고 600이라는 유저도 없습니다. 왜 그럴까요?
-rw-rw-r-x. 1 600 root 1696 Jun 27 2016 abc.txt
-rw-rw-r-x. 1 600 root 1696 Jun 27 2016 xyz.txt
-rw-rw-r-x. 1 600 root 1692 Jun 27 2016 hagts.txt
답변1
나의 첫 번째 가정은 당신이나 누군가가 루트로서 다음을 사용하여 디렉토리나 파일의 권한을 변경하려고 한다는 것입니다.
# chmod 600 *
하지만 다음과 같이 잘못 입력되었습니다.
# chown 600 *
이렇게 하면 소유자가 로 변경됩니다 600
. 이는 시스템에 해당 사용자가 없더라도 유효한 작업입니다. 이 파일은 UID 600(아마 할당되지 않음)이 소유합니다.
다시 변경하려면 다음을 사용하세요.
# chown dave *
루트로( dave
귀하의 사용자 이름으로 교체)
*
모든 파일과 디렉터리에 영향을 주지 않으려면 특정 파일과 디렉터리 이름을 선택해야 할 수도 있습니다. 또한 쉘 기록을 보고 자신이 수행한 작업을 추적하여 수행한 작업을 확인해야 합니다.실제로소유권이 변경됩니다(귀하의 경우).
또 다른 가능성은 파일과 그 소유권이 UID 600을 가진 다른 컴퓨터에서 전송되었다는 것입니다.예유효한 사용자입니다. 파일이 네트워크 공유에 있고 현재 컴퓨터의 사용자가 파일이 생성된 컴퓨터와 어떤 방식으로든 동기화되지 않은 경우 이런 일이 쉽게 발생할 수 있습니다.
여전히 root 로 소유권을 변경할 수 있습니다 chown
.