UNIX/Linux主機與Windows主機之間的資源互訪
Windows主機之間使用SMB/CIFS網路協議實現文件和列印資源的共享,Windows無法與UNIX/Linux主機之間實現資源共享,Samba伺服器在UNIX系統中實現了SMB/CIFS協議,通過Samba服務可以實現UNIX/Linux主機與Windows主機之間的資源互訪。
特點:
必須是系統用戶,但使用獨立密碼訪問
默認安裝samba並添加用戶(smbpasswd -a 用戶名),即可訪問自己的宿主目錄(可讀寫)。
一、samba的安裝
查看是否安裝了samba
rpm -q samba
查到samba-3.0.33-3.28.el5說明已安裝
默認安裝了客戶端:
rpm -qa | grep samba
Advertisements
samba-client-3.0.33-3.28.el5
samba-common-3.0.33-3.28.el5
安裝
yum -y install samba
啟動服務
/etc/rc.d/init.d/smb start
或
service smb start
兩個進程:
smbd ---> tcp 139 用戶驗證和文件共享
nmbd --->udp 137 138 瀏覽共享和計算機名解析
ps -le | grep smbd
ps -le | grep nmbd
一、用戶管理
1.首先必須是系統用戶,添加Linux系統用戶
useradd 用戶名 #添加用戶
passwd 用戶名 #設置密碼
Advertisements
2.然後設置samba的密碼(samba自帶的用戶管理工具)
smbpasswd -a 用戶名 #加用戶
smbpasswd 用戶名 #改smb密碼
root可以使用管理命令(系統自動的samba用戶資料庫管理工具)
pdbedit -a username:新建Samba賬戶。
pdbedit -x username:刪除Samba賬戶。
pdbedit -L:列出Samba用戶列表,讀取/etc/samba/passdb.tdb資料庫文件。
pdbedit -Lv:列出Samba用戶列表的詳細信息。
二、建立samba連接
為了安全,不要把root設為samba用戶
重啟服務
service smb restart
Windows中如何連接:
\\伺服器地址
\\192.168.88.88
可以映射網路驅動器
net use
net use * /del /y
net use \\192.168.88.88 "password" /user:your_user
查看有哪些客戶端連接
smbstatus
查看日誌
cat /var/log/samba
------------------------------
如果不能訪問:
防火牆
iptables -L 查看
iptables -F 清空防火牆規則,拆除防火牆
即時生效,重啟后復原
service iptables stop
永久性生效,重啟后不會復原
chkconfig iptables off
SELinux
允許訪問
setsebool -P samba_enable_home_dirs on
或完全禁用SELinux:
vi /etc/selinux/config 改為SELINUX=disabled
三、配置文件
如果查找配置文件在哪裡
rpm -ql samba-common | grep smb.conf
編輯配置文件
vi /etc/samba/smb.conf
[global] 全局環境選項
workgroup 工作組或域
server string 描述信息
security 安全模式,有如下選項
share 不驗證許可權,直接共享
user 預設,推薦,由Linux Samba伺服器做驗證
server 第三方主機驗證
domain 第三方主機驗證(必須是Windows 域控制器)
hosts allow 哪些主機可以訪問(如果沒有配置,全部主機都可以)
如果是ip直接寫上,如果是ip段只寫網段部份,多個用空格分隔 如: 192.168.1. 192.168.2.
哪些主機不允許訪問,hosts deny 一般不和hosts allow同時使用
log file 日誌文件(最好啟用日誌)
[homes] 只要有這個配置段,用戶默認就可以通過自己的用戶名,訪問自己的宿主目錄
comment 描述
browseable=no 無許可權訪問的目錄,不顯示出來
writable=yes 可寫
[自定義的共享1]
[自定義的共享2]
四、samba實例
需求:配置/software目錄的共享,允許user1 user2兩個用戶完全訪問
創建目錄
mkdir /software
添加用戶
useradd user1
passwd user1
useradd user2
passwd user2
添加samba密碼
pdbedit -a user1
pdbedit -a user2
編輯配置文件
vi /etc/samba/smb.conf
建議寫在配置文件尾
[software] 共享名,不能有特殊符號,一般是字母或數字組成
path = /software 共享目錄,只能是一個目錄
valid users = user1 user2 多個用空格分開。如果沒配置此項,所有用戶都可以訪問
writable = yes 寫許可權 yes no
Samba伺服器配置檢測命令
testparm
如果配置文件寫錯,例valid users=user1 寫成了valid user=user1 將提示
重啟服務
/etc/rc.d/init.d/smb restart
設置目錄許可權
直接改為777,但這樣不安全
chmod -R 777 /software
創建一個用戶組,改變目錄所屬組,對組授權,然後從新連接就可以了
groupadd softadmin
usermod -aG softadmin user1
usermod -aG softadmin user2
chgrp softadmin /software
chmod g+w /software
推薦用acl
setfacl -R -m u:user1:rwx /software #讓user1有rwx許可權 (已有目錄或文件)
setfacl -R -m d:u:user1:rwx /software#讓以後新創建的文件或目錄,user1也有rwx許可權
setfacl -R -m u:user2:rwx /software
setfacl -R -m d:u:user2:rwx /software
windows 下,重新連接
net use * /del /y
net use \\192.168.88.88 "password" /user:your_user
提供一個共享目錄,所有有戶都能使用,卻不能刪除別人的文件
[test]
path = /test
wrieable=yes
然後,設置目錄為 chmod 1777 /test