当我运行时ls -l
,我想要更改权限的文件是:
-rw-r--r-- 1 82176 1491 193716029663 Feb 16 2019 cfdna_hc_bam.bam
第一次尝试:chmod 775 cfdna_hc_bam.bam
。结果:chmod: changing permissions of 'cfdna_hc_bam.bam': Permission denied
第二次尝试:sudo chmod 775 cfdna_hc_bam.bam
。它要求我输入密码,我输入了密码,结果:chmod: cannot access 'cfdna_hc_bam.bam': Permission denied
。
当我输入cd ..
,ls -l
,查看我的文件所在目录的权限时,结果如下:drwxrwsr-x 1 93501 1491 8192 Sep 28 14:24 bam_files
。
我发现的唯一类似的问题是(Sudo chmod +x 导致“无法访问 [文件] 权限被拒绝”),这与已安装的图像问题有关,而我的情况并非如此。
编辑:
我在这个目录中创建了一个文件,并更改了它的权限,并且它起作用了:
touch a chmod 755 a
这有效。
然后我使用“sudo”做了同样的事情,但没有成功:
touch a sudo chmod 755 a I get: `chmod: cannot access 'a': Permission denied`.
此外,当我运行命令时,
id
我得到:uid=1004(yonatan) gid=1005(yonatan) groups=1005(yonatan),27(sudo),132(docker)
sudo chown yonatan:yonatan -R <dir>
尝试在文件所在的目录(以及上述目录)上运行,结果是:chown: cannot access 'bam_files': Permission denied
。
答案1
- 该目录是从远程计算机上的另一个用户接收的。
- 您不是该机器的所有者,因此我怀疑该目录是受 sudo 命令“保护的”。
- 尝试联系您从其接收目录的用户和远程机器的根目录,并要求他们运行以下命令:
chown -R yonatan:yonatan <filename>
或chown -R 1004:1005 <filename>
(这是相同的命令)。- 如果 root 运行该命令,他可以直接在您收到的文件上运行该命令。
- 如果用户向您发送了运行命令的目录,他需要在自己的“主文件”中的副本上运行该命令,然后使用您的 uid 和 gid 权限将其发送给您。
- 成为目录的所有者后,尝试
chmod
使用所需的权限再次运行该命令。- 举个例子
chmod 775 <filename>
- 举个例子
- 评论:
- 在您自己的具体情况下,93501 是拥有该目录的用户,而 1491 是拥有该目录的组。
- 解决方案的另一个选择是将您自己的用户添加到 1491(通过根),但如果其他组 1491 用户有权访问您的目录,他们仍然对该文件拥有权限。
- 我建议将此计算器用作“权限计算器”http://permissions-calculator.org/
- 如果以下答案无法解决问题,请在评论中告诉我,以便我们继续尝试解决问题。