------------samba--------------
--smb(Server Message Block))--IBM註冊
提供了四種服務
1.用戶驗證和授權
2.文件和打印機共享
3.域名解析
4.瀏覽
*****************************************************************************
配置好之後,如果客戶端訪問不了smb服務器,把防火牆禁用了,就可以了。
*****************************************************************************
--------------------安裝-----------------
yum -y install samba (samba-client和samba-common默認已經安裝)
(查看文件是安裝哪個包時產生的 rpm -qf /etc/samba/smb.conf)
samba服務器隨着服務器的啓動而自啓動需要下列命令
systemctl enable smb
systemctl start smb
主配置文件 /etc/samba/smb.conf
/etc/samba/lmhosts --名稱解析
首先創建一個共享文件夾 jinni
chmod -R 777 jinni
------------ smb.conf----------------------
注:smb受selinux管制!!!如果上傳的文件看不到,有可能是selinux擋住了,關閉即可。
vim /etc/sysconfig/selinux(配置文件修改權限)需重啓系統
1.警告模式 setenforce 0 (permissive) 2.強制模式 setenforce 1 (enforcing) 3.關閉模式 disabled
getenforce selinux 查看selinux狀態
setsebool -P samba_enable_home_dirs=1(如果關掉selinux就不用此命令了)
chcon -t samba_share_t /jinni(修改共享目錄selinux類型屬性)
securetty = user/share
---認證級別--一共五個!
share: 不需要做身份驗證
user: 該服務需要做身份驗證,認證來自於本機
domain/server: 來自於網絡中的另一臺計算機
ads: 認證來自微軟的活動目錄
-爲smb添加用戶(用戶必須是本地帳戶)
smbpasswd -a 用戶名 #添加一個samba用戶
smbpasswd -d 用戶名 #禁用一個samba用戶
smbpasswd -e 用戶名 #恢復一個samba用戶
smbpasswd -x 用戶名 #刪除一個samba用戶
useradd user1/user2
smbpasswd -a user1
smbpasswd -a user2
修改smb用戶密碼
smbpasswd smbname
查看samba服務器中已擁有哪些用戶
pdbedit -L
user1----smb用戶密碼--
smbclient -L //192.168.1.1 --使用匿名身份瀏覽
smbclient -L //192.168.1.1 -U user1 --(用戶訪問)
smbclient //192.168.1.1/RHCE --訪問
如果想要查詢samba服務器中現有哪些用戶,可以使用net命令
net rpc user -S iscas
net rpc user -w workgroup
***************************************************************
配置文件 vim smb.conf
[haha] --共享的名稱
path = /jinni(需要共享的目錄的路徑)
comment = 註釋
browseable = yes --所有用戶都可以瀏覽
browseable = no --所有用戶都不可以瀏覽
public = no --匿名不允許訪問,smb用戶允許訪問。 用來指定該共享是否允許guest賬戶訪問。
public = yes --匿名和smb用戶都允許訪問
writable = yes --所有用戶都可以寫
writable = no --所有用戶都不可以寫
write list = user1 --允許寫入該共享的用戶,如果某個用戶同時位於"read list"和"write list"配置中,以後者爲準。
read list = user2
hosts allow = 192.168.1.253/255.255.255.0 (允許某個域訪問)
hosts deny = 192.168.1.0/255.255.255.0 (拒絕某個域訪問)
valid users = harry, user4, user5(允許訪問該共享的用戶,如果此配置爲空,則任何用戶均可訪問samba服務器)
invalid users = user1, user2(禁止訪問該共享的用戶)
admin list = jinguanhua 用來指定該共享的管理員(對該共享具有完全控制權限)
(writeable與read only 配置變量的意義完全相反)
read only = no 設定該共享服務是否爲只讀
爲了便於不同的windows用戶,以同一用戶身份與權限訪問共享資源時,需要增加“username map”配置變量,定義一個用戶名映射文件。
username map = /etc/samba/smbusers
還需要修改配置變量中定義的/etc/samba/smbusers文件,其中包含必要的用戶名映射關係。
例如:
爲了使windows2000系統中的administrator與windowsXP系統中的admin用戶能夠以jinni用戶的身份訪問samba服務器,可在smbusers文件中增加下列映射關係:
jinni = administrator admin
如果一個賬號需要有其他同級文件夾的權限,除了修改write list,valid users,還需要配置文件夾權限。
設置用戶yunwei有訪問文件夾jinni和jinni下的子目錄的rx權限
setfacl -R -m u:yunwei:rx jinni
掛載
mount -t cifs //IP/RHCE /yinhe -o username=smbuser1%123(把共享文件夾RHCE掛載到本地文件夾yinhe)
開機啓動 vim /etc/fstab
//IP/RHCE /yinhe cifs defaults,username=smbuser1%123 0 0
testparm /etc/samba/smb.cono station1.example.com 192.168.1.1
----測試某一臺計算機是否有權限訪問
*************************************************************
當在命令提示窗口輸入net use命令時,會顯示本機緩存的共享登錄信息,如果你想切換用戶訪問其他文件夾,則可以刪除那條緩存的記錄即可。
net use * /delete
net use caiwu /delete
訪問Samba共享的文件很慢很慢的問題
是因爲network 和 hosts文件中的主機名不一樣, 將hosts文件中的主機名改成和network中的主機名一樣即可。
vim /etc/sysconfig/network vim /etc/hosts
在公司經常有員工誤刪除文件或者文件夾的情況。如何恢復被刪除的共享文件或者文件夾???
可以通過smb.conf配置文件,給每個共享文件夾添加回收站配置!
vim /etc/samba/smb.conf
recycle:repository = /home/caiwu/.deleted
recycle:keeptree = Yes #指定是否按刪除時的目錄結構存放
recycle:versions = Yes #指定是否區覆蓋同名的文件,yes是不覆蓋
recycle:maxsixe = 0 #指定回收站目錄的大小,0是不限制
recycle:exclude = *.tmp|*.mp3 #不放入回收站的文件類型
recycle:noversions = *.doc #指定覆蓋同名文件的文件類型
#####recycle:repository = /home/caiwu/.deleted/%U #指定該共享文件夾的回收站目錄 %U是按登錄的用戶名分開存放#####
#####禁止上傳的文件veto files = /*.mp3/*.mp4/*.rmvb/*.wma/*.exe/*.bat/*.dll/*.avi/*.rar#######
注意事項:
1.回收站文件夾的用戶和用戶組設置, 權限設置要和共享文件夾的設置是一樣的, 如果不一致被刪除的文件是無法保存到回收站文件夾
2.如果maxsize設置爲0, 那麼回收站的文件需要管理員手工去刪除. 當然, 可以將刪除文件的任務交給計劃任務去完成,如:
vim /etc/crontab
30 8 * * * root find /samba/deleted/ -mtime +30 -exec rm -rf {} \;
上面的設置就是每天8:30 刪除回收站內大於30天的文件
3.每個共享文件夾要單獨設置一個回收站文件, 避免同名文件覆蓋,同時也方便管理和查找.