Samba 平臺搭建和用戶自行修改密碼環境搭建筆記
系統:CentOS? release? 6.5 (Final)x86_64
軟件: samba?????????????????? #服務端
samba-client????? #客戶端
samba-common?? #通用工具和庫
Apache:httpd
Web: changepassword-0.9.tar.gz????? #需 GCC 編譯源碼包,make 安裝
硬件:Vmware10
說明:工作組環境下的 Samba
Samba 平臺搭建注意事項及遇到故障的解決方法
1.? 共享目錄權限設置及所屬組員、組的關系;
2.? Samba 服務的核心配置文件 smb.conf.中共享目錄參數設置與上述 1 要對應,
否則出錯;
3.? 用戶和組創建細節:
3-1 系統創建 OS 賬戶(不能登陸 OS)→創建密碼??? #changepassword 程序修改密碼;
3-2 Samba 用戶、密碼創建????? #smbpasswd 創建訪問文件服務用戶及密碼;
3-3 創建組→用戶加入組?????????????????? #不同服務應用需求用戶,加入不同的組;
4.? 單機環境測試 samba 服務:
4-1 smbclient //IP/共享目錄? –U? 賬號????????????? #輸入密碼進入目錄
4-2 smb>dir→list??????????????????? #讀取文件及文件夾
4-3 testparm 測試 smb 加載是否正常
4-4 service? smb status??????????????????? #檢測 smbd 服務運行狀態
5.? 設置 smb 服務開機運行:chkconfig –level 345 smb on
Samba 服務 windows 平臺不能訪問解決方法:
1.? 關閉 Selinux 安全機制
#vi /etc/selinux/config??????? 修改 SELINUX=disabled????? #關閉安全檢測
2.? 防火墻添加規則開放 137.138.139.445 端口
#vi /etc/sysconfig/iptables
添加以下規則
-A RH-Firewall-1-INPUT -m state --state? NEW -m udp -p udp --dport? 137 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state? NEW -m udp -p udp --dport? 138 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state? NEW -m tcp -p tcp --dport? 139 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state? NEW -m tcp -p tcp --dport? 445 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state? NEW -m tcp -p tcp --dport? 80 -j ACCEPT
說明一點:
samba3.x? 的早期 版本默 認使用? tdb? 庫 也就是? smb.conf?? 默 認設定為? passdb backend??? =?? tdbsam? , 只 需 要 注 釋 掉 該 行 添 加?? smb?? passwd??? file?? =/etec/samba/smbpasswd 即可使用 smbpasswd 存儲加密密鑰。從 samba3.5.6 開始 samba 規范了 passdb? backend 參數的使用,取消了 smb? passwd? file 設定, 如果簡單注釋掉 passdb? backend 參數,密鑰文件也不會被存儲到 smbpasswd。所 以很多人說怎么修改 smb.conf 的配置,smbpasswd 文件都無法生成,就算手工創建, 內 容也 是? 0? 字 節 。 要 用 傳統 的 文 本方 式 存 儲 只 需這 樣 設 定? passdb?? backend?? = smbpasswd:/etc/samba/smbpasswd ( 后面 跟 的是 絕對 路 徑 ), 不要 再 寫? smb passwd? file = /etc/samba/smbpasswd,該參數已經不適用于新版本的 samba 。
Apache:Httpd 服務安裝遇到問題和解決方法:
1.? 中文亂碼解決:
把? httpd? 的配置文件? /etc/httpd/conf/httpd.conf 中??? :
1-1???? AddDefaultCharset UTF-8 改為 AddDefaultCharset zh_CN.UTF-8
或者 AddDefaultCharset 的值改為 GB2312
1-2???? 防火墻端口開放添加規則:80 端口開放
Web-changepassword 客戶端安裝遇到問題解決方法:
1-1? 在安裝過程中可能會遇到以下一個報錯 collect2:ld returned? 1 exit status make:***[changepassword.cgi] Error 1
這是因為缺少一個依賴包的原因,這個依賴包就在 changepassword-0.9.tar.gz 的目錄包里, 解壓后在目錄里有一個 smbencrypt 的目錄,進入該目錄,目錄里有一個
libdes-4.0.tar.gz 文 件,這個是 changerpassword 的一個依賴包,解壓縮
tar -zxvf libdes-4.0.tar.gz 解壓后有一個 des 目錄,進入后 make
cp libdes.a? ../ 系統提示: cp:是否覆蓋../libdes.a?
Enter 確認覆蓋,退回 changepassword 目錄
1-2 編譯 changepassword 源碼包自定義路徑等:
./configure???? --enable-cgidir=/var/www/cgi-bin???? --enable-language=Chinese
--enable-smbpasswd=/etc/samba/smbpasswd???????????????? --disable-squidpasswd
--enable-logo=samba.jpg
注意:logo 圖片只能放在/var/www/html 目錄下調用才會生效,html 是 cgi-bin 默認目錄
注:
--enable-cgidir=/var/www/cig-bin:指定 httpd 下的 cig-bin 路徑
--enable-language=Chinese:設定語言為中文
--enable-smbpasswd=/etc/samba/smbpasswd:指定 smbpasswd 路徑
--disable-squidpasswd:關閉 squid 密碼(changepassword 是支持 squid 認證用戶 密碼更改的)
Samba 用戶系統密碼修改與系統賬號密碼同步:重要修改以下文件和配置參數
1. 修改 samba/smb.conf 配置
security = user
passdb? backend? = smbpasswd:/etc/samba/smbpasswd pam password change = no
passwd?? chat?? =?? **NEW*UNIX*password*? %n\n?? *Retype*new*UNIX*password*?? %n\n
*successfully*
passwd? program? = LANG=en_US /usr/bin/passwd %u unix password sync = yes
2.專門用于使用 pam 來管理密碼的模塊:
pam_smbpass.so 位置位于:
x86 : /lib/security/pam_smbpass.so?????????????? #32 位系統 x64 : /lib64/security/pam_smbpass.so????? ?
???? #64 位系統 然后我們只需要將這個模塊加入到密碼驗證的機制里即可: vim /etc/pam.d/system-auth
編輯 system-auth 這個 pam 文件
修改里面的 password 段插入一行新的 password 行(這里我的 system-auth 的配置,注意我加了一行
關于 pam_smbpass.so 的內容):
auth?????????????? required??????????? pam_env.so
auth?????????????? sufficient????? pam_unix.so nullok try_first_pass auth?????????????? requisite? ?
?????? pam_succeed_if.so uid >= 500 quiet auth?????????????? required??????????? pam_deny.so
account????????? required??????????? pam_unix.so
account????????? sufficient????? pam_succeed_if.so uid < 500 quiet account????????? required?????? ?
??? pam_permit.so
password????? requisite????????? pam_cracklib.so try_first_pass retry=3
password????? required??????????? /lib64/security/pam_smbpass.so nullok use_authtok try_first_pass
password????? sufficient????? pam_unix.so md5 shadow? nullok try_first_pass use_authtok password?? ?
? required??????????? pam_deny.so
session????????? optional??????????? pam_keyinit.so revoke session????????? required?????????? ?
pam_limits.so
session????????? [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session????????? required??????????? pam_unix.so
組環境問題:在瀏覽器上通過 changepassword 修改用戶密碼時,輸入正確也提示舊密碼錯誤
原因:1-1? changepassword 修改密碼,必須和/etc/passwd 內的密碼同步,如果只設 置 samba 密碼,不? 設置系統密碼,該程序是無法修改用戶密碼的;用戶必
須具有系統密碼,并且這個系統密碼要與 samba 密碼一致
?????????? 1-2? 創建 samba 用戶是不能登錄系統的用戶,所以也忘記給用戶設置系統密碼了
解決方法:passwd 命令創建修改 samba 系統用戶與 samba 服務用戶相同的密碼,在瀏
覽器上 changepassword 可以成功修改密碼
轉載于:https://blog.51cto.com/461205160/1718488