為客戶機提供共享使用的檔案夾
SMB(Server Message Block)伺服器消息塊
端口:139/tcp
CIFS(Common Internet File System)通用網際檔案系統
端口tcp/445
帳号體系與linux系統賬戶有很大的關聯
samba的共享帳号和linux系統帳号名字相同、但密碼不同
useradd harry -s /sbin/nologin
安裝samba軟體包
建立samba共享帳号
useradd kenji -s /sbin/nologin
useradd chihiro -s /sbin/nologin
把系統賬戶添加到samba的賬戶資料庫,并且修改密碼
pdbedit -a harry
pdbedit -a kenji
pdbedit -a chihiro
列出所有有效的samba賬戶
samba的主配置檔案
字段解釋:
[global]
workgroup = 工作組名 #windows專用
[homes] #家目錄共享
[printer] #列印機共享
[共享名]
path = 要共享的檔案夾絕對路徑
browseable = yes #no為隐藏共享
read only = yes #yes為隻讀
write list = user #允許寫入的使用者
valid users = username #有效的使用者
89行,修改workgroup為STAFF
追加到配置檔案的最後
[common]
path = /common
hosts allow = 172.25.0.0/24
systemctl restart smb
systemctl enable smb
安裝smaba用戶端軟體
列出172.25.0.11上共享的目錄
這個包可裝可不裝。連接配接\172.25.0.11,進入互動式界面,對\172.25.0.11\common目錄的内容進行操作
檢視受SELinux管理的服務布爾值的開關狀态
設定SELinux管理的samba服務,它的samba_export_all_ro這個值為on的狀态。即對該項功能的開關,需要加-P選項才能永久生效
臨時挂載伺服器的共享檔案夾到/mnt/samba
安裝cifs軟體包
_netdev這個參數很重要,它表示是一個網絡裝置,必須等網絡服務啟動之後再挂載
永久挂載共享目錄
測試挂載配置是否正确
測試挂載是否正常
用戶端通路服務端不正常的排錯思路:
1.防火牆是否限制
2.服務本身的通路控制
3.SELinux是否限制
4.服務端目錄是否有權限
追加到檔案最後
[devops]
path = /devops
write list = chihiro
mkdir /devops
echo dev >/devops/te.txt
重新開機samba服務
設定samba的讀寫功能為開啟(on)
在共享目錄中嘗試建立檔案,還是提示權限不足。原因是服務端本地目錄對chihiro使用者沒有寫的權限
單獨為chihiro使用者添加/devops目錄的讀寫權限
管理者一次挂載,用戶端可以臨時切換身份對共享目錄做寫操作
用戶端:
挂載mnt目錄。
修改user為kenji
增加multiuser,sec=ntlmssp參數
切換到普通使用者
切換到chihiro的身份,通路/mnt/dev,可以執行讀寫操作
故障現象:
mount -a
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
可能原因:
server沒有使用pdbedit添加samba使用者
挂載成功後無法建立檔案
server samba共享的目錄沒用setfacl配置設定寫權限
server的setsebool沒打開samba_export_all_rw=on
NFS(Network File System)網絡檔案系統
端口:2049/TCP、2049/UDP
RPC(Remote Process Call)遠端程序調用
端口:111/TCP、111/UDP
nfs-utils
nfs-server
NFS的配置檔案
echo "/public 172.25.0.0/24(ro)" >>/etc/exports
服務端設定共享目錄
重新開機NFS服務
添加nfs挂載
服務端設定可讀寫的共享目錄
服務端重新開機NFS服務
用戶端添加NFS挂載配置檔案
挂載測試
touch /mnt/protected/aaa.txt
不壓榨root使用者權限,即允許root在nfs共享裡面建立的檔案還是屬于root使用者,而不是屬于nfsnobody使用者
/abc 172.25.0.0/24(rw,no_root_squash)
當用戶端的普通使用者通路服務端時,服務端會映射成本地相同uid的使用者,然後查找是否存在相同uid的使用者。如果有,那麼就以本地使用者的身份去通路檔案夾;如果沒有,直接拒絕
初始化服務端和用戶端的ldap環境
LDAP:網絡使用者,提供使用者名
Kerberos:密碼驗證。一次密碼認證,多次免密登陸
生産環境中會用LDAP驗證使用者名,再用kerberos驗證密碼。
使用者首次通路時,找LDAP驗證使用者名,驗證通過後再找kerberos驗證密碼。全部驗證通過後,kerberos會給使用者頒發令牌(token)
當使用者再次通路時,找LDAP驗證使用者名,驗證通過後。服務端發現有token,就不再去找kerberos,直接放行
服務端:
mkdir -p /protected/project
chown ldapuser0 /protected/project
ls -l /protected/project
echo "/protected 172.25.0.0/24(rw,sec=krb5p)" >>/etc/exports
服務端:重新開機安全nfs服務及nfs服務
mkdir /mnt/nfssecure
ls -l /mnt/nfssecure
tail -1 /etc/fstab
用戶端:重新開機nfs-secure服務
用戶端:挂載測試
用戶端:檢視挂載
遠端登陸server0
touch /protected/project/ldfile.txt
mount.nfs: an incorrect mount option was specified
mount.nfs: access denied by server while mounting 172.25.0.11:/protected
本文轉自 goldwinner 51CTO部落格,原文連結:http://blog.51cto.com/355665/2068712,如需轉載請自行聯系原作者