/ media / user文件夹上的权限问题阻止我访问外部媒体


11

当我插入外部硬盘驱动器,插入DVD或尝试查看USB驱动器上的内容时,通常会出现异常现象。

文件系统安装正常。当我以root用户身份登录时sudo su,可以看到/media/casper/externaldrive完全正常的内容。但是,我的用户casper不能。Ubuntu回复涉及该位置的所有操作Permission denied

casper@casper-desktop:/media$ ll /media/casper/externaldrive
ls: cannot access '/media/casper/externaldrive': Permission denied

我决定深入研究该/media文件夹的权限(问题)。作为casper,我看到以下内容:

casper@casper-desktop:/media$ ls -alF
total 16
drwxr-xr-x  4 root root 4096 apr 21 17:47 ./
drwxr-xr-x 25 root root 4096 jul 29 15:43 ../
drwxr-x---  3 root root 4096 aug  3 21:02 casper/
lrwxrwxrwx  1 root root   45 apr 21 17:47 .directory -> /etc/kubuntu-default-settings/directory-media
lrwxrwxrwx  1 root root   42 apr 21 17:47 .hidden -> /etc/kubuntu-default-settings/hidden-media
drwxr-xr-x  2 root root 4096 feb 29 23:56 home/

令我惊讶的是,它说的total 16最多只有6个列表。因此,我再次运行了命令,但是为root。结果是一样的,很奇怪。(有人可以启发我吗?)

无论如何,令我震惊的是该/media/casper目录不是我的,也无法被我访问。我很想chown -R摆脱其中的麻烦,但是当我掌握了自己之后,我在Google上搜索了类似“媒体用户文件夹而不是我的帮助”之类的内容。

花了一段时间,但最后我偶然发现了这个线程,用户在其中解释了750 root:root /media/user文件夹的用途。它可以确保只有root用户才能在那里安装,查看和管理文件系统,其中的各个权限都更改为实际用户。

因此,如果我的信息正确无误,那么/media/casper/externaldrive权限应该对我有利。我检查了,

root@casper-desktop:/media/casper# ll
total 12
drwxr-x--- 3 root   root   4096 aug  3 21:02 ./
drwxr-xr-x 4 root   root   4096 apr 21 17:47 ../
drwxrwxrwx 1 casper casper 4096 aug  3 20:20 externaldrive/

这似乎是事实。

这就是我遇到的问题。文件系统在目录树中一直具有我的权限,但是我无法访问单个文件。对于CD和USB驱动器来说是相同的。

谁可以帮助我获取我的宝贝?

哦,顺便说一句。前面提到的线程/media/user表示这些文件夹上的ACL ,+在常规权限(如)后用a表示drwxr-x---+ 3 root root。我的系统未显示此信息。这些文件夹上的ACL是Ubuntu的标准配置,还是用户有特殊情况发生?我是否应该担心这是我的问题所在?

谢谢阅读。


1
我使用双重启动设置(16.04和Win7),并且在文件夹/ media / user的权限末尾看到一个+。因此,我认为您的问题出在哪里。我发现这些(12)通过googleing,但我没有使用ACL之前知道他们是否足以解决您的问题。
卡苏斯

2
ls通过该目录中的文件中使用总数的1KB模块,非递归。参见unix.stackexchange.com/a/4110/44281
amotzg

@Karsus谢谢,我想您已经找到了我的问题。我将在下面尝试Zanna的答案,并将为您提供最新信息。@ amotzg啊哈,这一切都清理了。谢谢:)
MicroParsec

出于好奇,“ 3” drwxr-x--- 3*是什么意思?
thephoenix01 '19

Answers:


15

由于的权限和所有权/media/casper

drwxr-x---  root root 

如果没有+用于ACL(访问控制列表)的文件,则很明显只有root可以打开,输入,读取或写入该目录。像我们这样谦虚的用户会在字符串末尾获得许可---:(

我们没有特权的人获得使用ACL访问此位置的权限。我不确定为什么您还没有这些,但是您可以设置它们,这可能很简单,也可能需要一些修改:

  • acl包需要(检查apt-cache policy acl
  • 文件系统必须使用acl选项挂载

要检查后者(sdxY适当替换您的根分区):

sudo tune2fs -l /dev/sdxY | grep "Default mount options:"

应该返回:

Default mount options:    user_xattr acl

默认安装选项在 /etc/mke2fs.conf

它们可能会被覆盖,因此请检查:

cat /proc/mounts | grep sdxY

看起来像:

/dev/sdxY / ext4 rw,relatime,errors=remount-ro,data=ordered 0 0

上面的方法很好,(acl不需要提及),但是如果它说noacl您需要更改它。

您可以将选项添加到默认安装选项,如下所示:

sudo tune2fs -o acl /dev/sdxY

或者,您可以acl/etc/fstab以下示例中为根分区行添加选项:

UUID=whatever /     ext4    errors=remount-ro,acl    0       1

启用ACL后,用于setfacl为您自己添加权限。要username授予对/ media / casper的读取和执行权限(您需要具有执行权限才能输入目录或搜索其内容):

sudo setfacl -m u:username:rx /media/casper

您可以username用uid 替换(可能是1000-用id命令检查)

sudo setfacl -m u:1000:rx /media/casper

getfacl像Oli一样查看您使用的ACL权限

getfacl /media/casper

删除用户的ACL权限

sudo setfacl -x u:username /media/casper

清除所有ACL权限

sudo setfacl -b /media/casper

注意:我作弊,问自己一个问题,为什么在中有这么多条目/media。答案在这里


1
谢谢@Zanna:apt-cache policy acl返回已安装最新的ACL。Default mount options提及aclcat /proc/mount没有提及noacl。因此,我想我现在需要手动添加ACL权限,因为某些原因它们是不存在的。我使用了您描述的命令来向自己授予该/media/casper目录的rx权限,并且很高兴地说我可以再次访问我的外部媒体。谢谢赞娜!
MicroParsec

是的,很高兴您已解决问题:D
Zanna

2

当您想从Ubuntu授予对Windows驱动器的访问权限时

chmod如果它是Windows NTFS驱动器,则普通命令将不起作用。

以下对我有用。

打开文件/etc/mtab

gedit /etc/mtab

在此文件中找到驱动器名称(将鼠标悬停在您要寻找解决方案的驱动器上,在我的情况下,GUI显示不同的名称,而将鼠标悬停在其上显示/media/user-name/drive-name

现在在/etc/mtab

在文件中搜索驱动器名称,然后检查已安装的驱动器分配给哪个驱动器(在我的情况下- /dev/sda4

现在使用以下命令安装该驱动器:

sudo ntfs-3g /dev/sda4 /media/"$USER"

现在,我可以执行我的可执行文件了,但是看不到drive-name的内容,因此我卸载了该驱动器,然后又重新安装了它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.