삼바 상위 디렉토리, 하위 디렉토리 권한 따로 주는 방법 있나요?
서버용으로 설치한 우분투는 12.04.2.LTS 32bit 이구요..
회사에 디렉토리가 공용, 총무부,관리부,경영부로 나뉘어져 있구요
그 중 공유는 접속한 회사 직원들은 누가나 읽고 쓰기가 가능하고,
총무부, 관리부, 경영부 디렉토리는 각각 그룹별로 접근할 수 있게 됩니다. 단, 경영부의 직원들은 총무부나 관리부 디렉토리에 접근 및 읽기만 가능하구요.
관리자는 모든 디렉토리 접근 및 읽기/쓰기가 가능해요..
현재 디렉토리에 접속하는 그룹은 all, mm, adm, gg 으로 나뉘어지고 all의 경우는 모든 접속자, 관리자는 모든 그룹에 다 포함이 됩니다.
사용자의 id가 예를 들어 11,22,33,44,55,66로 나뉘어 질 경우,
all=11,22,33,44,55,66<--------11이 관리자
mm=11,22
adm=11,33,44
gg=11,55,66
이런 식으로 구성이 되어 있습니다.
경영,총무,관리 디렉토리는 각각 자신의 부서 디렉토리에 접근하면 자기 이름으로 된 디렉토리에서는 자신만이 읽고 쓰기 가능하고, 나머지는 읽기만 가능하고, 부서 디렉토리에서도 공유가 있어서 그 공유 디렉토리는 부서에 해당하는 사람들은 읽고 쓸 수 있어요..
관리자는 모든 권한을 다 가지고, 경영 그룹에 해당하는 사람들은 자신들 부서의 디렉토리와 공유 디렉토리 제외하고는 다 읽기만 가능해요
구성도는
/home/ab/공유
/경영/경영공유
/11
/22
/관리/관리공유
/33
/44
/총무
/55
/66
위에 디렉토리들은 다 리눅스에서 구성한 디렉토리이고..
ab 디렉토리는 접속하는 사람들 중 직원만 접속하게 하려고 775로 퍼미션 정해놓고
그 밑에 공유도 마찬가지인데요..
편의상 접속하면 공유, 관리, 경영, 총무 디렉토리가 모두 보이고, 접속할때만 각 부서별 디렉토리에만 접근가능하게 해서 (관리자, 경영은 모두 접근 가능)
쓰려고 했는데 맨 위에 ab디렉토리를 공유하게 하고 쓰는 조건을 안걸면 ab디렉토리에 접속해서 들어올 경우, 그 밑에 모든 디렉토리에 어떤 조건을 줘도 다 접근 못하게 되구요(smb.conf 수정도 했고, 리눅스 자체에 권한도 777로도 해보고 다 해봤지만...)
그렇다고 쓸 수 있게 조건 주면 다른 부서 혹은 다른 사용자 디렉토리에 쓰기는 되도 수정은 되는 이상한 상황이 벌어지네요;;
예를 들면 관리 디렉토리는 권한이 775이고, 관리공유는 775, 33는 755로 되어 있는데 smb.conf로 관리 디렉토리에 create mask=0644를 주고, 만들면 aa디렉토리에 create mask=0644를 주었다고 해도 만들어지는 파일은 0664를 갖게 되서 44 라는 사람이 들어와서 33 디렉토리에 파일 생성은 못하지만 파일 수정은 할 수 있는 디렉토리와 파일의 권한이 따로 노는 현상이 생겨요;
그래서 혹시 상위 디렉토리에 조건 주면 그걸 따라오는 건가 싶어서 ab, 관리에 아무것도 조건 안주고 그냥 공유만 걸어놓고 제일 밑에 디렉토리인 33 디렉토리에 create mask=0644를 주고, 관리공유에는 create mask=0664를 주면 관리공유에는 자동적으로 create mask 무시하고 0644로 걸리네요;
제일 위에 ab 디렉토리를 777까지도 열어보면 그 때는 775로 파일 생성할 때 마다 다 그렇게 걸리고;
관리자는 11,22,33,44,55,66 디렉토리의 윗부분 까지는 리눅스에서 구성해놓은 디렉토리 구조 그대로 가져가고 싶어서 그 위까지는 관리자 외에는 못건드리게 하려고 하는데 그걸 생각해서 그 위에 디렉토리까지는 writable 과 write 조건을 따로 안주면 디렉토리 전체가 관리자 말고는 쓸 수 없는 상황이 벌어지고;
윈도우에서 접근할 때, 그냥 각자 공유하려는 디렉토리 이름을 뒤에 붙여서 접근하게 해야 smb.conf 파일대로 가네요(33 디렉토리에 접근하려면 \\ip주소\33, 공유 디렉토리에 접근하려면 \\ip\공유) 이런 식으로요..
근데 이러면 나중에 33에 갔다가 공유 가려면 다시 네트워크 드라이브 연결해서 가야 하니까 불편하다고 하네요;
그렇다고 내 네트워크 환경을 통해서 들어가면 접근은 되지만 관리자 빼면 모든 사람들 접근이 안되고;(근데 직원들 대체적으로 이렇게 접속한다네요; )
리눅스 쪽을 손봐야 하는지 smb.conf 쪽을 보는건지 다른곳도 건드려야 하는지 모르겠네요;
일단 현재 수정한 smb.conf예요 ㅠㅠ
[공유]
comment=공유 directory
path=/home/ab/공유
valid users=@all
writable=no
write list=@all
force create mask=0664
force directory mask=0775
force group=all
guest ok=no
[관리]
comment=관리 directory
path=/home/ab/관리
valid users=@adm
guest ok=no
[관리공유]
comment=관리공유 directory
path=/home/ab/관리/관리공유
valid users=@adm
writable=no
write list=@adm
guest ok=no
force create mask=0664
force directory mask=0775
force group=adm
browsable=no
[33]
comment=aa directory
path=/home/ab/관리/33
valid users=@adm @mm
writable=no
write list=33 11
;guest ok=no
force create mask=0664
force directory mask=0775
force group=adm
browsable=no
상위 디렉토리에 create mask 주고 그 밑에 하위 디렉토리에 따로 create mask 주는 방법이 따로 있나요? ㅠㅠ
force create mask 이런 옵션들도 이미 써봤구요.. 먹히지않아서요;
이건 검증을 해야 해서요...
도움 드릴 수 있는건 테스트 뿐 이네요.
상관은 없지만 정리하는겸해서 이미지로 만들어 봤습니다.
리눅스를 찾으려니... 어떤걸 써야 할지도 모르겠고... 게다가. 너무 무겁고...
VMWare가 시디키 때문에 사용하기 힘드네요... 걍 Virtual Box나 Virtual PC 쓰는게 편하네요. ㅡ_ㅡ;;
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
우선적으로 참고하시라는 의미에서 저희 회사에서
우선적으로 참고하시라는 의미에서 저희 회사에서 쓰고있는 smb.conf 파일 보여드리겠습니다.
[global] (기본설정)
6 workgroup = \\\\
7 server string = \\\\
8 security = user
9 guest ok = no
10 guest account = nobody
11 encrypt passwords = yes
12 smb passwd file = /etc/samba/smbpasswd
13 unix password sync = yes
14 passdb backend = tdbsam
15 # map to guest = pcguest
16 hosts allow = 192.168.1.
17 log file = /var/log/samba/%m.log
18 max log size = 20480
19 client code page = 949
20 unix charset = euc-kr
21 dos charset = CP949
22 domain master = no
23 logon home = \\%L\profiles\.msprofile
24 logon path = \\%L\%U\.9xprofile
25 logon drive = P:
26 idmap uid = 16777216-33554431
27 idmap gid = 16777216-33554431
28 socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
29 remote browse sync = 192.168.1.255
30 remote announce = 192.168.1.255
31 username map = /etc/samba/smbusers
위의 설정은 기본 설정이구요
폴더 설정입니다. (중요정보들은 삭제했습니다)
[PJ]
45 comment = Project
46 create mask = 0775
47 directory mask = 0775
48 path = /\\\\
49 guest ok = no
50 read only = Yes
51 writeable = no
52 public = no
53 browseable = yes
54 read list = @sbusr
55 write list = @sbusr
위의 폴더 설정후 리눅스에서 디렉토리 설정(디렉토리에 대한 그룹설정)으로 하시면 간단히 해결하실 수 있을것입니다.
당연히 각 자리마다 리눅스 삼바아이디를 부여해서 관리를 하시는것이 제일 편하실 것이라 생각합니다.
리눅스에서 폴더 그룹권한에 대해서(유저그룹 포함) 조금만 공부하시면 충분히 쉽게 해결하실수 있으리라 봅니다
그리고 \\아이피주소\폴더 이런식으로 하는것보다
그리고 \\아이피주소\폴더 이런식으로 하는것보다 서버의 네이밍을 정해서 하는것이 있습니다.
DNS 주소인지 햇갈리네요 ^^;;;
그리고 네트워크로 잡아서 쓴다고 하시면 전체적으로 알려주면서 경로를 잡아서 하시면 편하실것입니다 ^^;;;
댓글 달기