samba服務:一、用於Linux 和Windows 之間的文件共享,能夠實現匿名用戶和本地用戶之間的文件共享
二、工做原理:smb 進程 —>控制發佈共享目錄與權限 tcp 139 445 138 139
linux
搭建samba服務步驟:一、關閉防火牆和 selinux
二、配置 yum 源(通常是本地源)
三、軟件三部曲(查看、安裝、查看軟件列表)
# rpm -aq|grep samba
samba-winbind-clients-3.6.9-164.el6.x86_64 客戶端工具
samba-3.6.9-164.el6.x86_64 服務端
samba-client-3.6.9-164.el6.x86_64 客戶端工具
samba4-libs-4.0.0-58.el6.rc4.x86_64 庫文件
samba-common-3.6.9-164.el6.x86_64 工具包
samba-winbind-3.6.9-164.el6.x86_64 客戶端工具
# rpm -ql samba|grep etc
/etc/logrotate.d/samba 日誌輪轉文件
/etc/pam.d/samba 驗證機制
/etc/rc.d/init.d/nmb 啓動腳本
/etc/rc.d/init.d/smb
/etc/samba/smbusers 用戶別名文件
/usr/sbin/nmbd 二進制命令
/usr/sbin/smbd
數據庫
# rpm -ql samba-client
/usr/bin/smbclient 客戶端工具
vim
# rpm -ql samba-common
/etc/samba 主目錄
/etc/samba/smb.conf 主配置文件
/usr/bin/pdbedit 查看smb數據庫用戶
/usr/bin/smbpasswd 設置用戶密碼
/usr/bin/testparm 檢測語法
四、瞭解主配置文件
# cat /etc/samba/smb.conf |grep -v ^#|grep -v '^;'|grep [a-z]
[global] 全局標籤
workgroup = MYGROUP 工做組
server string = Samba Server Version %v samba 服務器版本描述
# logs split per machine
log file = /var/log/samba/log.%m 日誌文件
# max 50KB per log file, then rotate
max log size = 50 日誌大小kb
security = user 認證模式:user用戶名密碼; share匿名;server
passdb backend = tdbsam smb數據庫 /var/lib/samba/private/
# the login script name depends on the machine name
# the login script name depends on the unix user used
# disables profiles support by specifing an empty path
load printers = yes 加載打印機
cups options = raw 打印機選項
#obtain list of printers automatically on SystemVwindows
[homes] 局部標籤 共享本地用戶的家目錄
comment = Home Directories 描述
browseable = no 隱藏標籤
writable = yes 可寫
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no 等於 public = yes
writable = no 等於 read only = yes
printable = yes
五、沒有需求,不用修改配置文件(測試驗證默認狀況下的共享文件)緩存
六、啓動服務,開機自啓動
# service nmb restart
# service smb restart服務器
# smbclient -L 192.168.1.4 ——>client 端查看
Enter root's password: ——>直接回車是匿名查看
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.9-164.el6]
tree connect failed: NT_STATUS_ACCESS_DENIED
網絡
本地用戶查看: 須要將本地 (server端) 的用戶加入到 smb 數據庫裏
# smbpasswd -a stu1
New SMB password:
Retype new SMB password:
Added user stu1.tcp
# pdbedit -L 查看用戶是否在smb數據裏面
stu1:500:
ide
# smbclient -L 192.168.1.4 -U stu1 ——> 以Samba 數據庫的某個用戶查看工具
本地用戶訪問: 標籤
# smbclient //192.168.1.4/share -U stu1
Enter stu1's password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.9-164.el6]
smb: \> ?
Windows 查看:cmd-》\\192.168.1.123
一、默認狀況下,匿名用戶不能夠訪問 server 端共享出來的本地用戶家目錄
二、本地用戶須要經過用戶名和密碼訪問本地用戶的家目錄(須要將本地 (server端) 的用戶加入到 smb 數據庫裏)
需求 1 :匿名用戶查看
#vim /etc/samba/smb.conf
[homes]
comment = Home Directories
browseable = no
writable = yes
guest ok = yes 容許匿名用戶訪問
測試 (client) 端:
#smbclient //192.168.1.123/stu1 匿名用戶登陸
smb: \> ls
NT_STATUS_ACCESS_DENIED listing \* 家目錄沒有權限
server 端: ——> 修改權限
[stu1@vm01 ~]$ ll -d
drwx------. 5 stu1 stu1 4096 Jul 29 14:45 .
[stu1@vm01 ~]$ chmod o+rx .
[stu1@vm01 ~]$ ll -d
drwx---r-x. 5 stu1 stu1.
smb: \> ls
需求 2 :認證模式更改成 share(匿名用戶訪問)
# vim /etc/samba/sbm.conf
...
security = share
...
結果: 匿名用戶能夠查看,本地用戶不能夠訪問查看
需求 3 :共享本地目錄 /samba/share
# vim /etc/samba/smb.conf
...
[share]
comment = share dir
path = /samba/share
public = no
read only = yes
browseable = yes
▼客戶端掛載使用: 開機自動掛載、自動掛載
#mount.cifs -o username=stu1,password=stu1 //192.168.1.4/share /u02 ——>手動掛載
#vim /etc/fstab ——>開機自動掛載
...
//192.168.1.4/share /u02
#vim /etc/auto.master ——>自動掛載
...
/smb /auto.samba
#vim /auto.samba
...
▼控制讀寫訪問:
writable = yes / no ——>可寫
read only = yes / no
read list = tom,@admin ——>限制可讀的用戶
write list = tom,@admin
▼對象的訪問控制:
valid user = tom,@admin —> 指定可用用戶
invalid user = tom,@admin —> 指定不可用用戶
兩個參數不要同時存在
▼網絡訪問控制: allow 和 deny 衝突 —> allow 優先
hosts allow = 150.203. EXCEPT 150.203.6.66 —> 容許哪一個網段訪問,除了哪一個IP
hosts allow = 150.203.15.0/255.255.255.0
hosts allow = *.uplooking.com
hosts deny = 192.168.1.3 vm01.example.com
需求:
公司:uplooking
一、財務部門 /samba/upl_cw cw01財務總監有可讀可寫權限,財務部門員工可讀,boss01>對其有管理權限。
二、市場部門 /samba/upl_sc 市場部門員工可讀可寫,公司員工能夠查詢資料,boss02對>其有管理權限。
三、HR部門 /samba/upl_rs rs01HR總監可讀寫,HR部門員工能夠對財務部查詢,vip用戶>能夠查詢
四、休息區 /samba/upl_pub 本身管理本身的文件
步驟:
一、建立相應的共享目錄
#mkdir /samba/upl_{cw,sc,rs,pub} -p
二、建立相應的用戶組
groupadd uplooking
groupadd cw
groupadd rs
groupadd sc
useradd -g cw -G uplooking cw01
useradd -g cw -G uplooking cw02
useradd -g rs -G uplooking rs01
useradd -g rs -G uplooking rs02
useradd -g sc -G uplooking sc01
useradd -g sc -G uplooking sc02
useradd -g uplooking boss01
useradd -g uplooking boss02
useradd vip
三、更改目錄相應的權限
chown root.uplooking /samba -R
chmod 770 /samba -R
chown root.cw /samba/upl_cw
chown root.rs /samba/upl_rs
chown root.sc /samba/upl_sc
chown root.uplooking /samba/upl_pub
chmod 1777 /samba/upl_pub
四、發佈共享目錄
[share_cw]
comment = cw01財務總監有可讀可寫權限,財務部門員工可讀,boss01對其有管理權限
path = /samba/upl_cw
valid users = @uplooking
read list = @cw,@rs
write list = cw01,boss01
[share_rs]
comment = HR總監能夠讀寫,vip用戶能夠查詢
path = /samba/upl_rs
valid users = @rs,vip
read list = @rs,vip
write list = rs01
[share_sc]
comment = 市場部門員工能夠讀寫,公司員工能夠查詢資源,boss02對其部門管理
path = /samba/upl_sc
valid users = @uplooking
read list = @uplooking
write list = @sc,boss02
[share_pub]
comment = 本身的文件本身管理
public = yes
path = /samba/upl_pub
writable = yes
hosts allow = 192.168.1.0/24
五、語法檢測 # testparm
六、將用戶加入到smb數據裏
# smbpasswd -a rs01
# smbpasswd -a rs02
# smbpasswd -a cw01
# smbpasswd -a cw02
# smbpasswd -a sc01
# smbpasswd -a sc02
# smbpasswd -a vip
# smbpasswd -a boss01
# smbpasswd -a boss02
# pdbedit -L 查看是否將用戶加入到smb數據
七、重啓服務測試驗證
清空 windows 緩存:cmd——>net use * /del /y
使用samba服務最好掛載使用(linux中這樣方便)
#mount.cifs -o username=stu1,password=stu1 //192.168.1.4/share /yum(掛載點)