題 Linux - 裝載具有特定用戶權限的設備


如何在啟動時安裝具有特定用戶權限的設備?我還有一些問題需要解決。我願意加分 uid=1000 和 gid=1000。我目前進入了 /etc/fstab/ 文件看起來像這樣:

dev /var/www vboxsf rw, suid, dev, exec, auto, nouser, async, uid=1000

72
2017-08-08 12:32


起源


別忘了gui = 1000。此外,/ var / www的所有權/權利是什麼。它應歸root所有。 - skub
@skub:所有者 /var/www/ 是根。 dev /var/www vboxsf rw, suid, dev, exec, auto, nouser, async, uid=1000 gui=1000 做得不好(Ubuntu在重啟失敗後刪除了條目)。 - wowpatrick
您的掛載源是“dev”?? - James T Snell
@wowpatrick - 你的掛載設備應該是/ dev / sda1,它不應該是'dev'。 - skub
@skub:這是一個VirtualBox共享文件夾,所以/ dev是對的。我現在想通了, sudo mount -t vboxsf -o umask=0022,gid=33,uid=33 dev /var/www 工作得很好。 - wowpatrick


答案:


要安裝具有特定權限的設備,您可以使用 -o Option 安裝設備時的指令。要安裝您描述的設備,請運行:

 mount -t deviceFileFormat -o umask=filePermissons,gid=ownerGroupID,uid=ownerID /device /mountpoint

例如,mountig一個VirtualBox共享文件夾 /var/www 同 www-data 所有者看起來像這樣:

mount -t vboxsf -o umask=0022,gid=33,uid=33 dev /var/www

如果要在啟動時安裝設備,可以將以下條目添加到您的設備中 /etc/fstab 文件:

 /device /mountpoint deviceFileFormat umask=filePermissons,gid=ownerGroupID,uid=ownerID

再次,以相同的例子進入 /etc/fstab 文件看起來像這樣:

dev /var/www vboxsf umask=0022,gid=33,uid=33

對於不支持作為特定用戶(如ext4)安裝的文件系統,上面將給出錯誤

Unrecognized mount option "uid=33" or missing value

更改ext4掛載的所有者只需運行

chown username /mountpoint

安裝完畢後。


96
2017-08-08 23:26



我能夠在ext4上使用uid / gid選項。 - CMCDragonkai
這似乎不適用於mount -bind,我正在使用btrfs文件系統 - meffect


對於像ext3或ext4這樣的文件系統,做完之後

    chown -R username:group /mountpoint

要更改當前現有文件的所有者,您可以將組ID位設置為使用特定組創建新文件(對於Linux下的用戶ID不起作用):

    find /mountpoint -type d -exec chmod g+ws {} \;

關於setuid和setgid的維基百科條目非常有用,請參閱 關於目錄的部分


1
2017-09-14 14:24



更改設備上所有文件的所有權非常具有侵略性。既然有一個 -o mount的選項,這是更好的方法。 - Limited Atonement
-o 不幸的是,對於ext4不起作用,正如@wowpatrick在回答中所解釋的那樣。 - js.
chown安裝驅動器的內容給其他用戶是荒謬的。你不知道你可能會破壞該驅動器上的任何應用程序。如果所有內容都屬於您的用戶,那可能沒問題,但這是一個非常大的禁忌...... - carlspring
有問題的設備是/ dev / www,很容易控制哪些應用程序可以訪問它(可能只有一個WWW服務器,您可以在操作期間關閉它)。即使使用它的應用程序仍在運行,它仍會繼續運行,因為這是操作的關鍵點。 - js.