为 Samba 创建一个单独的口令文件。要根据你的现存 /etc/passwd 文件来创建,在 shell 提示下键入以下命令:
cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd
如果系统使用 NIS,键入以下命令:
ypcat passwd | mksmbpasswd.sh > /etc/samba/smbpasswd
mksmbpasswd.sh 脚本和 samba 软件包一起被安装在你的 /usr/bin 目录上。
改变 Samba 口令文件的权限许可,因此只有根用户才有读写权限:
chmod 600 /etc/samba/smbpasswd
这个脚本不会把用户口令复制到新文件,Samba 用户账号在没有设置口令之前不会被激活。为了更高的安全性,建议你把用户的 Samba 口令设置为不同于用户的口令的口令。要设置每个 Samba 用户的口令,使用以下命令(把 username 替换为每个用户的用户名):
smbpasswd username
加密口令必须被启用。由于它们被默认启用,它们不必在配置文件中被特别启用。不过,它们也不能在配置文件中被禁用。在 smb.conf 文件中,请确定以下行不存在:
encrypt passwords = no
如果它确实存在,请在行首加一个分号(;)来把它变成注释,这样该行就会被忽略,加密口令就会被启用。如果该行存在但没有被注释掉,请删除它或把它变成注释。
要在配置文件中特别启用加密口令,给 /etc/samba/smb.conf 文件添加以下几行:
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd在 shell 提示下键入 service smb restart 来确定 smb 服务被启动
当使用了 passwd 命令后,pam_smbpass PAM 模块能够被用来同步用户的 Samba 口令和他们的系统口令。如果用户引发了 passwd 命令,他用来登录到红帽企业 Linux 系统的口令以及他要连接 Samba 共享所必须提供的口令就会被改变。
要启用这个功能,把以下行添加到 /etc/pam.d/system-auth 的 pam_cracklib.so 之下:
password required /lib/security/pam_smbpass.so nullok use_authtok try_first_pass