
목적:루트에 폴더를 만들고 그룹에 chown하고 사용자를 그룹에 추가합니다. 하지만 사용자가 너무 넓은 권한을 얻습니다.
다음을 고려하세요:
# as root
# we need a user group
groupadd team1
# we need a shared folder
mkdir /project1
chown root:team1 /project1
chmod 770 /project1
# we need users - and they get set pw elsewhere :)
for i in bob tina jim joy; do useradd $i; done
# we add them to the project group 'team1' that gives access to the shared folder
usermod -aG team1 [username]
불가사의하게도 사용자는 jim
vim에서 파일을 생성할 수 있고 /project1
, 사용자는 joy
vim에서 해당 파일을 열고, 변경하고, 저장하거나, 파일을 삭제하려고 시도할 수 있으며, 이러한 작업은 이러한 의도인지 확인한 후 수행됩니다.
질문:이것이 올바른 행동으로 간주됩니까? 권한이 폴더 자체로 제한되어서 는 안 되지만 chmod 770 /project1
, 보이는 것처럼 해당 폴더 내의 파일로 반복되어서는 안 되나요?
답변1
이는 정상적인 동작입니다.
디렉터리에 대한 770 권한을 사용하면 디렉터리 소유자와 디렉터리 그룹의 모든 구성원이 디렉터리를 읽고, 쓰고, 검색할 수 있습니다. 이는 그룹의 모든 구성원이 파일 자체의 권한 및 소유권에 관계없이 디렉터리의 파일을 삭제하고 새 파일을 만들 수 있음을 의미합니다. 이것이 바로 jim
파일에 어떤 권한이 설정되어 있든 관계없이 joy
해당 파일을 삭제하고 다른 파일로 바꿀 수 있다는 것입니다 vim
.
표준 Unix 권한 모델 내에서 디렉터리에 대한 추가 권한을 설정할 수 있습니다.
여기서 첫 번째 유용한 점은 삭제를 제한하는 고정 비트입니다. 파일은 소유자, 디렉터리 소유자 또는 root
.
chmod g+t /project1
이 설정이 완료되면 파일을 joy
삭제할 수 없습니다 jim
.
두 번째 유용한 권한은 sgid
비트입니다. 이 권한은 디렉터리의 그룹이 디렉터리에 새로 생성된 파일에 적용되도록 합니다.
chmod g+s /project1
두 가지를 결합하려면 다음을 실행하십시오.
chmod 3770 /project1
바라보다UNIX 권한 및 파일 유형 이해더 알아보기.