我有一个外部硬盘驱动器,由于仅使用Ubuntu和Fedora,因此决定将硬盘驱动器格式化为ext4,一切都很好。
问题是当我安装驱动器时,我需要更改权限,以便可以读写。
我应该使用哪种许可?是我的用户名吗?
我有一个外部硬盘驱动器,由于仅使用Ubuntu和Fedora,因此决定将硬盘驱动器格式化为ext4,一切都很好。
问题是当我安装驱动器时,我需要更改权限,以便可以读写。
我应该使用哪种许可?是我的用户名吗?
Answers:
尽管可能是我me脚,但我将不得不再回答另一个问题。如果我们要讨论的只是一个操作系统,那么要么
sudo chown -R (user name) /dev/(device name)
(ubuntu)
要不就
chown -R (user name) /dev/(device name)
fedora-否sudo
,只需从根目录运行命令。
面条刮刀部分以及我没有任何好的答案的部分是如何制作的,因此在发行版之间来回切换时,您无需手动重新键入。我几乎很想将这行添加到我的行中~/.bashrc
,但是也许我不知道或还未想到一种更好的方法。
最简单的解决方案是确保您的Ubuntu&Fedora用户帐户具有相同的用户ID(UID)。
我认为Fedora默认将用户帐户设置为500,而Debian和Ubuntu将用户帐户默认设置为1000,因此在一个操作系统中,您的用户号为500,而在另一个操作系统中的用户号为1000。文件系统使用此UID号码以跟踪权限,因此,如果您确保它们具有相同的UID,则它们将被视为同一用户,并且不会发生任何权限问题。
我认为您可以做的最好是将它们都设为UID = 1000,因此在Fedora系统中更改UID,然后确保Fedora安装中外部磁盘上以及用户$ HOME中的所有文件都归UID 1000所有。这样您就不会再有权限问题了。
在/ etc / fstab中,您可以将uid = 1000(在Ubuntu中-Fedora中为500)放到用户所拥有的驱动器中(假设您是第一个用户,yada yada yada ...如果不是,则是用户的)来自的uid id
)和的umask = 000,如果你想所有用户都对刚刚通过的uid =指定的连接(或077 -这是一个面膜,让你把你想搭配chmod的对面)
有关使用/ etc / fstab的更多信息:http : //ubuntulinuxtipstricks.blogspot.com/2008/02/fun-with-etcfstab.html
不幸的是,Linux内核对ext2 / ext3 / ext4 FS强制执行POSIX权限。
您可以通过共享组解决POSIX权限。我问相应的问题:https : //unix.stackexchange.com/questions/273144/predefined-group-ids-across-linux-distros/但我还是做了自己的研究。
我发现sys组在Debian,Ubuntu,RedHat,Fedora,CentOS,Suse,FreeBSD,OpenBSD,NetBSD,MacOSX,Solaris上共享ID 3。
考虑到这种发现,一种解决方案可能看起来像:
$ sudo chgrp -R sys /mnt/data/dir
$ sudo chgmod -R g+s /mnt/data/dir
$ sudo fsetacl -R -m g:sys:rwx /mnt/data/dir
$ sudo fsetacl -R -d -m g:sys:rwx /mnt/data/dir
的形式和风格(无论何时使用Linux / FreeBSD / MacOSX / Solaris):
$ sudo adduser user sys
也可以看看:
cd /mnt/data/dir; touch example.txt; ls example.txt
...显示... -rw-rw----+ 1 user user 3 nov 27 20:16 example.txt
。稍后执行 mv example.txt ~; ll ~/example.txt
...显示... -rw-rw----+ 1 user user 0 nov 27 21:22 /home/user/example.txt
,并+
在权限末尾显示 。因此,很多文件+
最终都会出现在很多地方,这使人们感到奇怪,这些文件为什么如此特殊(只是因为它们碰巧是从特定文件夹中复制/移动的)。有什么方法可以停止+
自动生成这些文件吗?
这与@gavenkoa使用共享组的方法略有不同,并且不涉及已安装驱动器的修改。
检查已安装的驱动器中使用了哪个组ID(GID)。
su
cd /mnt/data/dir # or wherever it is mounted
ls -l
假设您看到与以下内容类似的内容:
drwxr-xr-x 3 12588 12000 4096 30.06.2017 11:22 Documents/
这意味着12000
驱动器中数据的当前GID,并且该组的任何其他用户都可以读取和执行该数据(但是不能写入)。创建一个新组(例如driveusers
),然后将当前用户添加到新组中:
groupadd -g 12000 driveusers
sudo gpasswd -a $USER driveusers # add the current user to the new group
sudo chmod 770 /mnt/data/dir # optional, just to ensure the drive mount is accessible to user and group of the drive
我找到了其他解决方案:
有了这个:
sudo chgrp -R sys /mnt/data/dir sudo chmod -R g+s /mnt/data/dir sudo setfacl -R -m g:sys:rwx /mnt/data/dir sudo setfacl -R -d -m g:sys:rwx /mnt/data/dir
和它的味道:
sudo adduser user sys
您的用户可以读写上的任何文件
/dir
。
@jadelord @ Givenkoa您是否认为针对Ubuntu(或Fedora)用户的建议解决方案现在可以进行任何改进?谢谢