Сингулярность - Centos7 - Разрешение - PullRequest
0 голосов
/ 12 октября 2018

я использую особенность в системе Centos7, но я блокирую непонятную проблему с аналогичным разрешением.

(Это контейнер для центрифуги / недавней центрифуги, созданный мной, который отлично работает в системе 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

Кажется, что Singularity не может записывать файлы tmp или записывать файл 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 на ТМПпапка, но она не действует: /

1 Ответ

0 голосов
/ 12 октября 2018
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 может создавать элементы в этом каталоге.

Предположительно, вы не запускали программу singularity, когда вошли в систему как root, и поэтому программе не удалось создать файл classification_result,Он также не смог бы создать файл classification_summary, даже если бы попытался это сделать.

Я не знаю, есть ли у вас особые причины для того, чтобы этот каталог принадлежална root.Если вы это сделаете, то программа сможет создать эти файлы только в том случае, если вы запустите ее как пользователь root.Конечно, обычно плохая идея использовать учетную запись root для чего-либо, кроме системного администрирования.

Обычный подход состоит в том, чтобы каталог HOMEPATH и все находящиеся под ним файлы принадлежали отдельному лицу (не root) пользователь, для которого был создан этот конкретный HOMEPATH.В этой модели этот отдельный пользователь будет владельцем каталога 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.

...