폴더를 만들었습니다 /hello
. 폴더에는 다음과 같은 권한이 있습니다.
Owner = rwx
Group = rwx
Others = r
그리고 폴더는 그룹 소유 john
이며 그룹에 속합니다 sales
. 이름이 다른 사용자를 만들어 david
그룹에 추가했습니다 sales
.
현재 생성된 파일은 john
다음과 같습니다.
Owner = rw
Group = rw
Others = r
생성된 파일은 david
다음과 같습니다.
Owner = rw
Group = r
Others = r
생성된 파일에 기본적으로 john
이 그룹에 쓰기 권한이 부여되는 것을 원하지 않습니다 .sales
권한 변경을 시도했지만 그 결과 david
디렉터리에 쓸 수 없게 되었습니다.
답변1
첫째, /hello에 대한 다른 사람의 읽기 액세스와 관련하여 읽기 액세스가 전혀 필요하지 않을 수도 있고 /hello에 대한 읽기 및 실행 액세스가 필요할 수도 있습니다. 디렉터리에 대한 실행 권한은 사용자가 디렉터리에서 ls 작업을 수행할 수 있음을 의미합니다. Exec 권한 없이 읽으면 다른 사용자가 디렉터리의 모든 파일을 읽을 수 있지만 파일 이름을 아는 경우에만 가능합니다. 이것은 드뭅니다.
둘째, John이 만든 파일을 다른 사람이 항상 읽을 수 있다면 David가 해당 파일을 읽는 것을 막을 수 없습니다.
umask 명령을 사용하여 사용자가 만든 파일에 대한 기본 권한을 설정할 수 있습니다. John과 David의 .bashrc(또는 이에 상응하는 파일)에 다음 줄을 입력하세요.
umask 7
이제 John이 /hello에 파일을 생성하면 해당 파일이 john의 소유자이자 그룹이 됩니다.
-rw-rw---- 1 john john 0 Jun 28 22:05 foo
David는 파일을 읽을 수 없습니다.
또 다른 가능성은 그룹 이름 sales를 사용하지 않고 John을 David의 그룹에 추가하는 것입니다. 그러면 John은 David의 파일을 읽고 쓸 수 있지만 그 반대는 불가능합니다.
고려해야 할 몇 가지 다른 흥미로운 사항이 있습니다. /hello 디렉토리에 gid 플래그를 설정할 수 있으며, 그러면 John이나 David가 파일을 생성할 때 이들은 sales 그룹에 있게 됩니다. 따라서 둘 다 읽고 쓸 수 있습니다. 당신이 요청한 것은 아니지만 그것이 당신이하는 방법입니다.