new.txt
권한이 있는 파일이 있지만 -rw-r--r--
누군가가 사용하면 chmod 777 new.txt
권한이 변경되는 경우입니다 . 따라서 new.txt의 이전 권한을 모르는 경우 어떻게 원래 권한을 다시 얻을 수 있습니까?
답변1
시스템은 이전 파일 권한 기록을 유지하지 않습니다. 백업에 파일과 해당 파일의 원래 권한이 포함되어 있는 경우 백업 내용을 나열하여 원래 권한 정보를 얻을 수 있습니다.
사용하는 백업 솔루션에 따라 실제 파일을 복원할 필요조차 없을 수도 있습니다. 파일 권한이 포함된 백업 내용의 디렉터리 목록만 있으면 충분합니다.
백업이 없으면 두뇌를 사용하여 어떤 권한을 사용할 수 있는지 추론해야 합니다. ~처럼하위 유형 이론, 사용자 umask
설정은 사용자가 만든 모든 파일이나 디렉터리에 대한 기본 권한을 결정합니다.
대부분의 일반 파일의 경우 권한의 "시작 세트"는 666이며 이 umask
값은 특정 권한을 마스크하는 데 사용됩니다. 따라서 사용자 umask
값이 022라는 것을 알고 있는 경우 새 파일에 대한 실제 기본 권한은 666 - 022 = 644 또는 -rw-r--r--
.
참고: 권한 번호는 8진수이며 실제 작업에서는 부울 연산자(666 AND (NOT 022) = 644)를 사용합니다.
디렉터리 및 실행 파일의 경우 권한의 "시작 집합"은 666이 아닌 777입니다. 따라서 사용자의 권한이 umask
022인 경우 새 디렉터리에 대한 실제 기본 권한은 777 - 022 = 755 또는 drwxr-xr-x
.
답변2
파일의 "원래 사용 권한을 복원"할 수 없습니다. 하지만 당신이 할 수 있는 일은 그것들을 기본값으로 설정하는 것입니다지금.
touch /tmp/file.$$ # Create a temporary file with "default" perms
chmod --ref=/tmp/file.$$ new.txt # "Reset" the file new.txt
rm -f /tmp/file.$$ # It's always good to tidy up
umask
기본 설정은 쉘 값에 의해 제어됩니다. 내 시스템의 현재 설정은 다음과 같습니다.
umask
0022
이는 쓰기 권한을 의미합니다(값 02, 바이너리 010).그룹그리고다른 사람예삭제됨파일이나 디렉터리를 생성할 때.
또한 설정에서 이를 허용하더라도 대부분의 편집자는 실행 가능 비트 세트(바이너리 값 001)가 있는 파일을 생성하지 않습니다 umask
. 사용자는 일반 파일(실행 권한 없음)과 스크립트 파일(실행 권한 있음)을 구별할 수 있습니다.
chmod +x new.txt # Add execute permission
답변3
기본 권한은 에 의해 정의됩니다 umask
. 새로 생성된 파일에 대한 기본 권한을 확인하려면 이를 볼 수 있습니다. 설치 권한을 찾으려는 파일이 패키지의 일부인 경우 일반적으로 해당 파일을 보고 알아낼 수 있습니다.