我在Centos7系统上使用singularity,但遇到了难以理解的like权限问题。
(这是我自己做的一个离心机/离心容器,可以在Ubuntu系统上完美地工作)
命令
singularity exec /HOMEPATH/Singularity/centrifuge_recentrifuge.simg centrifuge -x /HOMEPATH/Centrifuge/bacteria-database-centrifuge -1 /HOMEPATH/work_directory/centrifuge_recentrifuge/reads/TTOTO_R1_001.fastq.gz -2 /HOMEPATH/work_directory/centrifuge_recentrifuge/reads/TOTO_R2_001.fastq.gz -S /HOMEPATH/work_directory/centrifuge_recentrifuge/classification_result --report-file /HOMEPATH/work_directory/centrifuge_recentrifuge/classification_summary错误日志
Error: Could not open alignment output file /HOMEPATH/work_directory/centrifuge_recentrifuge/classification_result
Error: Encountered internal Centrifuge exception (#1)
Command: /usr/local/bin/centrifuge-class --wrapper basic-0 -x /HOMEPATH/Centrifuge/bacteria-database-centrifuge -S /HOMEPATH/work_directory/centrifuge_recentrifuge/classification_result --report-file /HOMEPATH/work_directory/centrifuge_recentrifuge/classification_summary -1 /tmp/229778.inpipe1 -2 /tmp/229778.inpipe2
(ERR): centrifuge-class exited with value 1看来奇点不能写临时文件,也不能写classification_result文件,或者两者都写:/
工作目录权限
ls -Z /HOMEPATH/work_directory/centrifuge_recentrifuge/
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 reads
ls -Z /HOMEPATH/work_directory/centrifuge_recentrifuge/reads/
-rw-r--r--. root root system_u:object_r:httpd_sys_content_t:s0 TOTO_R1_001.fastq.gz
-rw-r--r--. root root system_u:object_r:httpd_sys_content_t:s0 TOTO_R2_001.fastq.gz编辑1解决权限问题
ls -Z centrifuge_recentrifuge
drwxr-xr-x. apache apache system_u:object_r:httpd_sys_content_t:s0 reads
ls -Z centrifuge_recentrifuge/reads/
-rw-r--r--. apache apache system_u:object_r:httpd_sys_content_t:s0 TOTO_R1_001.fastq.gz
-rw-r--r--. apache apache system_u:object_r:httpd_sys_content_t:s0 TOTO_R2_001.fastq.gz错误还是一样的.我已经在临时文件夹上创建了一个sudo chown -R apache:apache /tmp,但是它没有生效:/
发布于 2018-10-13 04:35:57
ls -Z /HOMEPATH/work_directory/centrifuge_recentrifuge/
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 reads这表示centrifuge_recentrifuge目录的唯一所有者有权在该目录中创建项目,并且该目录的所有者是用户root。因此,只有root可以在该目录中创建项目。
假设您在以root身份登录时没有运行singularity程序,这就是该程序无法创建classification_result文件的原因。它也不能创建一个classification_summary文件,如果它已经尝试这么做的话。
我不知道您是否有特殊的原因将此目录归root所有。如果您这样做了,那么程序创建这些文件的唯一方法就是您以root用户身份运行它。当然,使用root帐户进行系统管理以外的任何事情通常都不是一个好主意。
通常的方法是将HOMEPATH目录及其下面的所有内容归为创建特定HOMEPATH的个人(非root)用户所有。在此模型中,单个用户将是centrifuge_recentrifuge目录的所有者,因此,如果您以该用户身份登录时运行singularity程序,则该程序将能够在其中创建所需的任何文件。
要从您现在所处的位置转到这种情况,要更改HOMEPATH及其下面的所有内容的所有权,您可以以root身份登录(或使用sudo),然后运行:
chown -R myuser /HOMEPATH其中,myuser是将HOMEPATH作为其主目录的帐户的用户名。
这应该足以让程序运行。但是,为了完整性,您还应该更改HOMEPATH及其下面的所有内容的组所有权,以与单个用户的组相匹配。为此,请运行以下命令:
chown -R myuser:mygroup /HOMEPATH其中,mygroup是包含用户myuser的组。如果您不知道组名应该是什么,请以myuser身份登录并运行id -ng命令。组名称与用户名相同是很常见的,因此,如果id命令的结果与myuser相同,请不要惊讶。在某些系统上,您可以运行:
chown -R myuser: /HOMEPATH在myuser后面只有一个冒号:,该命令将为您确定组名。如果这能在你的系统上工作,那么你就不需要跳id -ng舞了。
https://stackoverflow.com/questions/52776499
复制相似问题