【Linux下挂载QNAP NFS 共享权限异常处理】

Linux下挂载QNAP NFS 共享权限异常处理

前言

在Linux 上掛載QNAP的NFS共享且啟用ACL可能會遇到ROOT用戶正常,但非ROOT用戶卻有時能讀寫,有時又不能讀寫的情況.

現象

  1. root 用戶正常讀寫
  2. non-root 用戶開始正常,一會兒又不能讀寫
  3. non-root 用戶能複製文件進去,但無法編輯
  4. non-root 用戶 touch 文件時會提示touch: setting times of `xxx': Permission denied
    或直接顯示Permission denied
  5. 使用ll可以看到有問題的文件的權限為----rw-r-+

這也就是這個最神奇的地方,owner是沒有權限的!

處理

因為是時好時壞,所以走了很多彎路,一直在client/server的參數上調試,甚至在client/server上面建立了相同uid/gid的user/group.結果是白廢功夫.
最后發現是共享目錄的ACL是不正常的才導致

[/share/Backup] # getfacl SS
# file: SS
# owner: nfsbackup
# group: 501
user::---
group::rwx
other::rwx
default:user::---
default:user:bonne:rwx
default:user:1003:rwx
default:user:guest:---
default:group::rwx
default:group:administrators:rwx
default:mask::rwx
default:other::---

上面有個uid 1003是因為QNAP界面上建立的用戶和組是從1000開始的,而我的linux 上是500我就改了用戶的id,導致這里認不到了.同樣group 501是因為NAS上沒有gid為501的group.
重點在于default:user::---代表新建的內容owner是沒權限的.
在NAS上重設權限,然後就好了

setfacl -d -m u::rwx XXX

相關命令

getfacl讀取ACL
setfacl設定ACL
usermod用戶修改,改uid的用
groupmodQNAP上不能用,修改群組

NFS 配置中的權限壓縮

all_squash/root_squash/no_root_squash
all_squash:不管nfs client上是哪個用戶,在server上都降級為anonymous
root_squash:只有nfs client上是root時,在server上降級為anonymous
no_root_squash:nfs client上是root時,在server側也是root.
簡單來說:
一對一分享,就用no_root_squash
一對多一般用root_squash,這樣clientA上的root就動不了ClientB放上去的東西
all_squash一般要配合anonuid/anongid來用,這樣不管client用戶是誰在server側都是相同的身份

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值