1. 程式人生 > >linux掛載命令mount-43

linux掛載命令mount-43

在linux裡面所有的可儲存裝置都需要掛載後才可以正常使用,不過硬碟是系統自動掛載,但是u盤,光碟,行動硬碟等就需要我們手動進行掛載了。
相當於為裝置分配一個碟符。
一、查詢與自動掛載
1、掛載查詢
[root@localhost ~]# mount -l
查詢系統中已經掛載的裝置,-l會顯示卷標名稱。與不加-l效果一樣。
如圖:
掛載檢視命令mount

2、自動掛載
[root@localhost ~]# mount -a
依據配置檔案/etc/fstab的內容,自動掛載
需要注意的是光碟和u盤或行動硬碟都不要設定為自動掛載,因為一旦光碟機裡沒有光碟媒體或移動裝置出問題就會導致系統檢測失敗而崩潰。

二、掛載命令的格式
[root@localhost ~]# mount [-t 檔案系統][-L 卷標名] \


[-o 特殊選項] 裝置檔名 掛載點
選項:
-t 檔案系統:加入檔案系統型別來指定掛載的型別,硬碟的檔案系統為ext3、ext4。光碟裝置的檔案系統型別為iso9660。

-L 卷標名: 掛載指定卷標的分割槽,而不是按照裝置檔名掛載。
-o 特殊選項:可以指定掛載的額外選項。

這個命令看起來挺複雜,但其實我們平時用的時候一般不用加選項,直接用mount+裝置檔名+掛載點即可,比如我們前面學習的掛載光碟機:
[root@localhost ~]# mount /dev/sr0 /mnt/cdrom
也就是說如果不加選項的話就代表選項為預設。

1、這裡特別說明一下-o特殊選項,這個額外選項有好多引數:
atime/noatime 更新訪問時間/不更新訪問時間。訪問分割槽檔案時,是否更新檔案的訪問時間,預設為更新。

async/sync : 非同步/同步,預設為非同步

auto/noauto :自動/手動,mount -a命令執行時,是否會自動安裝/etc/fstab檔案內容掛載,預設為自動。

defaults: 定義預設值,相當於rw,suid,dev,exec,auto,nouser,async這七個選項。

exec/noexec:執行/不執行,設定是否允許在檔案系統中執行可執行檔案,預設是exec允許

remount :重新掛載已經掛載的檔案系統,一般用於指定修改特殊許可權

rw/ro:讀寫/只讀,檔案系統掛載時,是否具有讀寫許可權,預設為rw

suid/nosuid: 具有/不具有suid許可權,設定檔案系統是否具有suid和sgid的許可權,預設是具有

user/nouser :允許/不允許普通使用者掛載,設定檔案系統是否允許普通使用者掛載,預設是不允許,只有root可以掛載分割槽

usrquota :寫入代表檔案系統支援使用者磁碟配額,預設不支援

grpquota : 寫入代表檔案系統支援組磁碟配額,預設不支援。

2、這裡我們比較常用的就是從新掛載引數remount,以及exec/noexec.
比如我們修改了掛載分割槽檔案系統的一些引數,而不想從新啟動系統,這時候就只需要從新掛載一下這個分割槽就可以了,命令寫法:
[root@localhost ~]# mount -o remount /home
這樣就從新掛載了/home分割槽了。

3、exec一般主要用於伺服器系統中使用者上傳檔案的目錄分割槽設定為不允許執行可執行的檔案,避免使用者上傳了木馬病毒執行後影響了整個系統。
用法比如:
[root@localhost ~]# mount -o remount,noexec /home
這樣就禁止了home分割槽裡的可執行檔案的執行能力。remount,noexec兩個引數中間用逗號隔開,也就是新增多個引數的話中間用逗號隔開。
而正常情況下不建議大家修改這些分割槽系統預設選項。

那麼其實有的時候我們某個可執行檔案不能執行並不一定是許可權的問題,可能就是這個分割槽被禁用了執行檔案的執行。
比如我們先把home目錄的分割槽引數設定為不允許執行可執行檔案,
[root@localhost ~]# mount -o remount,noexec /home
然後我們來到Home目錄下。
[root@localhost ~]# cd /home
如圖:
mount -o特殊選項
然後我們在這個目錄下新增一個可執行指令碼
[root@localhost ~]# vi hello.sh
linux裡我們所有的指令碼檔案內容都必須以#!/bin/bash開頭,代表我們後面的內容是bash指令碼,
如圖:
linux指令碼編輯
然後wq儲存,並且給他賦予可執行許可權755.

那麼這個時候我們來執行一下這個指令碼,執行指令碼的寫法為:
./hello.sh
或者用絕對路徑也一樣:
/home/hello.sh
然後大家看看是不是能執行,如圖:
linux掛載命令 noexeo引數
看,他竟然說我們許可權不夠,圖中我們看到了,首先這個檔案是有執行許可權x的,最主要的是我們是root超級使用者啊,為什麼都不可以執行呢?

呵呵,原因很簡單,因為剛才我們設定了這個目錄的可執行檔案的禁止執行引數noexec,所以任何人都不能執行。
那麼我們現在把/home目錄的引數修改為exec,就是可執行,然後我們再試試這個指令碼是不是可以執行,如圖:
linux掛載命令mount
看,現在是不是就可以執行了,輸出了hello world。

這就是exec和noexec的作用,正常操作伺服器的時候,我們就可以把普通使用者用於上傳的目錄設定為禁止執行,這樣就維護了伺服器的安全。

本教程原創作者:mageo,出自每集部落格,尊重作者勞動,轉載請註明出處:http://www.ql2015.cn,謝謝!