問題描述
我在我的 MacBook 上安裝了 Ubuntu 和 Windows,而 Ubuntu 是我的主要操作係統;但是,我所有的媒體都保留在我的 OSX 分區上。我希望能夠從 Ubuntu 訪問它(至少是我的 OSX 用戶的主文件夾),而無需以 root 身份啟動媒體播放器(或其他任何東西)。另外,因為我偶爾想在 OSX 中啟動我的機器,所以我不想更改我需要經常更改的任何內容(我閱讀了很多關於更改 UID 的內容——我不完全理解這意味著什麽,但我不想根據我使用的操作係統來回更改我的 UID。同樣,我不想來回更改文件係統權限)。
另外,我看到了一些關於 “noowner” 選項的信息,但這似乎並沒有達到我想要的效果。
所以我想我希望能夠做這樣的事情:
sudo mount -t hfsplus -o noowner /dev/sda2/ /media/Mac
然後能夠訪問我的所有媒體(至少是我的 OSX 用戶主文件夾中的所有內容),而無需以 root 身份訪問。 (為了清楚起見:上麵的命令行條目沒有做我想做的事情,但我希望能夠做類似的事情)。
還是更改我的 UID 會更好?如果是這樣,怎麽辦?
最佳回答
bindfs
就是答案。它將采用已安裝的文件係統,並使用您想要的任何 uid 提供它的視圖:
sudo apt-get install bindfs
mkdir ~/myUIDdiskFoo
sudo bindfs -u $(id -u) -g $(id -g) /media/diskFoo ~/myUIDdiskFoo
次佳回答
我無法弄清楚如何忽略權限,但我最終更改了我的 Ubuntu 帳戶上的 UID 以匹配我的 OSX 帳戶:
sudo useradd -d /home/tempuser -m -s /bin/bash -G admin tempuser
sudo passwd tempuser
輸入新密碼。注銷,使用用戶名 “tempuser” 和您之前選擇的密碼以 “other” 身份登錄。打開終端並輸入:
sudo usermod --uid 501 yourusername
sudo chown -R 501:yourusername /home/yourusername
*將 “yourusername” 更改為您的非臨時用戶名,將 501 更改為您的 Mac 帳戶的 UID(第一個 Mac 帳戶從 501 開始,但後續用戶將有不同的 UID)。
退出 tempuser 並重新登錄到您的普通帳戶(這很重要;不要隻是切換用戶——壞事會發生)。打開終端窗口並輸入:
sudo userdel -r tempuser
有關詳細信息,請訪問 this page 。
Caveats
-
隻有一個 linux 用戶可以訪問。此設置將不允許多個 linux 用戶訪問 HFS+ 驅動器上的多個用戶目錄。這是因為 Apple 將用戶目錄(以及音樂等媒體目錄)鎖定為 700 (
rwx------
)。 -
更改 UID 後,登錄管理器將停止列出該用戶。您必須將
/etc/login.def
中的UID_MIN
選項從1000
更改為500
。 -
最後,由於用戶 UID 發生了變化,對驅動器的訪問變成了權限混亂。您必須記下用戶主文件夾的確切位置才能查看它。對於沒有
sudo
的原始 Apple 用戶主文件夾之外的文件夾,選項卡補全和瀏覽文件管理器將成為問題。
第三種回答
documentation for the linux kernel implementation of the HFS+ filesystem 列出了一個 uid
掛載選項,允許您 “own” 所有文件(也許還有一些其他可能有用的選項)。
第四種回答
我知道這已經過時了,但還有另一種方法似乎對我來說效果很好。由於所有文件都歸 “root” 用戶所有,我所做的隻是從終端發出 su root
並從那裏發出 ls -lah /media/Macintosh HD
。通過使用 root,我能夠繞過權限被拒絕錯誤。