사용자가 Samba 비밀번호를 변경하는 방법


10

약 5 명의 사용자 (보안 = 사용자)를위한 Samba 서버가 있으며이 사용자가 개입하지 않고 비밀번호를 변경하여 다음 아이디어를 얻을 수있는 방법을 원합니다. 안전한가요? 더 간단한 접근 방식이 있습니까? 우리는 이것을 위해 SWAT를 사용했지만 더 이상은 없습니다.


서버에서 : 제한된 사용자 작성 (/ bin / rbash + PATH를 단일 디렉토리로)

$ sudo adduser --shell /bin/rbash pwchange

$ cat /etc/passwd
  pwchange:x:1001:1001:pwchange,,,:/home/pwchange:/bin/rbash

$ sudo vi /home/pwchange/.bashrc
  Add:
  export PATH=/usr/local/pwchange

$ sudo ln -s /usr/bin/smbpasswd /usr/local/pwchange/smbpasswd

이 아이디어는 pwchange 사용자가 sambpasswd 명령 만 실행할 수 있다는 것입니다. Samba 사용자의 유닉스 계정에는 암호가 없습니다 (예 :이 계정을 통한 로그온은 허용되지 않음). 삼바 사용자는이 제한된 계정 만 셀프 서비스 삼바 비밀번호 변경에 사용할 수 있습니다. 서버를 탐색하지 않습니다!


클라이언트 : 터미널 또는 퍼티를 통해 Samba 비밀번호 변경 (Windows)

user1@A3700:~$ ssh pwchange@192.168.1.14

pwchange@V220:~$ smbpasswd -U user1
Old SMB password:
New SMB password:
Retype new SMB password:
Password changed for user user1

그러나 나는 smbpasswd사용자와 관리자 모두가 자신의 암호를 변경하기위한 것이라고 생각 했습니다 ... 그게 당신이 원하는 것입니까?
George Udosen

이 경우 사용자의 Unix 계정에 비밀번호가 없으므로 user1은 user1@192.168.1.14로 로그온 할 수 없습니다. Samba 서버는 "security = user"로 설정되었고 파일 제한은 smb.conf에 설정되었습니다. 기본 Unix 파일 사용 권한이 Samba 및 Unix 파일 사용 권한의 조합보다 더 관대 한 사용자이므로 Unix 로그온이 허용되지 않았습니다 (Unix 확장 ACL은 사용되지 않았습니다)
brucehohl

내 대학에는 사용자가 ID 및 SMS 확인을 사용하여 인증 할 수있는 셀프 서비스 포털이 있으며, 백그라운드에서 smbpasswd 명령
Rabin

답변:


1

그들에게 동일한 더미 계정에 대한 모든 액세스 권한을 부여하는 것은 현명하지 않습니다. 아무것도 액세스하지 못하도록 잠그더라도 smbpasswd여전히 서로의 비밀번호를 변경할 수 있습니다. 그리고 항상 악의적 인 권한 상승 공격의 가능성이 있습니다.

본질적으로 원하는 것처럼 들리는 것은 smbpasswd계정과 동등한 권한을 가지면서 자신의 사용자 계정 에서만 명령 을 실행할 수 있도록하는 것 nologin입니다.

이것은 sshd_config에서 "ForceCommand"옵션을 사용하여 수행 할 수 있습니다.

이 시도:

  1. Samba 계정 멤버십이있는 각 사용자에게 동일한 그룹을 부여하십시오. 이 예에서는 "sambaOnly"라고하겠습니다.

    #From Root
    groupadd sambaOnly
    usermod -a -G sambaOnly Joe
    
  2. 다음으로, sshd_config 파일을 다음과 같이 변경합니다 :

    #From Root
    cat << EOF >> /etc/ssh/sshd_config
    Match Group sambaOnly
        ForceCommand smbpasswd
    EOF
    

프레스토 악장. 내 이해 (및 간단한 테스트)에서 SSH를 통해 로그인하면 자동으로 smbpasswd명령이 실행되고 그에 따라 프롬프트가 표시됩니다. 그들은 쉘 액세스 권한을 갖지 못할 것입니다. 명령이 완료되면 자동으로 연결이 끊어지고 다시는 쉘 액세스 권한을 갖지 않습니다.

이것이 기계에 대한 모든 액세스를 원격으로 제거한다는 것을 100 % 확신하지 못합니다. 예를 들어, 동일한 시스템에서 다른 SSH 서버를 실행하지 않는 ForceCommand경우 액세스 제어 구성에 따라 해당 서버를 통해 로그인 할 수 있습니다.

또한 터미널에 물리적으로 액세스 할 수있는 경우 로그인 할 수 있습니다.

그러나 대부분의 상황에서는 이것이 상당히 강력한 액세스 제어라고 생각합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.