導航:首頁 > 文件教程 > nfs掛載根文件系統許可權設置

nfs掛載根文件系統許可權設置

發布時間:2023-07-22 11:10:15

A. linux掛載文件的許可權

在Linux中也可以讀取Windows分區,包括fat32格式的和ntfs格式的。讓Linux系統啟動時有自動掛載windows分區許可權,可以命令寫入 /etc/fstab 文件中,下面是一個例子:

/dev/disk/by-id/ata-HITACHI_HTS723225L9SA61_FDE_090521FC1D20NJG943JG-part1/windows/Cntfs-3gusers,gid=users,fmask=133,dmask=022,locale=en_US.UTF-800
/dev/disk/by-id/ata-HITACHI_HTS723225L9SA61_FDE_090521FC1D20NJG943JG-part5/windows/Dntfs-3gusers,gid=users,fmask=133,dmask=022,locale=en_US.UTF-800
#/dev/disk/by-id/ata-HITACHI_HTS723225L9SA61_FDE_090521FC1D20NJG943JG-part6/windows/Entfs-3gusers,gid=users,fmask=133,dmask=022,locale=en_US.UTF-800
/dev/disk/by-id/ata-HITACHI_HTS723225L9SA61_FDE_090521FC1D20NJG943JG-part6/windows/Entfs-3gusers,gid=users,fmask=0,dmask=0,locale=en_US.UTF-800
/dev/disk/by-id/ata-HITACHI_HTS723225L9SA61_FDE_090521FC1D20NJG943JG-part7/windows/Fntfs-3gusers,gid=users,fmask=133,dmask=022,locale=en_US.UTF-800

默認掛載是 root 擁有讀寫許可權,當沒有執行許可權,其它用戶只有可讀許可權。

如上代碼掛載文件許可權設置解釋如下:

#dmask是目錄的mask,fmask是文件的mask
#mask是許可權掩碼,由3個八進制的數字所組成,
#當前訪問許可權去掉許可權掩碼所表示的許可權之後,
#即可產生建立文件時預設的許可權。
#第一位表示自己訪問的許可權
#第二位表示同組訪問的許可權
#第三位表示其他所有人訪問的許可權

#每位表示為二進制,又可以有三位,分別表示讀、寫和可執行。
#例如-r-----r-x表示文件
#自己可以讀,不能寫,不能執行
#同組人不能讀,不能寫,不能執行
#其他人可以讀,不能寫,可以執行
#因為掛載的是windows的盤符,是ntfs分區,
#linux為了安全起見,分區只讀,默認訪問模式為555
#可以執行可以讀但是不能寫入,而且中間一位不能改動。

B. 如何以NFS方式掛載根文件系統

用NFS方式掛載根文件系統

由於原來的內核是用ATBOOT的方式下載的,不知道怎麼傳遞參數(好像不能,網上查的nfs方式都是用U-boot的方式掛載的),因此決定用u-boot重新下載內核。

1.下載u-boot和內核

1.1編譯內核

1.1.1由於板子光碟自帶的內核觸摸屏驅動不是配套的,要修改驅動的一個宏定義

LCD driver info */<br/>//#define TFT3<br/>#define TFT_NEW3 //這是板子配套觸摸屏的參數<br/>//#define vga800480 //這是默認的參數,需要注釋掉<br/>//#define vga1024<br/>//#define vga800600

1.1.2修改參數

在arch/arm/mach-s3c2410/common-smdk.c 里的

static struct s3c2410_platform_nand smdk_nand_info = {<br/>.tacls = 10,<br/>.twrph0 = 30,<br/>.twrph1 = 10,<br/>...

原來是20,60,20,但這個參數會找不到nand flash,需要修改為上面幾個。否則得到的uImage 文件會下載運行不了。

1.1.3修改交叉編譯器

vi Makefile
找到
CROSS_COMPILE ?= arm-linux

這一行,將arm-linux-修改為交叉編譯器的路徑(Linux系統上交叉編譯工具的路徑為下)

/usr/local/arm/3.4.1/bin/arm-linux-

輸入:wq 保存並退出。

1.1.4編譯

make clean

make uImage

(在執行命令之前要執行make menuconfig,進行配置內核:

networking options-》IP:kernel level autoconfiguralion項
選中file systems-》network file systems-》下的root file system on nfs和nfs file system support

由於我解壓的是板子自帶的內核,發現這些都已經選中了,因此直接編譯即可,執行make uImage後,最後會提示一個錯誤,說不能創建某個文件,但我發現uImage已經生成了,就沒理會錯誤,直接拿來用了)

1.2下載u-boot和內核

1.2.1下載u-boot

1.2.1.1 SJF2440 環境設置(見前面部分圖文介紹)

下載u-boot用板子自帶工具SJF2440.exe,安裝其驅動,具體見說明文檔

1.2.1.2 燒寫u-boot.bin 到Nand flash 中

新建D:\atboot,把sjf2440.exe 和u-boot.bin復制到文件夾內

(sjf2440.exe 和u-boot.bin 必須在同一目錄下)

具體見說明文檔

1.2.1.3 利用u-boot下載uImage和文件系統到arm板上

由於板子自帶是用autoflash.img自動下載uImage和文件系統到arm板上,現在我還不太明白具體的地址,因此就自動把文件系統也下載上去了,但是這個文件系統不用,下面將用nfs掛載linux主機上的文件系統rootfs文件

具體見說明文檔

2. 用nfs掛載根文件系統

2.1 在虛擬機Linux上建立文件夾

/home/water/rootfs

把板子自帶的系統直接拷進rootfs文件夾內

2.2linux主機 配置nfs 文件系統

修改/etc/exports 文件,格式為共享目錄開發板ip 地址(許可權設置):cat <<EOM >/etc/exports

/home/water/rootfs *(rw,sync,insecure,no_root_squash)

重啟nfs 伺服器:

/etc/init.d/nfs restart

2.3 IP設置

XP:192.168.1.100

linux:192.168.1.128

arm:192.168.1.7(這個一會用U-boot給內核傳遞)

2.4 給u-boot傳遞參數

啟動u-boot,在倒計時結束前,按下空格鍵,進入輸入參數界面

輸入:

AVANTECH# set bootargs root=/dev/nfs
nfsroot=192.168.1.128:/home/water/rootfs rw noinitrd
init=/linuxrc ip=192.168.1.7:192.168.1.128:192.168.1.128:255.255.255.0:avantech:eth0:off console=ttySAC0,115200

(注:上面為一行代碼,只是可能自動換行的緣故,因此輸入是可以一部分一部分的復制)

AVANTECH# saveenv

AVANTECH# reset

2.5然後就ok了

C. 群暉載入Windows NFS目錄的許可權如何設置

群暉里設置共享目錄(設置讀寫許可權),然後載入Windows下的NFS目錄,載入成功後共享目錄的許可權被改為只讀,並且無法通過群暉界面修改,通過WinSCP訪問群暉,在屬性里也無法修改共享目錄的許可權!

D. NFS 深入配置

1.1 NFS配置參數許可權

參數名稱
參數用途

rw
read-write,表示可讀寫許可權

ro
read-only,表示只讀許可權

sync
請求或寫入數據時,數據同步寫入到硬碟才完成

async
非同步寫到遠程緩沖區

all_squash
不管客戶端什麼用戶,到服務端都會被壓縮成匿名用戶

anonuid
匿名用戶的UID

anongid
匿名用戶的GID

在配置文件內設置共享目錄時所給予的許可權:
[root@nfs01 ~]$ cat /etc/exports
/data 172.16.1.0/24(rw,sync) 10.0.0.0/24(ro)

配置好NFS服務後,/var/lib/nfs/etab文件中可以看到的配置參數以及默認自帶的參數:
[root@nfs01 ~]$ cat /var/lib/nfs/etab
/data
172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,
no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,
anongid=65534,sec=sys,rw,secure,root_squash,no_all_squash

1.1.1 更改NFS默認用戶
1.1.1.1 nfs01服務端NFS、以及所有客戶端:
[root@nfs01 ~] id www
uid=1111(www) gid=1111(www) 組=1111(www)

1.1.1.2 服務端NFS特殊配置
配置文件增加如下內容:
[root@nfs01 ~]$ tail -2 /etc/exports
/data 172.16.1.0/24(rw,sync,all_squash,anonuid=1111,anongid=1111)
/data1 10.0.0.0/24(ro)

共享目錄更改用戶和用戶組:
[root@nfs01 ~] ls -ld /data
drwxr-xr-x 2 www www 70 4月 18 10:05 /data

1.1.1.3 服務端NFS重啟
[root@nfs01 ~]$ systemctl reload nfs

1.1.1.4 每個客戶端掛載
[root@web01 ~] df -h
文件系統 容量 已用 可用 已用% 掛載點
172.16.1.31:/data 19G 1.8G 18G 10% /data

新創建文件驗證用戶名:
[root@web01 /data]# touch new_web01.txt
[root@web01 /data]# ls -l
總用量 0
-rw-r--r-- 1 www www 0 4月 18 11:01 new_web01.txt
-rw-r--r-- 1 www www 0 4月 17 11:59 oldboy.txt
-rw-r--r-- 1 www www 0 4月 17 12:30 oldgirl.txt

1.2 NFS服務重點知識梳理
  當多個NFS客戶端訪問伺服器端讀寫文件時,需要具有以下幾個許可權:

NFS伺服器/etc/exports設置需要開放許可寫入的許可權,即伺服器端的共享許可權
NFS伺服器實際要共享的NFS目錄許可權具有可寫入w的許可權,即伺服器端本地目錄的安全許可權
每台機器都對應存在和NFS默認配置UID的相同UID的用戶

下表列出了常用的重點NFS服務文件或命令。

NFS常用路徑
說明

/etc/exports
NFS服務主配置文件,配置NFS具體共享服務的地點,默認內容為空

/var/lib/nfs/etab
NFS配置文件的完整參數設定的文件

/proc/mounts
客戶端的掛載參數

1.3 NFS客戶端掛載深入
1.3.1 mount -o 參數選項及系統默認設置

參數
參數意義
系統默認值

suid/nosuid
當掛載的文件系統上有任何SUID的程序時,只要使用nosuid就能夠取消設置SUID的功能
suid

rw/ro
可以指定文件系統是只讀(ro)或可讀寫(rw)
rw

dev/nodev
是否可以保留裝置文件的特殊功能
dev

exec/noexec
是否具有執行文件的許可權
exec

user/nouser
是否允許用戶擁有文件的掛載與卸載功能
nouser

auto/noauto
auto指的是「mount -a」時會不會被掛載的項目,如果不需要這個分區隨時被掛載,可以設置為noauto
auto

1.3.2 mount -o 參數詳細說明

參數選項
說明

async
涉及文件系統I/O的操作都是非同步處理,即不會同步寫到磁碟,能提高性能,但會降低數據安全。

sync
有I/O操作時,都會同步處理I/O,會降低性能,但數據比較安全。

atime
在每一次數據訪問時,會更新訪問文件的時間戳,是默認選項,在高並發的情況下,可以通過添加noatime來取消默認項。

ro
以只讀的方式掛載一個文件系統

rw
以可讀寫的方式掛載一個文件系統

auto
能夠被自動掛載通過-a選項

noauto
不會自動掛載文件系統

defaults
這是fstab里的默認值,包括rw、suid、dev、exec、auto、nouser、async

exec
允許文件系統執行二進制文件,取消這個參數,可以提升系統安全性。

noexec
在掛載的文件系統中不允許執行任何二進製程序,進僅對二進製程序有效。

noatime
訪問文件時不更新文件的時間戳,高並發情況下,一般使用該參數

nodiratime
不更新文件系統上的directory inode時間戳,高並發環境,推薦顯式應用該選項,可以提高系統I/O性能。

nosuid
不允許set-user-identifier or set-group-identifier位生效。

suid
允許set-user-identifier or set-group-identifier位生效。

nouser
禁止一個普通用戶掛載該文件系統,這是默認掛載時的默認選項。

remount
嘗試重新掛載一個已經掛載了的文件系統,這通常被用來改變一個文件系統的掛載標志,從而使得一個只讀文件系統變的可寫,這個動作不會改變設備或者掛載點。當系統故障時進人single或rescue模式修復系統時,會發現根文件系統經常會變成只讀文件系統,不允許修改,此時該命令就派上用場了。具體命令為:mount -o remount,rw /,表示將根文件系統重新掛載使得可寫。single或rescue模式修復系統時這個命令十分重要。

dirsync
目錄更新時同步寫人磁碟。

1.3.3 企業生產場景NFS共享存儲優化

硬體:使用ssd/sas磁碟,可以買多塊,製作成raid10。
NFS伺服器端配置:

/data 10.0.0.0/24(rw,sync,all_squash,anonuid=65534,anongid=65534)

NFS客戶端掛載優化配置命令:

mount -t nfs -o nosuid,noexec,nodev,noatime,nodiratime,rsize=131072,
wsize=131072 172.16.1.31:/data /mnt <===兼顧安全性能

對NFS服務的所有伺服器內核進行優化,執行命令如下:

cat >>/etc/sysctl.conf <<EOF
net.core.wmen_default = 8388608
net.core.rmen_default = 8388608
net.core.wmen_max = 16777216
net.core.rmen_max = 16777216
EOF

執行sysctl -p 生效

大型網站NFS網路文件系統的替代軟體為分布式文件系統,如:Moosefs(mfs)、GlusterFS、FastDFS。

1.4 NFS系統應用的優缺點
1.4.1 優點

簡單,容易上手,容易掌握。
NFS文件系統內數據是在文件系統之上的,即數據是能看得見的。
部署快速維護簡單方便,且可控,滿足需求就是最好的。
可靠,從軟體層面上看,數據可靠性高,經久耐用。
服務非常穩定。

1.4.2 缺點(局限)

存在單點故障,如果NFS服務端宕機了,所有客戶端都不能訪問共享目錄。
大數據高並發的場合,NFS效率、性能有限。
客戶端認證是基於IP和主機名的,許可權要根據ID識別,安全性一般。
NFS數據是明文的,NFS本身不對數據完整性進行驗證。
多台客戶機掛載一個NFS伺服器時,連接管理維護麻煩。

1.4.3 解決性能問題的方法

使用CDN加速以及自己搭建文件緩存服務(squid、nginx、varnish)。
把多個目錄分配到不同的NFS伺服器上。
棄用NFS(即讀寫分離)。

使用分布式文件系統。

閱讀全文

與nfs掛載根文件系統許可權設置相關的資料

熱點內容
網路如何把人捧紅 瀏覽:961
軟體傳輸文件 瀏覽:184
密碼記錄器ios 瀏覽:412
兩個電腦數據怎麼一樣 瀏覽:829
順豐有什麼買東西的app 瀏覽:377
數位板word 瀏覽:939
win7寬頻連接出現多重網路 瀏覽:268
更改程序圖標c語言 瀏覽:629
網路電視偷停怎麼辦 瀏覽:418
linux連接ftp 瀏覽:512
es文件瀏覽器視頻筆記 瀏覽:874
mac無法打開描述文件 瀏覽:134
什麼軟體打文件 瀏覽:53
資料庫無數據變成0 瀏覽:899
名企筆試如何刷編程題 瀏覽:49
js跳到頁面某地 瀏覽:550
jsp展示clob欄位 瀏覽:779
nyx在網路上是什麼意思 瀏覽:145
樂播農業app是什麼 瀏覽:530
編程框架如何開發 瀏覽:136

友情鏈接