내 서버에 삼바를 설치했고 사용자를 추가하는 두 단계를 생략하기 위해 스크립트를 작성하려고 합니다. 예:
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
.
첫 번째 시도, Unix 사용자가 여전히 존재하지 않습니다.
root@raspberrypi:/home/pi# smbpasswd -a newuser
New SMB password:
Retype new SMB password:
Failed to add entry for user newuser.
두 번째 시도, Unix 사용자가 존재합니다:
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
음... 누락된 링크는 다음과 같습니다.
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
이전 답변에 대해 댓글을 달고 싶었지만 평판 포인트가 부족하여 댓글을 달 수 없었습니다. 이 답변에 전체 내용을 넣으려고 했지만 스팸처럼 보였기 때문에 넣을 수 없었습니다.여기웨이백 머신의 전체 콘텐츠에 대한 액세스이며 다음은 주요 요점의 간략한 버전입니다.
Debian Etch에서 Unix와 Samba 비밀번호 동기화
다음 패키지를 설치하십시오.
# 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 또는 기본 시스템(공통 인증) 인증을 사용하는 다른 서비스를 사용하여 로그인할 때마다 해당 암호가 Unix 암호로 변경됩니다.
아직 Samba 계정이 없는 계정으로 SSH를 사용하여 로그인하면 Added user라는 메시지가 표시됩니다.
이렇게 하면 루트에 대한 Samba 계정도 생성되므로 Samba에서 루트 액세스를 비활성화할 수 있습니다(Debian Etch에서는 기본적으로 비활성화되어 있습니다).
/etc/samba/smb.conf:
invalid users = root
경고: 사용자가 비밀번호를 사용하지 않고 SSH 또는 기타 서비스를 통해 로그인하는 경우(예: 공개/개인 키 인증 사용) 작동하지 않습니다. 이 경우 PAM에는 Samba 비밀번호를 생성하는 데 필요한 일반 텍스트 비밀번호가 없습니다.
알아채다: Samba 비밀번호 업데이트도 요구하도록 일반 비밀번호를 수정하면 현재 로그인한 사용자는 다시 로그인할 때까지 "passwd"를 사용하여 비밀번호를 변경할 수 없습니다. 단, 다음과 같은 비밀번호를 가진 기존 Samba 계정이 이미 있어야 합니다. 유닉스 비밀번호.
삼바 -> 유닉스
비밀번호를 변경할 때 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
이는 "passwd"를 사용할 때와 동일한 메커니즘을 사용하여 Samba를 사용할 때 비밀번호를 변경합니다. 이는 Samba 비밀번호를 변경하기 전에 Unix 비밀번호를 업데이트해야 함을 의미합니다.
새로운 사용자 생성
오류를 방지하려면 chpasswd를 사용하십시오.
# useradd test
# echo “test:newpass” | chpasswd