systemd 服务缺乏列出文件的权限

systemd 服务缺乏列出文件的权限

我设置了一个ML流作为 Ubuntu 上的 systemd 服务的远程跟踪服务器(这里我遵循的教程)。简而言之,我在 python 中运行程序并通过 sftp 将一些指标和文件发送到远程服务器。

etc/systemd/system我定义了一个mlflow-tracking.service文件,如下所示:

[Unit]

Description=MLflow server

After=network.target 


[Service]
    
Restart=on-failure
    
RestartSec=20
    
ExecStart=/bin/bash -c 'PATH=_mypath_/anaconda3/envs/mlflow_server/bin/:$PATH exec mlflow server --backend-store-uri postgresql://mlflow:mlflow@localhost/mlflow --default-artifact-root file:_mypath_/MLFLOW_SERVER/mlruns -h 0.0.0.0 -p 8000' 

        
[Install]
        
WantedBy=multi-user.target

只要涉及从我的计算机到远程服务器的文件传输,一切似乎都工作正常:所有文件最终都到达了它们应该到达的位置。但是,在 MLFlow UI 中我收到以下错误消息:

无法列出存储在 sftp://192.XXX 下的工件:我自己的路当前运行的 /MLFLOW_SERVER/mlruns/bc899e79336b461d9ca86d7dbcc37abf/artifacts。请联系您的跟踪服务器管理员,通知他们此错误,当跟踪服务器缺乏在当前运行的根工件目录下列出工件的权限时,可能会发生这种情况。

192.XXX运行服务的远程计算机的 IP 地址在哪里,并且bc899e79336b461d9ca86d7dbcc37abf/artifacts是我写入文件的文件夹之一。

服务可能缺乏列出本地文件夹中文件的权限是否有原因?注意所有文件夹的权限都是drwxrwxr-x.

答案1

SFTP 连接[email protected]-user是具有目录和文件权限的远程用户。

SSH 登录远程 sftp 机器。

whoami或更好地跑id

用户名/组应与所有者+权限匹配ls -l /mypath

相关内容