我是一名生物医学科学家,在运行我们的一位合作者编写的自定义数据分析流程时遇到了麻烦。他的脚本崩溃了
/bin/sh: 1: /usr/local/bin/FastQC/FastQC_v0.10.1: Permission denied
make[2]: *** [/home/kat/gentrap.git/gentrap_OUT/1_Bira_TAAGGCGAGAGTAG_R1.fastqc] Error 1
make[2]: Leaving directory `/home/kat'
问题是,我已经让自己成为/usr/local/bin/FastQC
(sudo chown -R user:user /usr/local/bin/FastQC
)的所有者,并授予自己读/写/可执行权限(sudo chmod -R +rwx /usr/local/bin/FastQC
)。我尝试使用列出权限ls -la
,但输出让我有点困惑:
drwxr-xr-x 3 kat kat 4096 mei 8 14:20 .
drwxr-xr-x 5 root root 4096 mei 8 14:20 ..
drwxr-xr-x 7 kat kat 4096 mei 8 14:20 FastQC_v0.10.1
据我了解,这意味着我是当前目录和子目录的所有者FastQC_v0.10.1
,并且我应该拥有所有权限。Root 是父目录的所有者,即/usr/local/bin
。我读这个输出正确吗?为什么脚本会因为权限不足而崩溃?
答案1
我遇到了同样的错误。我最终将 FastQC 放到/usr/share
,因为许多其他包都放在那里,并按照安装指南的建议将链接放到/usr/local/bin
。然后我更改了 下文件的权限FastQC
。
sudo ln -s /path/to/FastQC/fastqc /usr/local/bin/fastqc
sudo chmod -R 755 /path/to/FastQC
答案2
我认为/usr/local/bin/FastQC
这是一个符号链接目录,既然你说你已经拥有它,那么你可能必须将执行权限添加到程序所在的原始位置fastqc
。还请注意脚本在哪个步骤崩溃 - 脚本是否试图在你没有权限的地方创建任何文件/目录,等等。
答案3
sudo chmod -R +rwx /usr/local/bin/FastQC
/usr/local/bin/FastQC
应该为所有者、组和其他人设置读/写/执行标志及其内容,但从您的ls -la
输出来看,组和其他人缺少写标志:
drwxr-xr-x 3 kat kat 4096 mei 8 14:20 .
[...]
drwxr-xr-x 7 kat kat 4096 mei 8 14:20 FastQC_v0.10.1
虽然这可能不是什么问题,但看起来好像chmod
失败了。
我要尝试做的第一件事是chmod -R +rwx /usr/local/bin/FastQC
再次运行并检查/usr/local/bin/FastQC
其内部文件夹/文件(可能尚未为所有者设置读/写/执行标志)是否实际设置为由所有者读/写/执行。