天天看點

關于Linux上SAMBA服務的權限問題(多使用者挂載)安裝配置:在用戶端desktop0配置進行多使用者挂載:

簡介:本文探讨關于Samba服務在用戶端進行多使用者挂載的問題,以及對cifscreds指令的使用效果.

安裝配置:

(伺服器配置要求如下,配置過程在本部落格中<關于Linux上SAMBA服務的權限問題(普通挂載)>,本文省略配置過程)

關于Linux上SAMBA服務的權限問題(多使用者挂載)安裝配置:在用戶端desktop0配置進行多使用者挂載:

在用戶端desktop0配置進行多使用者挂載:

1.安裝cifs-utils軟體包以支援samba的挂載(否則即使挂載沒有報錯也無法正常使用)

[[email protected] ~]# yum -y install cifs-utils
           

2.建立挂載點

[[email protected] ~]# mkdir /mnt/multiuser
           

3.把挂載條目寫入/etc/fstab以使開機自動挂載

[[email protected] ~]# vim /etc/fstab
//server0/common    /mnt/multiuser    cifs    credentials=/root/smb.cred,multiuser,sec=ntlmssp,_netdev,defaults    0 0
           

注解: - credentials=/root/smb.cred 用于指定包含挂載使用者資訊檔案,此使用者一般是samba伺服器裡對共享目錄具有較低權限的使用者(本文使用的rob使用者對共享目錄權限為隻讀),檔案包含username,password - multiuser 關鍵選項,用于指定使用多使用者挂載 - sec=ntlmssp 指定認證方式(kernel3.8之後是預設選項) - _netdev 關鍵選項,否則系統會啟動失敗;不寫入/etc/fstab檔案時,次選項可省略 - defaults 用于指定挂載後的預設屬性,但權限還受samba伺服器限制

4.建立并編寫/etc/smb.cred檔案,出于安全性考慮應該修改此檔案的權限為600

[[email protected] ~]# vim /root/smb.cred
username=rob
password=redhat
[[email protected] ~]# chmod 600 /root/smb.cred
           

5.執行挂載操作

[[email protected] ~]# mount -a
[[email protected] ~]# mount | grep /mnt/multiuser
//server0/common on /mnt/multiuser type cifs (rw,relatime,vers=1.0,sec=ntlmssp,cache=strict,multiuser,domain=SERVER0,uid=0,noforceuid,gid=0,noforcegid,addr=172.25.0.11,unix,posixpaths,serverino,acl,noperm,rsize=1048576,wsize=65536,actimeo=1)
           

6.進入挂載點進行權限測試

[[email protected] ~]# cd /mnt/multiuser/
[[email protected] multiuser]# touch 11
touch: cannot touch ‘11’: Permission denied
           

結論是:

- 檔案的挂載使用者是rob,故隻有隻讀權限,沒有寫入權限

7.在root使用者下使用cifscreds指令把指定使用者的使用者名和密碼加入核心密鑰環

[[email protected] ~]# cifscreds add server0 -u brian
Password:redhat
[[email protected] ~]# cd /mnt/multiuser/
[[email protected] multiuser]# touch 22
touch: cannot touch ‘22’: Permission denied
           

結論是:

- 由于一開始是root使用者以rob使用者的角色進行目錄的挂載(root的環境變量已改變) - 再在root使用者下使用cifscreds指令把指定使用者的使用者名和密碼加入核心密鑰環會不生效

8.在其他使用者下使用cifscreds指令把指定使用者的使用者名和密碼加入核心密鑰環

[[email protected] ~]# su - user1
[[email protected] ~]$ cifscreds add server0 -u brian
Password:
[[email protected] ~]$ cd /mnt/multiuser/
[[email protected] multiuser]$ touch 33
#####在user1使用者下把brian使用者的使用者名和密碼加入核心密鑰環後成功獲得寫入權限#####成功
[[email protected] multiuser]$ cd
[[email protected] ~]$ cifscreds clearall
[[email protected] ~]$ cifscreds add server0 -u rob
Password:
[[email protected] ~]$ cd /mnt/multiuser/
[[email protected] multiuser]$ touch 44
#####在user1使用者下把rob使用者的使用者名和密碼加入核心密鑰環後效果并沒有改變,還是有寫入權限,正常應該隻有讀權限#####失敗,沒有生效
           

結論是:

- 切換到其他使用者後(除root外),第一次使用cifscreds指令把brian(rw)的使用者名和密碼加入核心密鑰環,成功地獲得了brian(rw)所對應的權限 - 第二次使用cifscreds指令把rob(ro)的使用者名和密碼加入核心密鑰環,并沒有獲得rob(ro)所對應的權限,此時實際權限還是第一次加入密鑰環的brian使用者所對應的權限 - 經實驗,使用cifscreds clearall 指令清除核心密鑰環的資料後不會馬上生效,大概5分鐘後才回清除,此後可以成功把其他使用者加入到核心密鑰環中并生效 - 切換到其他使用者(如:su - user2),第一次把指定的samba使用者名和密碼加入到核心密鑰環中即可成功,但是第二次加入核心密鑰環的資訊會不生效(解決方法如上一條結論)

繼續閱讀