메뉴 닫기

계정 그룹에 따른 BIND설정으로 공유 디랙토리 사용-

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″]

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다