Active Directory 환경에서의 Samba파일서버 구성시 권한문제

안녕하세요 초짜리눅서입니다. 주변에 리눅스 쓰는 사람도 없고, 우리회사도 MS추종자 들이라 물어볼 곳은 여기뿐이군요.

간단한 구성을 말씀드리면 윈도우AD서버가 있고, 이번에 파일서버를 도입하는데

소프트웨어 비용만 CAL포함해서 2천만원이 넘어갑니다. ㅋㅋㅋㅋ (아 MS 정말 심하다…)

제가 아무리 리눅스로 만들자고 주장해 봐야 택도 안 먹히고요.

그래도 나름대로 연구를 해보았습니다. 예전에도 삼바로 파일쉐어링 어렵지 않게 했었지만,

이번에는 다릅니다. 조건이 ADS규칙대로 가야 하는거죠. 즉 도메인에 등록된 유저만 접근된다.

이것은 winbind와 kerberos로 해결봤습니다. 문제는 파일엑세스 권한입니다.

smb.conf 에서 디렉토리 설정하다보면 writable = yes 로 해야 파일 생성이 되죠. 반대로 삭제도 되는데…

클라이언트 PC들은 죄다 윈도우죠. 삼바 서버의 디렉토리에 들어가서 파일을 하나 만듭니다.

test.txt 를 만들었다 치고 권한을 수정합니다. 도메인 사용자를 검색해서 everyone의 권한 모두 삭제

domain users도 모든 권한 삭제하고 A라는 다른 유저에게 읽기/쓰기를 줍니다.

허나 저 위에 writable=yes때문에 말이죠… B로 들어가서 이 파일을 지우면 지워집니다 -_- ;;;; 환장합니다.

당연히 지워지겠죠. 위 옵션때문에 말이죠. 그래서 삽질해서 create mode = 0644등 수정해 보았는데

잘 되지 않는군요. 수천만원 발라서 윈도우 서버를 놓느니 내가 리눅스로 해주겠다 라고 할 수 없습니다.

모든 디렉토리와 파일은 부서별, 개인별 등 천차만별로 권한설정을 실제로 해야 하기 때문에 말이죠.

아 저의 무지함에 다시 한 번 좌절합니다. 어떻게 하면 좋을까요.

음… 이해가 잘 안된느데요.

권한을 그룹별 유저별로 설정하시는거 아닌가요 ?

[quote:2hhcqsl8]
read only = yes
create mask = 0775
directory mask = 0775
[/quote:2hhcqsl8]

이렇게 주면 만든 사람과 그룹에 속한 사람만 지우기가 가능하지 않나요 ?

음…오랜만에 달린 답글이군요 ^^; 역시 아직도 풀지 못한 숙제입니다.

참고로 이것은 현재 많은 기업들이 사용하고 있는 액티브 디렉토리 (MS의 디렉토리 서비스입니다.)환경에서의 파일서버 얘기입니다.

권한설정이 유닉스계열의 그것과는 조금 다릅니다.

같은 그룹에 같은 권한을 디폴트로 주고 나서도, 개별 파일이나 디렉토리에 대하여 특정인에 대한 권한 수정이 또 됩니다.

물론 리눅스도 기본 권한 마스크 외에 특정인 권한 추가 등이 됩니다만

삼바를 이용한 이런 경우… 즉 윈도우 클라이언트 에서 삼바파일서버에 접속하여 권한 수정이 되지 않습니다.

첫글의 경우처럼 A와 B가 같은 그룹이고 해당 디렉토리는 그 그룹에 대하여 rw 권한이 있을 때에

A가 특정파일 권한에 B를 삭제해도 여전히 B는 그 파일을 지울수 있습니다. 즉 권한수정이 먹히지 않습니다.

방식이 서로 달라서 안 되는 게 맞기도 합니다만 어떤 꽁수가 없나 찾아보는 중입니다.

가능할 것 같은데 댓글이 많이 없었네요.
저는 파일서버를 안 써봐서 모릅니다. :oops:

회사내에서 그렇게 윈도우즈 추종자들이 많다면…
저 같으면 내버려 두겠습니다.
하자고 하는 사람이 관련된 일을 부가적으로 떠 맡아야 될 수도 있고,
문제 생기면 모든 화살이 저 한테 올테니까요.

리눅스는 그런 용도로 적당하다고 생각하지만
아무리 좋은 의견도 받아들여지지 않으면 소용이 없죠.
그럴 때는 조용히 물러나 있는게 좋습니다.
어차피 회사 돈으로 하는 거니까요.

[quote="akuna":2q2i6scz]가능할 것 같은데 댓글이 많이 없었네요.
저는 파일서버를 안 써봐서 모릅니다. :oops:

회사내에서 그렇게 윈도우즈 추종자들이 많다면…
저 같으면 내버려 두겠습니다.
하자고 하는 사람이 관련된 일을 부가적으로 떠 맡아야 될 수도 있고,
문제 생기면 모든 화살이 저 한테 올테니까요.

리눅스는 그런 용도로 적당하다고 생각하지만
아무리 좋은 의견도 받아들여지지 않으면 소용이 없죠.
그럴 때는 조용히 물러나 있는게 좋습니다.
어차피 회사 돈으로 하는 거니까요.[/quote:2q2i6scz]

네 그래서 요즘 조용히 물러나 있습니다 ^^;

이미 아는 내용이라면 안읽으셔도 되겠지만,
혹시나 해서 지나가는 초짜가 도움이 될지는 모르지만 링크 하나 남기고 갑니다.

Users and Groups 관련 내용, 확인해보세요.
[url:1wo7bvsq]http://www.samba.org/samba/docs/using_samba/ch09.html[/url:1wo7bvsq]

valid users = 에 개개인을 써주면 모든 사용자에게 적용되는 것을 막을 수 있지 않을까요?

[quote="han9k":2gcmvrem]이미 아는 내용이라면 안읽으셔도 되겠지만,
혹시나 해서 지나가는 초짜가 도움이 될지는 모르지만 링크 하나 남기고 갑니다.

Users and Groups 관련 내용, 확인해보세요.
[url:2gcmvrem]http://www.samba.org/samba/docs/using_samba/ch09.html[/url:2gcmvrem]

valid users = 에 개개인을 써주면 모든 사용자에게 적용되는 것을 막을 수 있지 않을까요?[/quote:2gcmvrem]

답변에 감사드립니다. 하지만 역시 그 문제가 아닙니다 ^^;

smb.conf에, 밑에 두줄 써도 전혀 말을 안듣는단 말이죠? :shock:

[code:cio7otgn]create mask = 0644
directory mask = 0644
[/code:cio7otgn]

그럼 security mask와 directory security mask까지 포함해도 안되나요?
[url:cio7otgn]http://samba.org/samba/docs/man/manpages-3/smb.conf.5.html#SECURITYMASK[/url:cio7otgn]
[url:cio7otgn]http://samba.org/samba/docs/man/manpages-3/smb.conf.5.html#DIRECTORYSECURITYMASK[/url:cio7otgn]

음…활발하게 관심가져 주시니 저도 다시 한번 삽질을 할 생각이 돋는군요 . 감사합니다.

구성을 제대로 예를 들어 설명할께요.

MS의 액티브 디렉토리 환경이고 dc는 윈도우 서버입니다.

ad유저 다 등록하고 그룹도 만듭니다. sales,marketing,account,design 뭐 이렇다 치죠.

도메인 정보는 ubuntu.kr 이라 치지요.

사용자는 ken,ryu,honda,guile 이 4명이 sales 팀이라고 치겠습니다.

삼바 서버를 설정할때에 이 사용자인증은 도메인 컨트롤러로부터 받기 위해서 kerberos와 winbind 설정을 합니다.

이건 내용이 기니까 생략하고요. 삼바 서버 자신또한 도메인에 등록합니다.

smb.conf를 수정하여 렐름 설정및 글로벌 설정으로 도메인 유저만 접근이 가능하게 한 후

[sales share]
라는 sales 팀 공용디렉토리를 만들었습니다. 권한은 770 등으로 준다고 칩니다.

이 곳에는 이제 저 sales 팀만 접근이 가능하고 그들은 rwx모두 가능합니다.

말씀하신 valid user설정으로 sales 팀이 아닌 사장님을 추가한다고 칩니다.

valid users="@ubuntukr+sales" "ubuntu.kr+boss" 로 하면 됩니다.

여기까진 아무 문제 없습니다. 오로지 sales팀과 사장님만 들어올수 있으니 말이죠.

근데 요구조건이 조금 더 까다롭습니다.

저 곳에 ken이 xxx.avi라는 야동을 올렸는데 honda와 사장님은 rwx 읽지 못하게 하고 싶다…이런 경우입니다.

사용자는 당연히 윈도우를 사용하고 권한설정을 합니다. honda와 boss를 검색하여 (ldap search) deny를 걸고

적용하면 된것처럼 표시됩니다. 윈도우에서 보기에는요. 근데 honda가 접속해서 보면 야동이 잘 나옵니다.

권한 수정이 먹히지 않습니다. 제 생각에는 삼바에서 정의한 공용디렉토리는 접근은 제어가 되도 권한은 정의할때의

권한이 그대로 지속된다는 것입니다. 윈도우클라이언트에선 수정이 불가능하다 …이것이 제 생각입니다.

— 며칠 뒤져봤는데 대부분의 답변이 삼바를 액티브 디렉토리에 병합하는 것은 쉬우나 약간 덜 완벽하다…였습니다.
시간날때 마다 삽질을 했으나 며칠 지나니 지쳐서, 그냥 포기모드가 되는군요 ^^;
하지만 틈나는대로 조금씩은 알아보고 있습니다. 관심 있으시면 한 번 찾아봐 주시면 감사하겠습니다.

감 잡았습니다. 한번 찾아보겠습니다. :idea:

혹시나 하는 마음에…

윈도우 서버가 ADC 이고 삼바가 BDC라면 삼바에서 설정한 것들은 ADC에서 설정한 룰을 따라가지 않나요 ?

제가 잘못 알고 있는게 아니라면 BDC는 ADC가 살아서 활동하는 경우가 아니라면 ADC의 정보를 백업만 할뿐 아무런 역활을 안하게 됩니다.

그러다가 ADC가 응답이 없거나 문제가 있으면 BDC가 누가 ADC가 될것인가로 선출 경쟁을 하게되는 걸로 알고 있는데요.

제가 바로 알고 있는거라면 결국은 ADC에서의 셋팅에 좌우된다는 것이 아닐까해서요.

(그럼에도 불구하고 ADC에서 설정된 권한이 Client가 삼바서버에 접속시 적용이 안된다면 대략난감;;:wink:

[quote="origin25":35648wi9]혹시나 하는 마음에…

윈도우 서버가 ADC 이고 삼바가 BDC라면 삼바에서 설정한 것들은 ADC에서 설정한 룰을 따라가지 않나요 ?

제가 잘못 알고 있는게 아니라면 BDC는 ADC가 살아서 활동하는 경우가 아니라면 ADC의 정보를 백업만 할뿐 아무런 역활을 안하게 됩니다.

그러다가 ADC가 응답이 없거나 문제가 있으면 BDC가 누가 ADC가 될것인가로 선출 경쟁을 하게되는 걸로 알고 있는데요.

제가 바로 알고 있는거라면 결국은 ADC에서의 셋팅에 좌우된다는 것이 아닐까해서요.

(그럼에도 불구하고 ADC에서 설정된 권한이 Client가 삼바서버에 접속시 적용이 안된다면 대략난감;;;)[/quote:35648wi9]

에…음… 삼바서버가 dc로서의 역할을 하려는게 아닙니다. 그냥 파일서버로만 쓰려는 겁니다.

파일 소유자만 지울수 있게 하는거 우분투에서 그 디렉토리에 sticky bit를 설정해두면 안되나요?

또하나 우분투 삼바에서 ACL을 지원한다던데 ACL을 쓰게해놓고 윈도우에서 그 쉐어의 퍼미션을 정해버리면 안되나요? 원소유자만 지울 수 있게 하는거는 어렵지 않을거 같은데요.

다시 설명드리면 기본권한을 삼바서버에 설정하고 그대로 둡니다.

그리고 윈도우 클라이언트 사용자 본인들이 권한을 이렇게 저렇게 마음껏 바꿀 수 있어야 합니다.

예를 들어,

StreetFighters라는 그룹이 있고 그 그룹에 대한 rwx 공용디렉토리를 생성후 나머지 권한 수정은 윈도우 클라이언트측에서

사용자가 마음대로 바꿀 수 있어야 합니다. (ryu가 chun-li.jpg를 올리고 ken을 제외한 모든사람의 rwx를 삭제,deny걸고 싶다면…)

여기서 막히는 것입니다.

ps: 제가 해보지 않은 것은 딱 한가지 있습니다. 파일시스템을 ntfs로 테스트 해보는 것이지요.

[quote="PassMan":3rzfcs1b]다시 설명드리면 기본권한을 삼바서버에 설정하고 그대로 둡니다.

그리고 윈도우 클라이언트 사용자 본인들이 권한을 이렇게 저렇게 마음껏 바꿀 수 있어야 합니다.

예를 들어,

StreetFighters라는 그룹이 있고 그 그룹에 대한 rwx 공용디렉토리를 생성후 나머지 권한 수정은 윈도우 클라이언트측에서

사용자가 마음대로 바꿀 수 있어야 합니다. (ryu가 chun-li.jpg를 올리고 ken을 제외한 모든사람의 rwx를 삭제,deny걸고 싶다면…)

여기서 막히는 것입니다.

ps: 제가 해보지 않은 것은 딱 한가지 있습니다. 파일시스템을 ntfs로 테스트 해보는 것이지요.[/quote:3rzfcs1b]

삼바에서 ACL를 지원하게끔 해보세요. 그럼 윈도우 클라이언트에서 퍼미션 조절이 가능할거에요.

음 acl로 한 번 해보겠습니다. acl이 nis에서도 적용이 되는지는 생각해 보지 않았습니다.

언제 테스트 할 시간이 될지 모르겠지만 잘하면 이번 주 안에 테스트가 가능할 거 같네요.

오늘 (목요일) 오후에 시간이 나서 다시 도전해 보았습니다.

항상 기본이 중요하더군요. (난 왜 엉뚱한 사이트를 헤메고 다닌 것이냐…)

samba.org를 뒤져보니 nt acl support = yes 라고 하는 옵션이 있었습니다 -_- ;;; 아

똑같지는 않지만 윈도우 클라이언트에서 권한 변경후 확인 해보고 삼바서버측에서 getfacl로 확인해 보니

대충 비슷하게 적용이 됩니다. 조언 감사드립니다.

윈도우에서 보안옵션을 보면 아무 권한이 없는 것처럼 이상하게 나오지만 고급으로 들어가서 보면 제대로 나옵니다.

nt acl support = yes 옵션은 윈도우의 복잡한 각종 권한을 추려서 unix식의 rwx로 변환되어 저장되더군요.

이정도면 일단 권한수정문제는 통과된 듯 합니다.

[u:1011rhjc]그러나 !!! 역시 한 가지 또 숙제가 남았습니다.[/u:1011rhjc]

test라는 디렉토리를 만들고

valid users = @"Fighters+Domain Users" 라 설정하고 저 그룹에 포함된 Dhalsim이라는 유저가 있다고 칩니다.

윈도우클라이언트에서 Dhalsim이 도메인 로그온 후 잘 되는 것 확인,

이후 로컬유저 Dhalsim을 생성해 보았습니다.

로컬유저 Dhalsim으로 저 디렉토리를 들어갔더니… 들어가집니다 -_-;;;;;;;;;;;;; 환장합니다.

참고로 당연히 public = no 이고 아이디가 그룹에 없는 그냥 로컬유저아이디로 들어가려고 하면 아이디/패스 물어봅니다.

smbstatus 로 보면 Domain Users 그룹의 Dhalsim이 들어왔다고 뻥을 치고 있는겁니다.

이것도 다음에 일하다가 시간 좀 나면 뒤져보겠습니다. 이것만 해결되면 이번 서버도입건은 물 건너 갔으나 차후엔 BMT라도

할 수 있지 않을까 생각됩니다.

유저 계정 문제는 우분투의 유저 계정을 윈도 도메인 서버의 계정 정보를 사용하게끔 세팅하는 방법이 있을듯 싶은데 세팅을 잘 해놓으면 로컬 유저를 윈도우 도메인 서버하고 다르게 마구 만들지 못하게 하는게 가능할거에요. 이게 안되면 윈도우/리눅스(우분투) 함께 쓰는 환경에서 난리나겠죠.

이건 Active Directory Ubuntu 이런 키워드로 구글링 하면 쭈악 나옵니다. 예를 들면,

[url:laxouois]https://help.ubuntu.com/community/ActiveDirectoryHowto[/url:laxouois]

제가 이해하기론 리눅스(우분투)가 PDC 서버 역할만 100% 못해내는거지 그 외 역할에서는 윈도우 도메인 환경에서 100% 역할을 하는게 가능하다고 알고 있어요.

네 말씀하신대로 윈도우 2003 서버가 DC 이고 삼바파일서버 그리고

유저들은 모두 윈도우 클라이언트인 구성에 윈도우 유저들이 삼바서버에 들어갈때

정상적인 사용자인지는 삼바서버가 윈도우2003서버에 쿼리하여 인증하는 방식입니다.

제가 쓴 것은 링크주신 것에 또 다른 링크인 winbind를 이용하는 법과 같습니다.

지금 밤이라 아주 (-_-) 대충 읽었는데요 pam이나 kerberos설정이 살짝 의심갑니다.

문서를 정독하고 세팅해야 되는데 대충 막 하다가 대충 찾아보고 대충 수정해서

이 꼴이 된 거 같습니다. 어차피 테스트하는 것이니 무한 삽질이 될 것 같습니다.

그리고 처음질문인 권한 문제는 역시 비슷할 뿐이지 유닉스 방식의 rwx 개념과

윈도우의 방화벽 비슷한 방식은 그냥 포기해야 할듯합니다.

유닉스식의 rwx는 그 권한이 있다 없다 로 단정하나 윈도우 요놈은 방화벽처럼

deny rule 적용후 allow rule이 적용되고 거기다가 권한종류가 -_- ;;;;

읽기,쓰기 뿐 아니라 뭔 수정, 권한보기, 권한수정 을 할 수 있는 권한 등 -_-;

참 MS 복잡하게 하는거 알아줍니다…

그래도 MS의 그 복잡한 삽질 쓰는 사람도 없고 결국 rwx의 유무 설정만으로도

일반적으로 원하는 것은 다 해결되니 일단 만족합니다.