91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

linux掛載 NTFS格式的U盤、移動硬盤后無法更改權限

發布時間:2020-08-15 23:57:20 來源:ITPUB博客 閱讀:841 作者:kobe20nian 欄目:建站服務器
使用NTFS-3G實現Linux 掛載  NTFS分區 

但是掛載后權限有問題!
轉載:  原文地址:
http://blog.sciencenet.cn/blog-430991-692444.html


本文試圖通過探求達到讓linux系統掛載的移動硬盤具有可執行權限之目的的途徑來梳理有關linux系統設備掛載、用戶和群組、以及文檔權限方面的基礎知識。

一、提出問題

當插入一個windows分區格式的移動硬盤或者U盤時,linux系統自動掛載該移動硬盤到/media目錄下,通過ls -al查看其權限,顯示為:drwx------,證明我們可以進入到該盤符目錄,但當進一步查看該盤符下的某可執行文件的權限時,發現其為-rw-------,即可以對該文件進行讀寫操作,但不能執行該文件,通過chmod更改權限也無濟于事,此時如何獲得執行權限?(再比如在移動硬盤上有一源代碼,通過編譯產生了目標程序,但是當通過./來執行時,卻告知沒有權限,同時sudo chmod +x也不起任何作用,在實際工作中遇到這樣的情況時,一般可以通過將源碼拷貝到linux系統磁盤中進行編譯或者將編譯好的目標程序拷貝到linux系統的磁盤中再使用chmod更改權限來解決,但有時候這樣來回拷貝費時費力,如果能直接讓linux系統掛載的移動硬盤具有執行權限就方便多了)

二、linux設備掛載

這一問題涉及到硬盤掛載,首先需要了解linux系統中與磁盤掛載相關的兩個系統文件,即/etc/fstab和/etc/mtab,前者是系統分區信息以及系統啟動時磁盤的掛載參數,該文件是一個靜態文件(系統啟動后不再改變,如人為改變,需要重啟系統);后者是當前系統中已經掛載的磁盤列表,該文件是一個動態文件,即隨系統mount和umount文件系統而隨時發生改變,例如當插入U盤時,系統在mtab文件中寫入該磁盤的相關信息,當拔下U盤時,系統隨之刪除mtab文件中有關該磁盤的信息。

fstab文件內容的格式如下:

# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>          <options>                   <dump>  <pass>

……
proc                       /proc                   proc    nodev,noexec,nosuid              0                 0

……

mtab文件內容的格式如下:

……
proc                       /proc                    proc   rw,noexec,nosuid,nodev          0                 0

……

可見fstab和mtab文件中的格式是一樣的,都是按照“設備名稱—掛載點—分區類型—掛載選項—dump選項—pass選項”的格式組織列表。

1、設備名稱是指系統中設備的名稱,比如/dev/sda1或/etc/sdb1或/etc/sdc1等,這些設備名稱可以通過sudo fdisk -l命令來查看。(上文fstab和mtab文件格式示例中的proc設備是一個虛擬設備,并不在磁盤中真實存在,而僅僅存在于內存中,存儲有關進程和系統的信息)

2、掛載點實際上就是為掛載磁盤創建的文件夾,比如./,./usr,和./swap這樣的系統默認掛載點,當然我們可以自己使用mkdir創建一個文件夾作為掛載點。

3、分區類型在linux下面有ext2,ext3,ext4,jfs,jfs2,reiserfs,reiser4,swap等,在windows下面有FAT和NTFS等。

4、常用的掛載選項包括:(1)auto和noauto: auto允許系統自動掛載或使用mount -a就能掛載,fstab默認就是這個選項 ;noauto使系統開機不自動掛載 或使用mount -a時不掛載;(2)rw和ro:rw表示以讀寫權限掛載該設備,ro表示以只讀權限掛載該設備;(3)suid和nosuid:suid表示允許對該設備進行uid和gid的設置操作,nosuid就是不允許設置uid和gid;(4)dev和nodev:dev表示同時掛載文件系統上的特殊設備,nodev表示不掛載這些特殊設備;(5)exc和noexc:exec表示允許執行該文件系統下的二進制文件,noexc當然表示不允許執行二進制文件;(6)user、nouser、users和owner:user允許指定的普通用戶掛載該設備,nouser表示禁止普通用戶掛載該設備(僅root可以掛載該設備),users表示允許所有普通用戶掛載該設備,owner表示僅設備所有者可以掛載。user和users選項同時隱含noexec,nosuid,nodev選項;(7)sync和asnyc:sync表示對該設備的I/O操作同步進行,不進行緩沖處理,而async表示不同步,進行緩沖處理;(8)defaults: 該選項是rw, suid, dev, exec, auto, nouser, and async這些選項的組合。此外,linux系統針對不同的文件系統還可以設定其他特別選項,例如,對Windows下的NTFS文件系統,可以設置utf8(表示采用UTF-8轉換文件名稱)、uid=****(掛載設備的指定用戶id,可以通過id命令或者查看/etc/passwd文件方式獲得)、gid=****(掛載設備的指定用戶群組id)和umask=***(掛載設備的權限屏蔽,八進制數值)等,對Windows下的FAT(包括msdos,umsdos,vfat等)文件系統,可以設置uid=****,gid=****,umask=***,dmask=***(掛載設備時應用于目錄的權限屏蔽,八進制數值)和fmask=***(掛載設備時應用于普通文件的權限屏蔽,八進制數值)。更多掛載選項可以參見man mount。

5、dump選項用來設置是否讓備份程序dump備份文件系統,0為不備份,1為備份,如果上次用dump備份,將顯示備份至今的天數。

6、pass選項,告訴fsck程序在開機時以什么順序檢查文件系統,為0就表示不檢查,(./)分區只能是1,其它的分區只能是2,當數字相同就同時檢查。

三、linux用戶和群組以及權限

了解了上文中所講的設備掛載,基本已經知道如何在linux下面掛載windows分區格式的移動硬盤了,關鍵就是設置掛載選項從而獲得相應權限。在linux系統中權限設置與用戶和群組概念直接相關,比如在上文中使用ls -al命令時,獲得的有關權限的信息(10個字符,如drwx------)可以分成四個部分,即目錄/文件標識(第1個字符,d表示目錄,-表示文件,其他還可以為l,b和c)、所有者權限(第2-4個字符)、所有者所在的用戶群組權限(第5-7個字符)以及其他用戶權限(最后3個字符)。權限在linux系統安全性方面具有重要作用,在此不述。權限的表示有兩種方式,即字符式和數字式:字符式用如上文中的r、w和x三個字符來分別表示讀、寫和執行權限,-表示不具有任何權限;而數字式的權限表示方法用4、2、1三個數字分別表示讀、寫和執行權限,0表示不具有任何權限,用數字式表示文檔所有者、群組和其他用戶的權限時同一個組的權限需要累加,例如某文檔的權限是- rwx rw- ---,則用數字式表示為760。

至此,我們可以回過頭去解決問題了,當掛載Windows分區格式的文件系統時,我們可以通過uid=****,gid=****和umask=***/dmask=***/fmask=***來設置權限,uid和gid的設置并不難,直接設置為自己的uid和gid就可以;關于權限mask的設置采用數字式的,同樣第一個數字表示所有者的權限mask,第二個數字表示群組的權限mask,第三個數字表示其他用戶的權限mask,如果umask=000,就表示不屏蔽任何用戶的任何權限,即所有用戶具有讀、寫和執行權限,再例如fmask=033,就表示文檔所有者具有讀、寫和執行權限,而群組和其他用戶只具有讀取的權限,而屏蔽了權限3(1和2之和)。

四、解決問題

綜上,可以在/etc/fstab中添加像下面這樣的掛載配置,并重啟系統讓系統掛載硬盤,從而獲得執行權限。

# <file system> <mount point>    <type>                <options>                                             <dump>  <pass>

/dev/sdb1          /media/sdb1         ntfs       utf8,uid=1000,gid=1000, umask=000                     0             0


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

博野县| 正宁县| 巴彦淖尔市| 普定县| 治多县| 内丘县| 永济市| 兰州市| 秦皇岛市| 镇原县| 嘉鱼县| 潮安县| 克什克腾旗| 尚志市| 忻城县| 巴林左旗| 祁东县| 南安市| 大邑县| 闻喜县| 唐海县| 博罗县| 克山县| 呼伦贝尔市| 剑阁县| 昌宁县| 裕民县| 和田市| 弥渡县| 文成县| 海城市| 林周县| 鄂尔多斯市| 桦南县| 连南| 云南省| 威远县| 安义县| 浦东新区| 扎兰屯市| 永昌县|