디렉토리의 내용이 읽기 전용이 되도록 디렉토리를 읽기 전용으로 표시하고 싶습니다. chmod a=rx를 사용하여 디렉토리를 읽기/실행 전용으로 설정하면 디렉토리와 그 내용을 삭제할 수 없습니다. 절반 정도 완료되었더라도 내용은 여전히 수정될 수 있습니다. chmod a=r은 콘텐츠를 읽지 못하게 합니다.
어떤 아이디어가 있나요?
답변1
찾고 있는 것 같군요.
chmod a-w -R your_directory
디렉터리의 파일이 변경되는 것을 방지하려면 파일 자체에서 쓰기 속성을 제거해야 합니다.
답변2
간단히 말해서:
디렉터리와 그 안의 모든 기존/새 파일을 읽기 전용으로 반복적으로 설정합니다.
sudo chmod a=r -R /path/to/the/folder/
모든 사람이 들어갈 수 있도록 디렉토리 자체에 대한 권한을 설정하십시오.
sudo chmod a=rx /path/to/the/folder/
제가 논평할만한 평판이 부족해서 이에 대해 철저한 답변을 드리겠습니다.
내 말은SS64 chmod 페이지chmod에 대해 기억나지 않는 경우 빠른 참조입니다.
홈 디렉터리에 테스트 디렉터리를 만든 다음 테스트 파일을 만들고 마지막으로 디렉터리 내용을 나열합니다.
mkdir ~/testaubs
cd ~/testaubs
touch testfile.aubs
ls -l
합계 0
-rw-r--r-- 1 aubs aubs 0 12월 4일, 03:19 testfile.aubs
이 파일은 read-write
다음 용도로 사용됩니다.소유자, read
을 위한그룹그리고read
사용자(그밖에 누가).
제공하는 매개변수에 따라 a=rx
모든 사람이 파일을 읽을 수 있을 뿐만 아니라 실행할 수도 있습니다. 질문 제목은 다음과 같습니다읽기 전용.
실행하는 경우:
chmod a=rx testfile.aubs
ls -l
합계 0
-r-xr-xr-x 1 aubs aubs 0 12월 4일, 03:19 testfile.aubs
이제 파일 read-execute
에 다음이 포함됩니다.소유자, read-execute
을 위한그룹그리고read-execute
사용자(그밖에 누가).
read
다음 명령을 실행하여 이 파일에 대한 권한을 모든 사람에게 적용하도록 설정할 수 있습니다 .
chmod a=r testfile.aubs
ls -l
합계 0
-r--r--r-- 1 aubs aubs 0 12월 4일, 03:19 testfile.aubs
이제 루트를 제외한 누구도 파일을 변경할 수 없습니다. 심지어 사용자도 마찬가지입니다.
동일한 디렉터리에 다른 파일을 생성하면 다음 문제가 발생합니다.
touch testfile2.aubs
ls -l
합계 0
-rw-r--r-- 1 aubs aubs 0 12월 4일, 03:35 testfile2.aubs
-r--r--r-- 1 aubs aubs 0 12월 4일, 03:19 testfile.aubs
새 파일은 해당 testfile2.aubs
파일이 위치한 상위 디렉터리의 권한을 상속받습니다.read-write
소유자, read
을 위한그룹그리고read
사용자(그밖에 누가).
누군가를 차단하고 싶다면만들다디렉터리의 새 파일에도 상위 디렉터리의 권한을 설정해야 합니다.
먼저 해당 권한이 무엇인지 확인하고 한 수준 위로 올라가 모든 파일을 나열하지만 테스트 디렉터리만 볼 수 있도록 제한합니다.
cd ..
ls -l | grep test
drwxr-xr-x 2 aubs aubs 4096 12월 4일 03:35에 테스트되었습니다.
상위 디렉터리에 read-write-execute
다음 권한이 있음을 알 수 있습니다.소유자, read-execute
을 위한그룹그리고read-execute
사용자(그밖에 누가).
디렉터리의 모든 기존 파일과 새 파일에 대해 재귀적 권한을 설정할 수 있습니다.소유자,그룹그리고사용자만 있지만 첫 번째 파일을 다음 용도로만 사용하도록 설정했기 read
때문에 높은 권한이 필요합니다.sudo
read
소유자(우리 계정):
sudo chmod a=r -R test/
ls -l | grep test
dr--r--r-- 2 aubs aubs 4096 12월 4일 03:35에 테스트되었습니다.
그런 다음 디렉터리 자체에 대한 권한을 설정할 수 있습니다.소유자,그룹그리고사용자둘 다 읽기 실행 기능이 있습니다(디렉토리에 들어가려면 실행해야 합니다. 그렇지 않으면 오류가 발생합니다 bash: cd: test/: Permission denied
). 또한 다음을 통해 높은 권한이 필요합니다 sudo
.
sudo chmod a=rx test/
ls -l | grep test
dr-xr-xr-x 2 aubs aubs 4096 12월 4일 03:35에 테스트됨
sudo
계정(소유자)에서 "쓰기"를 제거하면 이를 다시 변경할 수 있는 권한을 잃게 되므로 위 중 일부를 사용해야 합니다 !
이제 폴더로 이동하여 내용을 나열할 수 있습니다(각 내용이 read
고유한지 확인).
cd test/
ls -l
합계 0
-r--r--r-- 1 aubs aubs 0 12월 4일, 03:35 testfile2.aubs
-r--r--r-- 1 aubs aubs 0 12월 4일, 03:19 testfile.aubs
하지만 새 파일을 만들 수는 없습니다.
touch testfile3.aubs
터치: 'testfile3.aubs'를 터치할 수 없습니다: 권한이 거부되었습니다.