test 환경 ubuntu 14.04
(* 환경은 중요치 않으나 본 문서에 적용된 환경으로 단순 참고용)
가설 : 6개의 각기 다른 계정 A, B, C, D, E, F에 대해 아래와 같은 그룹으로 구분이 되어야 한다.
RW-접속후 읽기/쓰기 가능한 그룹 ( 즉, 업&다운 로드가 가능)
RO-접속 후 읽기만 가능한 그룹 (즉, 다운로드만 가능)
X – 접속은 가능하나 읽기/쓰기가 안되는 그룹 (즉, RW,RO그룹이 생성한 디랙토리및 파일이 보이지 않아야 하며, 업다운로드가 불가능)
위에서 생성된 6개의 계정은 모두 동일한 경로에 존재 하는 디랙토리에 존재 하여야 한다.
다시 말해 A~F 계정으로 ftp접속시 동일한 목적지가 보여야 하는 것!
전체흐름은 다음과 같음.
사용 패키지 설치(본문에서는 vsftpd ) ▷ 전체 조직도의 그룹 배치(여기에서는 RWGroup, ROGroup, XXGroup으로 구분)
▷ 사용자 추가 ▷ 사용자 그룹 귀속 ▷ 사용자 홈디랙토리 생성과 최상의 공유 폴더생성 후 mount <bind>
■ 셋팅 진행
■ vsftp 설치
root@cloud:~# sudo apt-get install vsftp – 레드햇 계열에서는 root@cloud:~# yum install vsftpd
■ 사용자 추가
root@cloud~# useradd A~F
이후 패스워드 지정
■ 그룹 추가
AGroup, BGroup, CGroup 세 그룹을 추가
root@cloud~#groupadd A~C
그룹을 추가한 후 각 그룹에 위에서 생성한 계정을 할당한다.(방법 생략)
RWGroup : rw그룹 : 할당된 계정 : A,B
ROGroup : ro그룹 : 할당된 계정 : C,D
XXGroup : xx 그룹 : 할당된 계정 : E,F
(그룹명의 rw ro xx는 편의 상이지 그 그룹에 일기/쓰기를 미리 정한것이 아님을 확인하자)
/etc/group 이외에도 /etc/passwd 파일 내에서의 GID 도 변경 해야 함을 잊지 말자.( 방법은 생략)
———
※현 테스트중에는 몇개 안되는 계정으로 passwd의 파일을 개별적으로 수정하였으나 이후의 계정 추가등의 작업을 위해서는
다음의 명령어를 실행해줘도 된다.
#usermod -a -G [그룹명] [사용자명]
[ 예시 ]
또한, 특정 그룹에 새로운 그룹맴버를 추가할 수도 있다.
추가 생성된 teskKing계정을 solution 그룹에 넣어보자
root@cloud~# grep testKing /etc/passwd
testKing:x:1005:1005::/home/testKing:
의 계정 정보를 아래 그룹에 넣기가
root@cloud~# grep solution /etc/group
solution:x:707:a,b,c,d,e
root@cloud~# gpasswd -a testKing solution -> gpasswd -a [추가될계정] [그룹명]
Adding user testKing to group solution
root@cloud~#
정상 추가되었는지 확인.
root@CHEF-cloud:/home/TOP_USER# grep solution /etc/group
solution:x:707:a,b,c,d,e
———
■ 최종 목적지 공유 디랙토리 생성
root@cloud~#mkdir HERE
root@cloud~# ls -al
ls: error initializing month strings
drwxr-xr-x 3 root root 4096 8월 14 09:49 .
drwxr-xr-x 3 root root 4096 8월 14 09:49 ..
drwxr-xr-x 2 root root 4096 8월 14 09:49 HERE
drwxr-xr-x 3 root root 4096 8월 14 09:49 A
drwxr-xr-x 3 root root 4096 8월 14 09:49 B
drwxr-xr-x 2 root root 4096 8월 14 09:49 C
drwxr-xr-x 3 root root 4096 8월 14 09:49 D
drwxr-xr-x 3 root root 4096 8월 14 09:49 E
drwxr-xr-x 2 root root 4096 8월 14 09:49 F
최종 도착 디랙토리의 퍼미션은 771로 변경 ( 변경 이유는 다음과 같다. – 리눅스 퍼미션의 규칙은 rwx,rwx,rwx -1번 rwx=사용자 ,2번 rwx=그룹, 3번 rwx=이외의
위에서 생성해준 RW,RO,XX 각각을 적용시키기 위함이다. 그러면 751이어야 되지 않는가? 라는 반문을 던질 수 있으나, 이유는 추후 설정에서 확인 하기로 하자.)
우리는 리눅스의 퍼미션 정책으로 HERE최종 목적지에 4개의 각기 다른 그룹을 소속 시킬 수 없다. (윈도우즈의 경우 OU라는 조직구성으로 그 확장성은 무한하나 리눅스의 경우 그러하다.)
위의 퍼미션은 다음과 같이 변경됨.
drwxr-xr-x 3 root root 4096 8월 14 09:49 .
drwxr-xr-x 3 root root 4096 8월 14 09:49 ..
drwxr-xr-x 2 here RWGroup 4096 8월 14 09:49 HERE
drwxr-xr-x 3 A RWGroup 4096 8월 14 09:49 A
drwxr-xr-x 3 B RWGroup 4096 8월 14 09:49 B
drwxr-xr-x 2 C ROGroup 4096 8월 14 09:49 C
drwxr-xr-x 3 D ROGroup 4096 8월 14 09:49 D
drwxr-xr-x 3 E XXGroup 4096 8월 14 09:49 E
drwxr-xr-x 2 F XXGroup 4096 8월 14 09:49 F
이제 BIND로 각각의 계정을 디랙토리를 HERE 디랙토리로 마운트를 실행 하여 보자
기본 형식은 다음과 같다.
mount –bind [최종적으로 보여질 경로] [최초 시작경로-여기에서는 사용자별 ftp기본경로임]
mount -o remount,rw,bind [최초 시작경로-여기에서는 사용자별 ftp기본경로임]
이를 실행 해준 후 각각의 계정디랙토리의 소유주를 확인 해보라.
모두 HERE 디랙토리와 같은 here.RWGroup 임을 볼 수 있다.
즉 추가된 모든 그룹은 RWGROUP를 따른다.
무엇을 의미하는지는 추후 다시 설명 하도록 하겠다 ( NAS 관련 자료 업로드 예정- 업로드 이 후 본 게시판에 링크 수정 하겠습니다.)
이제 각 계정 마자 접속하여 폴더를 확인 해보시길 바랍니다.
4개의 각기 다른 구룹의 구성원들은 각각의 지정 권한인 FULL권한, rw권한 ro권한, 접속만 가능하며 아무것도 볼수 없는 대기자 권한 등으로 보여질 것입니다.
[polldaddy rating=”7739789″]