
我使用的是 ubuntu 14.04,想在我的管理員帳戶旁邊建立另一個帳戶,供我的家人使用,以免打擾我的工作。問題是我無法授予其他帳戶存取包含資料的 NTFS 分割區的權限,我已經嘗試了論壇上提到的一些解決方案,但沒有任何效果。機器重新啟動時首先登入的使用者似乎仍然保留了該分割區,並禁止任何其他使用者存取它,即使在他登出後也是如此。我發現唯一有效的技巧是解除安裝在註銷目前使用者之前該分區。這樣下一個要登入的人就會山分區並訪問它。
我的問題確實是,這是否是分區訪問在不同計算機用戶之間工作的方式,我的意思是卸載您正在使用的任何分區,以便其他用戶能夠在您之後使用它,或者我無法正確授予對該分割區的存取權限分割?
答案1
如果您在電腦開啟時始終為所有使用者始終需要此功能,那麼實現此目的的最簡單且可能最好的方法是定義安裝點和在/etc/fstab
.透過這樣做,您可以在安裝分割區/磁碟機時自動提供存取權限。
這是一種更高級的做法,但如果具有 NTFS 分區的設備始終連接到計算機,這可以消除您遇到的一些麻煩,並有效地自動提供圍繞數據的安全控制,並允許我們實際上隨著時間的推移修改控件,而不必每次都使用不同的選項或使用者手動重新安裝。
我在這個答案中還有其他一些部分。
- 第一個是我的 NTFS 條目之一
fstab
,它適用於我的 Ubuntu 電腦上的 Windows 分割區(我是電腦上的唯一使用者)。 - 第二部分記錄了我的
fstab
條目,並解釋了安裝選項。 - 第三部分為您提供了我建議的過程,用於提供對分區的“安全”訪問、啟動時自動掛載以及適合您的情況的一組合適的掛載選項(包括創建一個“用戶組”,您可以在其中新增有權存取該分割區的使用者)該使用者群組可作為“存取控制”,所套用的特定檔案權限也是如此。
/etc/fstab
如果您在第三部分中聽了我的講話,第四部分將為您提供一條可以使用的潛在路線。
(一)我的fstab
參賽作品
不幸的是,我的筆記型電腦上有這樣一個 NTFS 分區,我必須使其對自己和系統服務可讀...
# Windows Partition - targetted for /media/win7
UUID=UUIDOFPARTITION /media/win7 ntfs-3g defaults,locale=en_US.utf8,windows_names,umask=7000,uid=1000,gid=1000,user 0 0
這行是什麼意思?嗯,前面有 a 的第一行#
是註解。第二行是更重要的一點,它是實際的fstab
條目:
- 我透過 UUID 來識別分區,UUID 是標識分區的字串。您可以透過執行下列操作來取得任何給定分割區的 UUID
sudo blkid /dev/sda1
(替換/dev/sda1
為分割區的實際 ID,因此,如果它位於第二個磁碟上並且是第二個磁碟分割區表中的第三個分割區,那麼可能/dev/sdb3
會在此命令UUID=
中fstab
。 - 我在啟動時安裝它
/media/win7
。 - 它是一個 NTFS 分割區,所以我傳遞給
fstab
該ntfs-3g
選項,以便它知道它是 NTFS。 - 我為它提供了預設的安裝選項,然後是一些(我稍後會解釋這些)。
- 第五個欄位確定檔案系統是否需要轉儲,但由於這不是必需的,所以我將它傳遞給了
0
. - fsck 使用第六個欄位來決定啟動時檔案系統檢查的順序,但由於我不需要它這樣做,所以我傳遞了
0
.
(2) 安裝選項
我通過了很多安裝選項:
defaults
- 傳遞預設掛載選項(rw
- 讀/寫,suid
- 允許設定使用者識別碼或設定群組標識符位生效,dev
- 解釋檔案系統上的字元或區塊特殊設備,exec
- 允許執行二進位文件,auto
- 允許使用選項-a
, -禁止使用者安裝(稍後覆蓋), - 允許與檔案系統進行非同步 I/Omount
。nouser
async
locale=en_US.utf8
- 使用 UTF8 強制執行美國英語區域設置windows_names
- 強制對分割區中的新檔案實施 Windows 名稱限制。umask=7000
- 基本上,逆 chmod。定義什麼是權限不是允許用於文件。本質上,我在這裡不禁止任何讀取/寫入/執行,因此安裝位置上的所有檔案都有效地獲得讀取、寫入和執行權限。我不想要設定任何特殊位元(setuid、setgid、sticky),因此我必須從第一個八位元組中刪除它們 - 因為它們的數字總和是“7”並且我禁止這些權限,我放一個前導7 。uid=1000
,gid=1000
- 將分割區安裝到該資料夾中,其使用者和群組擁有權為 UID(使用者 ID)和 GID(群組 ID)1000
(這是我的使用者的使用者和群組,teward
在 Ubuntu 系統上)。user
- 允許使用者安裝或卸載目錄。覆蓋nouser
中的選項defaults
。
(3) 以安全的方式為您提供解決方案
不過,對於您的用例,我們可能可以將安裝選項簡化為這些選項,因為使用者正在存取資料而不是系統。然而,讓我們以安全的方式做到這一點。讓我們建立一個可以在此處進行讀取/寫入/執行的使用者群組。
addgroup ntfs-users
- 這將建立一個名為「ntfs-users」的使用者群組。
id -g ntfs-users
- 這將為我們提供“ntfs-users”的數字組 ID。我們需要這個作為gid=
安裝選項。
usermod -a -G ntfs-users USERNAME
- 將USERNAME
使用者新增至ntfs-users
我們剛剛建立的群組。
現在,我們可以利用這串掛載選項:
rw,exec,async,auto,user,locale=en_US.utf8,windows_names,umask=7007,gid=654
我的 fstab 中的字串沒有執行以下操作:
- 從中選擇我們想要使用的某些選項
defaults
- 允許
uid
所有者使用者為任何內容(通常在啟動安裝時為 root) - 不允許使用者安裝/解除安裝
- 將掛載點的「群組」所有權(以及對內部資料的存取權限)設為 Group ID ,也就是我們上面建立的
654
假設群組 IDntfs-users
- 根本不允許「其他人」用戶群組(即不是所有者用戶,也不是
ntfs-users
群組中的任何人)存取資料。
如果您想擁有數據,即成為所有者用戶而不是,則在該選項root
中將其添加回來。uid=
使用id -u YOURUSERNAME
並替換為您的使用者名稱以獲得與該選項一起使用的YOURUSERNAME
使用者 ID ( )。uid
(4)/etc/fstab
假設您在第 3 節中聽了我的發言,則可能是您的用例的條目
取得分割區的 UUID,那麼這可能類似於您的/etc/fstab
行:
UUID=0123456789ABCDEF /mnt ntfs-3g rw,exec,async,auto,user,locale=en_US.utf8,windows_names,umask=7007,gid=654 0 0
將其中的值替換UUID=
為您所在分割區的 UUID想若要掛載,請替換為系統上的掛載點,將掛載選項中/mnt
的值替換為我們建立的群組的群組 ID,如果您希望將您的使用者作為所有者而不是,則新增選項,提供對於您的用戶,正如我之前所說的那樣。gid=
ntfs-users
root
uid=
uid