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

当我插入外置硬盘,插入DVD或尝试查看我的USB驱动器上的内容时,通常的结果就是特殊的行为。

文件系统安装正常。 当我通过sudo su以root身份登录时,我可以完全看到/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/media/casper目录不是我的,也是我无法访问的。 我被诱惑只是chown -R bazinkas,但是在我抓住自己之后,我搜索了一些类似“Media user folder not mine help me”的内容。

花了一段时间,但最后我偶然发现了这个线程,用户解释了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,在常规权限之后用+表示,如drwxr-x---+ 3 root root 。 我的系统没有显示这个。 这些文件夹上的ACL是Ubuntu的标准,还是用户有特殊的事情,我应该担心这是我的问题来自哪里?

谢谢阅读。

由于/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 

或者您可以在/etc/fstab为根分区行的选项添加acl ,例如:

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

启用ACL后,使用setfacl为自己添加权限。 在/ media / casper上提供username读取和执行权限(您需要执行权限才能输入目录或搜索其内容):

 sudo setfacl -mu:username:rx /media/casper 

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

 sudo setfacl -mu:1000:rx /media/casper 

你可以在他的回答中看到你使用getfacl的ACL权限

 getfacl /media/casper 

从用户删除ACL权限

 sudo setfacl -xu:username /media/casper 

清除所有ACL权限

 sudo setfacl -b /media/casper 

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

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

如果它是windows ntfs驱动器,正常的chmod命令将不起作用。

做以下,它适合我。

打开文件/ etc / mtab

gedit / etc / mtab

在此文件中找到驱动器名称(只需将鼠标hover在您正在寻找解决方案的驱动器上,在我的情况下,GUI显示不同的名称,鼠标hover在它上面显示/ media / user-name / drive-name)

现在在etc / mtab中:搜索文件中的驱动器名称,并检查已分配已安装驱动器的驱动器(在我的情况下 – / dev / sda4)

现在将此驱动器安装为:

sudo ntfs-3g / dev / sda4 / media / username

如果您不知道您的用户名,只需打开终端并输入即可

我是谁?

现在我能够执行我的可执行文件。 但我无法看到驱动器名称的内容,所以我卸载了驱动器并再次安装它。