나는 매우 좋은 디렉토리 설정을 가지고 있습니다(예: readme 파일, 간단한 탐색 등으로 구성). 나는 사람들이 이 디렉토리에 있는 파일에 액세스하고 심지어 자신의 디렉토리(동일한 컴퓨터에 있음)에 복사할 수 있기를 원하지만 내 디렉토리가 흔들리거나 엉망이 되는 것을 원하지 않습니다. 그렇지 않으면 모든 것이 망가질 수 있습니다. 어쨌든 디렉토리의 특정 명령을 잠그는 것이 가능합니까, 아니면 특정 파일을 잠그는 것이 가능합니까?
예를 들어, 누군가는 다음과 같이 공간을 자유롭게 이동할 수 있어야 합니다.
$ cd ThisDirectory
$ cd ThatDirectory
하지만 다음과 같이 파일을 이동할 수는 없습니다.
$ mv ThisDirectory
$ mv ThatDirectory
특정 파일의 mv 명령을 잠그는 방법이 있습니까?
답변1
모든 사람이 읽을 수 있도록 파일에 대한 권한을 변경하기만 하면 됩니다. 단, 변경할 수는 없습니다.
ls -l
파일 목록을 작성 하는 데 사용하면 다음과 같은 결과가 나타납니다.
ls -l file
-rw-rwxr-- 1 rafael Grp 1620 Aug 18 14:58 file
대시/문자 설정의 첫 번째 세트에서는 세 가지 고유한(상호 배타적이지 않음) 그룹을 허용합니다.사용자(너),그룹,다른 사람(또는 이 컴퓨터/서버의 모든 사람).
따라서 위의 예는 다음과 같이 이해될 수 있습니다.
- It's a file
rw- Owner may read and write
rwx Others in group may read, write and execute
r-- Other users (not in group) may read
다른 사람이 파일을 변경하지 못하도록 하려면 다음을 설정하세요.
chmod go-w file
이렇게 하면 귀하 외에는 누구도 쓸 수 없도록 설정됩니다.
ls -l file
-rw-r-xr-- 1 rafael Grp 1620 Aug 18 14:58 file
다음 대시/문자를 자세히 살펴보겠습니다.
-rw-rwxr-- 1 rafael Grp 1620 Aug 18 14:58 file
첫 번째는 파일 유형(디렉토리, 기호 링크, 명명된 파이프)을 나타냅니다. 그런 다음 세 개의 기호로 구성된 세 그룹이 있으며, 각 그룹은 다음으로 구성됩니다.아르 자형(을 위한읽다), 하나승(을 위한쓰다),아직 하나 있어요엑스(을 위한이자형엑스구현하다) 또는 권한이 비활성화된 경우 해당 위치는 대시로 채워집니다.
디렉터리에는 동일한 권한이 있어야 하며 모든 사용자에 대해 "실행" 권한을 추가해야 합니다. 디렉터리의 "실행"은 디렉터리에 있는 모든 항목에 액세스하는 것을 의미합니다. 디렉터리에 쓰기 가능한 경우 해당 디렉터리의 항목이 삭제되거나 이름이 바뀔 수 있습니다.
명령에서도 chmod
세 부분으로 나뉩니다.가다(그룹 및 기타를 나타냄), "-"(마이너스 기호)는 삭제(권한), 변경(나열) 권한입니다.
그래서
chmod u-wx file # prevent you reading the file or executing it
chmod u+wx file # permit you to read nte file or execute it
chmod ug+rx file # permit you and your group to read or execute it
chmod ugo-rwx file # permit no access, for anybody
마지막 포인트
chmod
또한 재귀도 지원 -R
되므로 myDir이라는 디렉터리가 있는 경우:
chmod -R go-w myDir # protect everything in that directory and its sub directories/files
chmod -R go+rX myDir # grant reading access in that directory and its sub directories/files
이 작업을 수행해야 합니다.
질문해주셔서 감사합니다. 다른 사람들에게도 도움이 되었으면 좋겠습니다!