삼바에서 smbpasswd의 이상현상

우분투 9.10을 이용해서 삼바로 간단하게 파일 서버를 돌려봤습니다. 설정 파일(/etc/samba/smb.conf)은 거의, 아니 아무것도 건들지 않았고요. 단순히 이미 있는 시스템 사용자에 대해

sudo smbpasswd -a 시스템ID

명령어를 통해 사용자를 추가하고 삼바용 패스워드를 설정한 후 데몬을 가동시켰습니다. 실험 결과 윈도우에서도 매우 잘 공유되는 것을 확인했습니다.

그런데 이상한 것은 우분투에서 로그아웃 후 다시 로그인하면 삼바용 패스워드가 시스템 패스워드와 똑같이 변한다는 겁니다. 로그아웃 했을 때까지는 괜찮은데 다시 로그인하는 순간 기존에 설정한 삼바 패스워드가 시스템 패스워드와 같은 패스워드로 변합니다.

게다가 일반 사용자 권한으로 smbpasswd 명령어를 실행해서 자신의 삼바 패스워드를 바꾸려고 하면

SAMR connection to machine NT_STATUS_ACCESS_DENIED failed. Error was 127.0.0.1, but LANMAN password changed are disabled

라는 에러 메시지와 함께 패스워드 변경에 실패합니다.

또 하나 이상한 것이 보통 /etc/samba 밑에 smbpasswd라는 삼바 패스워드 저장용 파일이 존재해야 하는 것으로 알고 있는데 저에겐 저 파일이 없습니다. find로 찾아봐도 동명의 ‘프로그램(/usr/bin/smbpasswd)’ 말고는 같은 이름의 파일이 시스템에 없습니다.

마지막으로 이건 위 질문과는 별 상관없는 내용인데 smb.conf 설정 파일 내부에 보면 'unix password sync’라는 파라미터가 있던데 코멘트를 보니 yes로 설정하면 삼바 패스워드를 변경 시 시스템의 패스워드도 동일하게 변경해주는 것으로 보입니다만 삼바 패스워드를 변경해도 시스템 패스워드가 전혀 변하지 않더군요. 왜 그런 걸까요?

추가사항
테스트 중 흥미로운 사실을 알아냈습니다. ‘unix password sync’ 파라미터에서 조금 내려가다보면 패스워드 변경 요청 시 /usr/bin/passwd를 사용하는 대신 PAM을 사용하도록 하는 'pam password change’라는 파라미터가 있는데 이걸 yes로 하면 자신이 자신의 삼바 패스워드를 바꿀 수 없는 문제는 사라집니다.

두 파라미터를 모두 yes로 바꾸면 삼바 패스워드 변경 시 시스템 패스워드도 정상적으로 변경되고 그와 함께 삼바 패스워드도 같은 패스워드로 영구 변경됩니다. 단, 사용자가 직접 smbpasswd 명령어를 썼을 때만 그렇고 'sudo smbpasswd 아이디’나 ‘sudo smbpasswd -a 아이디’ 같은 방법으로는 여전히 시스템 패스워드가 바뀌지 않고 삼바 패스워드만 바뀌며 새로운 삼바 패스워드도 리로그인 전까지만 유효합니다. 이것도 왜 그런지는 모르겠습니다;

가장 문제는 본문에서 언급한 현상으로 ‘unix password sync’ 파라미터를 no로 설정했을 때인데 이 경우 삼바 패스워드를 변경해도 시스템 패스워드가 바뀌지 않는 것까진 정상이지만 위에서 언급한 ‘리로그인 시 삼바 패스워드가 시스템 패스워드와 동일하게 자동 변경’ 현상이 나타난다는 겁니다. 점점 모르겠네요;

이거 PAM 세팅을 더 살펴보면 답이 나올거 같네요. PAM을 사용하면 패스워드 인증을 어떻게 할지 일일이 조절해서 쓸 수 있거든요. 보통 쌈바 설명서는 PAM 하고 연동되서 돌아가는 환경에서 설명한게 아닌거라 헷갈리는듯 싶습니다.

/etc/pam.d에서 samba 파일을 다른 곳으로 옮기고 'unix password sync’를 no로 해봐도 똑같더라고요.('pam password change’는 yes와 no 모두 해봤습니다.) 뭐가 어떻게 문제가 되는 건지 영 감이 안 잡힙니다;; /etc/samba/smbpasswd 파일이 없으니 혹시 삼바 패스워드를 보관할 곳이 없어서 디폴트 값으로 시스템 패스워드를 자꾸 사용하는 게 아닐까도 생각해봤지만 그러면 리로그인 전까지 새로 설정한 삼바 패스워드를 시스템이 기억하고 있는 것도 말이 좀 안 되는 거 같고 말이죠…

뭔가 바꾸었으면 삼바 디몬을 재시작 해보세요. 그냥 파일만 바꾸고 변화가 없다고 착각하기 쉽습니다.

물론 재시작했습니다만 현상이 동일하고 특이하게 (다른 파라미터는 모르겠지만)위의 두 파라미터는 데몬을 재시작 안 해도 변경사항이 바로 적용이 되네요. 지푸라기라도 잡고 있기 때문에 물론 재시작은 항상 하고 있습니다.

우분투 포럼을 통해 libpam-smbpass 패키지를 지우는 것으로 해결을 봤습니다.

하지만 왜 그런 현상이 일어나는지, 어떤 설정 변경으로 제대로 작동하게 고칠 수 있는지는 결국 알아내지 못했습니다.

unix password sync와 pam password change도 no로 하고 심지어 /etc/pam.d/samba를 없애고 /etc/pam.d/common-password에서 pam_smbpass.so 파라미터를 없애버려도 안 되더니 결국 패키지를 지우는 것으로 종말을 맞았네요. 최악의 해결 시나리오라 씁쓸합니다;

libpam-smbpass 이게 아마도 우분투 시스템 패스워드하고 삼바의 패스워드하고 일치시키는 역할을 하는 패키지일거에요. 좋은 기능인데 그냥 시스템 패스워드로 삼바를 쓰는것두 좋아보이네요.