데비안 WHeezy에서 Unix 비밀번호가있는 Samba 동기화 비밀번호


11

내 서버에 samba를 설치하고 사용자를 추가하는 두 단계를 아끼는 스크립트를 작성하려고합니다.

adduser username
smbpasswd -a username

smb.conf상태 :

# This boolean parameter controls whether Samba attempts to sync the Unix
# password with the SMB password when the encrypted SMB password in the
# passdb is changed.
   unix password sync = yes

더 읽어 보면 pdbedit맨 페이지로 이동했습니다.

   -a     This option is used to add a user into the database.  This  com-
          mand needs a user name specified with the -u switch. When adding
          a new user, pdbedit will also ask for the password to be used.

          Example: pdbedit -a -u sorce
          new password:
          retype new password

          Note

          pdbedit does not call the unix password syncronisation script if
          unix password sync has been set. It only updates the data in the
          Samba user database.

          If you wish to add a user and synchronise the password that  im-
          mediately, use smbpasswd’s -a option.

그래서 ... 이제 smbpasswd다음 과 같이 사용자를 추가하기로 결정했습니다 .

첫 번째 시도로, 유닉스 사용자는 여전히 존재하지 않습니다 :

root@raspberrypi:/home/pi# smbpasswd -a newuser
New SMB password:
Retype new SMB password:
Failed to add entry for user newuser.

두 번째 시도, 유닉스 사용자가 존재합니다 :

root@raspberrypi:/home/pi# useradd mag
root@raspberrypi:/home/pi# smbpasswd -a mag
New SMB password:
Retype new SMB password:
Added user mag.
# switch to user pi, and try to switch to mag
root@raspberrypi:/home/pi# su pi
pi@raspberrypi ~ $ su mag
Password: 
su: Authentication failure

그래서 지금 나 자신에게 묻고 있습니다.

  1. 삼바 비밀번호를 유닉스 비밀번호와 어떻게 동기화합니까?
  2. 삼바 비밀번호는 어디에 저장됩니까?

누군가 나를 깨우칠 수 있습니까?


암호는의 데이터베이스에 저장되어 있습니다. 암호는 /var/lib/samba/있다고 생각 secrets.tdb하지만 확실하지 않습니다. 당신의 이전 질문에 관해서는, 쉬운 방법이 있는지 의심합니다.
Zoredache

답변:


10

글쎄 ... 누락 된 링크는 다음과 같습니다.

 libpam-smbpass

따라서이 패키지를 설치하면 예상대로 작동합니다. 인터넷의 장기 기억은 때때로 부분 정보를 가져옵니다. 그래서이 문제를 해결하기 위해 여기에 삼바 암호를 유닉스 암호와 동기화 하는 방법 과 내 자신의 테스트 를 올바른 링크로 게시 하고 있습니다.

root@raspberrypi:/home/pi# passwd mag2
passwd: user 'mag2' does not exist
root@raspberrypi:/home/pi# useradd mag2
root@raspberrypi:/home/pi# echo "mag2:12345" | chpasswd
root@raspberrypi:/home/pi# smbclient -L localhost -U mag2
Enter mag2's password: 
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.6]

    Sharename       Type      Comment
    ---------       ----      -------
    print$          Disk      Printer Drivers
    IPC$            IPC       IPC Service (raspberrypi server)
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.6]

    Server               Comment
    ---------            -------
    RASPBERRYPI          raspberrypi server

    Workgroup            Master
    ---------            -------
    WORKGROUP            
root@raspberrypi:/home/pi# su pi
pi@raspberrypi ~ $ su mag2
Password: 
Added user mag2.

mag2@raspberrypi:/home/pi$ 

나는 이것이 다른 누군가를 돕기를 바랍니다.

2017 업데이트 :

libpam-smbpass더 이상 사용되지 않습니다 . 대체 된 것이있는 것 같습니다 pam_winbindd. 패키지 libpam-winbind를 설치하여 얻을 수 있습니다. 그러나 이것은 여전히 ​​삼바 암호를 유닉스 암호와 동기화하지 않습니다. 대신 Windows 인증 서버 (AD)를 사용하여 UNIX로 인증 할 수 있습니다. https://wiki.samba.org/index.php/Setting_up_Samba_as_an_Active_Directory_Domain_Controller 에서 정보를 찾을 수 있습니다.


2
링크 우리는이 질문에 대해 가치있는 정보를 넣어 이유입니다, 분류됩니다 /
ubiquibacon

@ubiquibacon이 답변을 편집하여 링크가 Wayback Machine의 보관 된 버전을 가리 키도록합니다 (Internet Archive 직원의 훌륭한 작업 덕분에).
Anthony Geoghegan

1
pam_smbpass는 더 이상 사용되지 않는 것으로 보입니다
alex.forencich

예, libpam-smbpass더 이상 데비안 9.1 시스템을 찾을 수 없으며 저에게도 효과가 없습니다. 이 간단한 질문이 여러 번 요청 되어도 여전히 답이없는 것은 어떻습니까?
Frank Breitling

@ OSz123도 CentOS7 libpam-winbind에서 찾을 수 없습니다.
CHENJIAN

3

이전 답변에 댓글을 달고 싶었지만 평판이 부족하여 답변을 할 수 없었습니다. 이 답변에 전체 내용을 넣으려고 시도했지만 스팸처럼 보였습니다. 여기 웨이 백 머신에서 전체 콘텐츠에 대한 액세스이며, 다음은 주요 포인트의 간단한 버전입니다 :

데비안 에칭에서 유닉스와 삼바 비밀번호 동기화

다음 패키지를 설치하십시오.

# apt-get install libpam-smbpass smbclient

유닉스-> 삼바

사용자가 Unix 비밀번호를 변경할 때마다 Samba 비밀번호를 업데이트하려면 다음을 변경하십시오.

/etc/pam.d/common-password :부터

password   required   pam_unix.so nullok obscure min=4 max=8 md5

password   requisite**  pam_unix.so nullok obscure min=4 max=8 md5
password   required   pam_smbpass.so nullok use_authtok try_first_pass

pam_unix에 대해 "required"를 "requisite"로 변경하면 Unix 비밀번호 변경에 실패하면 플러그인 실행이 즉시 종료됩니다.

이것이 작동하려면 사용자는 이미 Samba 계정을 가지고 있어야하며 Samba 비밀번호는 Unix 비밀번호와 일치해야합니다. 반드시 그런 것은 아니기 때문에 변경해야합니다

/etc/pam.d/common-auth :부터

auth    required        pam_unix.so nullok_secure

auth    requisite       pam_unix.so nullok_secure
auth    optional        pam_smbpass.so migrate

Samba 사용자가 없으면 SSH를 작성하고 사용자가 SSH 또는 기본 시스템 (공통 인증) 인증을 사용하는 다른 서비스를 사용하여 로그인 할 때마다 비밀번호를 Unix 비밀번호로 변경합니다.

Samba 계정이없는 계정으로 SSH를 사용하여 로그인 할 때 사용자 추가 메시지가 표시됩니다.

루트에 대한 Samba 계정도 생성되므로 Samba에서 루트 액세스를 비활성화 할 수 있습니다 (Debian Etch는 기본적으로 비활성화되어 있음).

/etc/samba/smb.conf :

invalid users = root

주의 사항 : 사용자가 비밀번호를 사용하지 않고 (예 : 공개 / 개인 키 인증을 사용하여) SSH 또는 기타 서비스를 통해 로그인하는 경우 작동하지 않습니다. 이 경우 PAM에는 Samba 암호를 만드는 데 필요한 일반 텍스트 암호가 없습니다.

주의 : Samba 암호 업데이트를 요구하기 위해 공통 암호를 수정하는 경우, 현재 로그인 한 사용자는 암호가 동일한 기존 Samba 계정이없는 한 다시 로그인 할 때까지 "passwd"를 사용하여 암호를 변경할 수 없습니다. 유닉스 암호로.

삼바-> 유닉스

암호를 변경할 때 Samba에 PAM을 사용하도록 지시합니다.

/etc/samba/smb.conf :

unix password sync = yes
pam password change = yes

/etc/init.d/samba restart를 사용하여 Samba를 다시 시작하십시오.

@include common-password를 추가하여 Samba에서 비밀번호 변경을 지원하도록 PAM을 구성하십시오.

/etc/pam.d/samba :

@include common-auth
@include common-account
@include common-session
@include common-password

Samba를 사용할 때 "passwd"를 사용할 때와 동일한 메커니즘을 사용하여 비밀번호를 변경합니다. 즉, Samba 비밀번호를 변경하기 전에 Unix 비밀번호를 업데이트해야합니다.

새로운 사용자 만들기

오류를 피하려면 chpasswd를 사용하십시오.

# useradd test
# echo “test:newpass” | chpasswd

pam_smbpass는 더 이상 사용되지 않는 것으로 보입니다
alex.forencich

@Joru CentOS7에서 samba 4.9.1의 소스 컴파일에 의해 파일이 없습니다 pam_smbpass.so. 도와주세요? 링크 : stackoverflow.com/questions/52932070/…
CHENJIAN

@CHENJIAN SAMBA.ORG 내가 그것을 삼바 3.9.16이었다 찾을 수 마지막으로 삼바 버전 그래서 SAMBA (4)와 소스에서 제거 pam_smbpass.so
악셀 베르너
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.