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
.