우분투 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로 설정했을 때인데 이 경우 삼바 패스워드를 변경해도 시스템 패스워드가 바뀌지 않는 것까진 정상이지만 위에서 언급한 ‘리로그인 시 삼바 패스워드가 시스템 패스워드와 동일하게 자동 변경’ 현상이 나타난다는 겁니다. 점점 모르겠네요;