SGID는 파일을 실행할 때 그룹의 권한으로 실행할 수 있게 해주고, 공유 디렉토리를 설정할 때 사용한다.
여기서는 공유 디렉토리를 생성할 때를 생각해본다.
예를 들어 영업부 직원들만 들어갈 수 있는 디렉토리를 만들어 보자.
물론 영업부 직원들의 계정은 sales라는 그룹에 속해있다고 가정하고 말이다.
1. 영업부의 디렉토리를 생성한다.
`mkdir sales`
2. 생성한 디렉토리의 그룹 소유권을 sales로 변경한다.
`chgrp sales sales`
3. 디렉토리 접근권한을 변경한다.
`chmod 2770 sales`
SGID를 이용해서 접근권한을 변경했다.
여기서 의문점은 굳이 SGID를 사용해야 하는 것이다.
어차피 sales의 그룹 소유권이 sales니까 기타 사용자만 접근하지 못하게 설정하면 되는 것이라고 생각될 수 있다.
맞는 말이기는 하나, 한 가지 문제점이 있다.
예를 들어, goodsales라는 계정의 영업부 직원이 생성된 sales디렉토리에서 파일을 생성했다고 하면 그 파일의 사용자 소유권과 그룹 소유권은 모두 goodsales에 속하게 된다.
리눅스에서는 사용자 생성시 사용자의 기본 그룹이 같이 만들어진다.
즉, 그 사용자의 개인 그룹이 생긴다는 말이다.
그래서 goodsales가 만든 파일은 그 사람외에는 접근하지 못하게 될 수 있다.
이렇게 되면 공유 디렉토리를 만든 의미가 없어지므로, 그 파일을 영업부 전체가 접근하게 하려면
SGID를 써야한다는 것이다.
SGID를 쓰면 goodsales가 파일을 만들었으면 그룹 소유권이 sales에 있으므로 다른 영업부 직원들도 접근 가능해진다.
SGID는 절대모드에서는 2000을 쓰고, 상대모드에서는 g+s라고 해주면 되겠다.
여기서는 공유 디렉토리를 생성할 때를 생각해본다.
예를 들어 영업부 직원들만 들어갈 수 있는 디렉토리를 만들어 보자.
물론 영업부 직원들의 계정은 sales라는 그룹에 속해있다고 가정하고 말이다.
1. 영업부의 디렉토리를 생성한다.
`mkdir sales`
2. 생성한 디렉토리의 그룹 소유권을 sales로 변경한다.
`chgrp sales sales`
3. 디렉토리 접근권한을 변경한다.
`chmod 2770 sales`
SGID를 이용해서 접근권한을 변경했다.
여기서 의문점은 굳이 SGID를 사용해야 하는 것이다.
어차피 sales의 그룹 소유권이 sales니까 기타 사용자만 접근하지 못하게 설정하면 되는 것이라고 생각될 수 있다.
맞는 말이기는 하나, 한 가지 문제점이 있다.
예를 들어, goodsales라는 계정의 영업부 직원이 생성된 sales디렉토리에서 파일을 생성했다고 하면 그 파일의 사용자 소유권과 그룹 소유권은 모두 goodsales에 속하게 된다.
리눅스에서는 사용자 생성시 사용자의 기본 그룹이 같이 만들어진다.
즉, 그 사용자의 개인 그룹이 생긴다는 말이다.
그래서 goodsales가 만든 파일은 그 사람외에는 접근하지 못하게 될 수 있다.
이렇게 되면 공유 디렉토리를 만든 의미가 없어지므로, 그 파일을 영업부 전체가 접근하게 하려면
SGID를 써야한다는 것이다.
SGID를 쓰면 goodsales가 파일을 만들었으면 그룹 소유권이 sales에 있으므로 다른 영업부 직원들도 접근 가능해진다.
SGID는 절대모드에서는 2000을 쓰고, 상대모드에서는 g+s라고 해주면 되겠다.
[출처] SGID를 사용해서 공유 디렉토리 만들기|작성자 이경모
'RHCE' 카테고리의 다른 글
mount (0) | 2009.06.02 |
---|---|
/proc/partitions (0) | 2009.06.02 |
여러 개의 디렉토리 한 번에 만들기 (0) | 2009.06.02 |
Default Editor 변경하기 (0) | 2009.06.02 |
패스워드 만료 정책 (0) | 2009.06.02 |