Linux本地目录权限作为非root用户的问号


8

好的,那是新的。我已经看到过类似的情况,包括存储设备故障,远程存储(SAN,NAS)故障,我想我什至也看到过由挂载权限引起的类似情况。但这是我第一次看到这种情况发生在与homedir相同的文件系统上。

我对此感到很好奇...什么样的渗透在这里?绝对不会挂载(我在同一个ext4文件系统上),而不是SELinux,而不是ACL。然后呢?

我不记得如何创建此目录。它可能是由某种软件创建的。

对我来说,最奇怪的部分是甚至不允许目录查看其或其父级的信息(最后一个命令)...

Linux Mint Sarah

user01@MyPC ~/somedirectory $ ls -l ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:
ls: negaliu pasiekti './deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:/workspace': Permission denied
viso 0
d????????? ? ? ? ?            ? workspace
user01@MyPC ~/somedirectory $ ls -ld ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:
drw-r--r-- 3 user01 user01 4096 Rgs 27  2016 ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:
user01@MyPC ~/somedirectory $ 
user01@MyPC ~/somedirectory $ 
user01@MyPC ~/somedirectory $ ls -l ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:
ls: negaliu pasiekti './deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:/workspace': Permission denied
viso 0
d????????? ? ? ? ?            ? workspace
user01@MyPC ~/somedirectory $ 
user01@MyPC ~/somedirectory $ 
user01@MyPC ~/somedirectory $ sudo file ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:
./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:: directory
user01@MyPC ~/somedirectory $ sudo ls -l ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:
viso 4
drwxr-xr-x 3 user01 user01 4096 Rgs 27  2016 workspace
user01@MyPC ~/somedirectory $ sudo stat ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:
  File: './deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:'
  Size: 4096        Blocks: 8          IO Block: 4096   aplankas
Device: 807h/2055d  Inode: 3937216     Links: 3
Access: (0644/drw-r--r--)  Uid: ( 1000/ user01)   Gid: ( 1000/ user01)
Access: 2017-09-21 12:57:33.990819052 +0300
Modify: 2016-09-27 11:18:38.309775066 +0300
Change: 2017-03-13 14:56:40.960468954 +0200
 Birth: -
user01@MyPC ~/somedirectory $ sudo getfacl ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:
# file: deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:
# owner: user01
# group: user01
user::rw-
group::r--
other::r--

user01@MyPC ~/somedirectory $ stat ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:
  File: './deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:'
  Size: 4096        Blocks: 8          IO Block: 4096   aplankas
Device: 807h/2055d  Inode: 3937216     Links: 3
Access: (0644/drw-r--r--)  Uid: ( 1000/ user01)   Gid: ( 1000/ user01)
Access: 2017-09-21 12:57:33.990819052 +0300
Modify: 2016-09-27 11:18:38.309775066 +0300
Change: 2017-03-13 14:56:40.960468954 +0200
 Birth: -
user01@MyPC ~/somedirectory $ stat ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:/workspace
stat: nepavyksta patikrinti './deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:/workspace': Permission denied
user01@MyPC ~/somedirectory $ sudo stat ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:/workspace
  File: './deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:/workspace'
  Size: 4096        Blocks: 8          IO Block: 4096   aplankas
Device: 807h/2055d  Inode: 3937217     Links: 3
Access: (0755/drwxr-xr-x)  Uid: ( 1000/ user01)   Gid: ( 1000/ user01)
Access: 2017-09-21 12:58:46.845727190 +0300
Modify: 2016-09-27 11:18:38.309775066 +0300
Change: 2016-12-02 13:56:08.298109826 +0200
 Birth: -
user01@MyPC ~/somedirectory $ stat .
  File: '.'
  Size: 4096        Blocks: 8          IO Block: 4096   aplankas
Device: 807h/2055d  Inode: 3278479     Links: 23
Access: (0755/drwxr-xr-x)  Uid: ( 1000/ user01)   Gid: ( 1000/ user01)
Access: 2017-09-21 09:46:22.102269130 +0300
Modify: 2017-09-20 17:33:04.564009275 +0300
Change: 2017-09-20 17:33:04.564009275 +0300
 Birth: -
user01@MyPC ~/somedirectory $ ll ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:/
ls: negaliu pasiekti './deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:/workspace': Permission denied
ls: negaliu pasiekti './deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:/.': Permission denied
ls: negaliu pasiekti './deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:/..': Permission denied
viso 0
d????????? ? ? ? ?            ? ./
d????????? ? ? ? ?            ? ../
d????????? ? ? ? ?            ? workspace/
user01@MyPC ~/somedirectory $ 

属性:

user01@MyPC ~/somedirectory $ sudo lsattr ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:/
-------------e-- ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:/workspace
user01@MyPC ~/somedirectory $ sudo lsattr ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D\:/workspace
-------------e-- ./deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D:/workspace/directory2
user01@MyPC ~/somedirectory $ 

文件系统如何安装?它是什么类型的文件系统?
拉曼Sailopal

所有这些都在同一个ext4文件系统上-我的/ home文件系统上。在文章中提到
netikras

2
请不要张贴文字图片。并且,请仅显示相关信息。至少,您可以删除错误的命令!这很难按照您展示的方式进行。
terdon

我应该编辑帖子吗?
netikras

2
文件系统损坏和读取inode困难的可能性如何?dmesg报告什么吗?
拉曼Sailopal

Answers:


17

在文件上读取足以检查权限。您需要阅读并在文件夹上执行文件。

chmod -R a+X ./deploy_dir

大写的X仅设置在文件夹(和已经设置了执行位的文件)上执行。


5
我曾经在类似问题上呆了半天,很容易错过!
HoD

7

读取文件的权限需要调用stat(2)它,并且还要求包含目录(路径中的所有目录)具有执行/访问权限。实际上,其他所有使用文件名的系统调用都一样。但是,读取目录的内容(文件名列表)仅需要对该目录具有读访问权限。

在您的示例代码段中:

~/somedirectory $ ls -l .../bin/D\:
ls: negaliu pasiekti '.../bin/D:/workspace': Permission denied
viso 0
d????????? ? ? ? ?            ? workspace

ls尝试致电stat(".../bin/D:/workspace"),出现错误并投诉。在某些系统上,您可以从readdir/ getdents调用中获取部分信息以及文件名,而无需使用stat。像这里一样,workspace显示为目录。

在这里,我们看到任何用户都没有x位:

~/somedirectory $ ls -ld .../bin/D\:
drw-r--r-- 3 user01 user01 4096 Rgs 27  2016 .../bin/D:

以root用户身份获得完整列表,因为root用户会完全忽略权限位。


您是否可以做同样的事情,但是可以LC_ALL=C导出到您的环境中呢?
CVn

1

为了查看文件属性,需要读取目录的权限。如果无法做到这一点,将显示问号。

由于该用户无法阅读信息的原因,请查看目录的属性(.../D:/.上方)。另一个可能的原因是该目录是否已被删除或由于与访问模式不同的原因而无法访问(例如,网络文件系统,过时的句柄)。


更新了问题。D:\,其子级,其父蚂蚁my〜/的属性都相同。目录。
netikras

这个目录已经存在了几个月了。它并没有消失在任何地方。显然,这是在告诉我,除非我是root,否则我不能进入内部:/我认为这不适用于传播媒体或文件句柄
netikras

请尝试检查所有父目录,如果其中任何一个目录的属性都会造成问题(请查看是否ll失败,user01直到根目录下的任何父目录都失败)。无需发布输出,请告诉我们结果。
Ned64

1
我刚刚将目录打包,将其存储到另一台服务器并进行了相同的ls测试。结果是相同的
netikras

2
您没有x标志,因此HoD是正确的。在您混乱的输出中,我还没有看到这一点。strace会告诉你的。太。
2017年

0

今天,我遇到了一个非常相似的问题,并带有类似的症状:“权限”和“所有权”字段中的问号,即使使用root / sudo,我也无法更改其中的任何一个。然后我终于想起来了,这个特定目录实际上是Windows文件共享上一个目录的安装点,该目录是我几周前设置的(在一次试验中,以查看Samba / CIFS是否对我的项目有用),显然同时它被卸载了。重新发出mount.cifs命令并输入我的网络Windows部分的凭据后,“ ls”报告了目录中的正常权限和所有权信息。由于症状看起来完全像您的症状,我想知道您是否也处于类似情况,这还因为“ D:”看起来非常像Windows。


嗨,绿色对勾表示询问该问题的用户已将答案标记为“已接受”。因此,我们至少可以假设的权限能够使用chmod改变。该目录位于用户的主目录(~)下。另外,他们已经意识到,诸如此类的问题可能是由于远程存储的安装问题所致。
sourcejedi

另请注意,该stat命令确认了这一点。比较vs sudo stat 的Device字段stat ../deploy_dir/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/D \:文件:'./deploy_dir/liferay-portal-6.1.1-ce -ga2 / tomcat-7.0.27 / bin / D:'`。这是相同的。此输出很好地证明了它们在同一文件系统上。
sourcejedi

啊,对!对不起,噪音...
davino
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.