Azure Batch访问挂载文件遇「Permission Denied」问题求助
检查挂载目录的权限属性
登录Pool节点执行ls -ld /mnt/batch/tasks/fsmounts/test,查看目录的所有者和权限位。Batch任务默认以_azbatch用户运行,如果该目录所有者是root且权限为drwx------,普通任务用户肯定访问不了。可以通过Pool启动任务,在挂载完成后执行chmod 755 /mnt/batch/tasks/fsmounts/test或chown _azbatch:_azbatch /mnt/batch/tasks/fsmounts/test调整权限。确认Batch任务的运行用户
在任务中先执行whoami确认当前运行用户,和你在节点上验证时用的用户是否一致。如果需要指定任务用特定用户运行,创建任务时配置userIdentity参数,匹配节点上验证时的用户身份。检查存储挂载的权限参数
挂载Azure Files或Blob存储时,fileMode和dirMode参数直接影响目录权限。默认值可能导致权限不足,在Pool的挂载配置里明确添加fileMode=0755,dirMode=0755(NFS、SMB挂载均适用),确保挂载后的目录允许任务用户读取访问。验证启动任务的执行顺序
如果Pool有启动任务用于调整目录权限,必须确保挂载操作完成后再执行权限修改。可以在启动任务中加入等待逻辑:until mountpoint -q /mnt/batch/tasks/fsmounts/test; do sleep 5; done,等挂载完成后再执行chmod或chown命令。
内容的提问来源于stack exchange,提问作者enliden1

