linux - "failed to execute command: permission denied"Ubuntu 18.04.3 LTS

标签 linux permissions command ubuntu-18.04

尝试在运行 Ubuntu(版本 18.04.3 LTS,64 位)的旧 HP ProLiant 上为 Ark 设置游戏服务器。规范为 72GB RAM,Intel Xeon X5650 @ 2.67 GHz x2。我一直在学习 Ubuntu,所以我几乎不知道自己在做什么,并意识到我可能只是犯了一些愚蠢的错误......但我完全迷失了。多亏了谷歌,我设法完成了很多工作,但即使是谷歌似乎也无法再帮助我了。

我一直在使用多个指南来帮助我进行设置。

  • https://ark.gamepedia.com/Dedicated_Server_Setup#Linux_.28via_systemd.29
  • http://arksurvivalevolved.gamewalkthrough-universe.com/dedicatedservers/linux/Default.aspx
  • https://survivetheark.com/index.php?/forums/topic/87419-guide-cluster-setup/

  • 我已经多次检查了这些指南中的每一步,至少设法达到了我被这个“权限被拒绝”错误困住的地步。

    我已经尝试了这个 Google 搜索下提供的所有解决方案:https://www.google.com/search?q=linux+%22failed+to+execute+command%3A+permission+denied%22

    此外,我尝试执行命令以使用和不使用“sudo”来启动服务器。

    我的猜测是它试图访问的文件由于某种原因是不允许的,但我似乎找不到适合我的解决方案。
    [Unit]
    Description=ARK: Survival Evolved dedicated server
    Wants=network-online.target
    After=syslog.target network.target nss-lookup.target network-online.target
    
    [Service]
    ExecStartPre=/home/kinare/steamcmd +login anonymous +force_install_dir /home/kinare/ark +app_update 376030
    ExecStart=/home/kinare/ark/ShooterGame/Binaries/Linux/ShooterGameServer.exe Ragnarok?SessionName="Togerland - PVE Ragnarok"?AltSaveDirectoryName=RagSave?Port=7777?QueryPort=27015 -NoTransferFromFiltering -exclusivejoin -clusterid=Togerland
    ShooterGameServer.exe Aberration_P?SessionName="Togerland - PVE Aberration"?AltSaveDirectoryName=AbSave?Port=7779?QueryPort=27017 -NoTransferFromFiltering -exclusivejoin -clusterid=Togerland
    WorkingDirectory=/home/kinare/ark/ShooterGame/Binaries/Linux
    LimitNOFILE=500000
    ExecReload=/bin/kill -s HUP $MAINPID
    ExecStop=/bin/kill -s INT $MAINPID
    User=steam
    Group=steam
    
    [Install]
    WantedBy=multi-user.target
    

    仅包括集群内的 6 个 map 中的 2 个以节省空间,希望这就足够了。

    预期的结果应该是它没有启动失败...错误消息:
    ark-dedicated.service - ARK: Survival Evolved dedicated server
    Loaded: loaded (/etc/systemd/system/ark-dedicated.service; enabled; vendor preset: enabled)
    Active: failed (Result: exit-code) since Fri 2019-10-18 15:35:19 EDT; 56s ago
    Process: 6383 ExecStartPre=/home/kinare/steamcmd +login anonymous +force_install_dir /home/kinare/ark +app_update 376030 (code=exited, status=203/EXEC)
    
    Oct 18 15:35:19 togerland-server systemd[1]: Starting ARK: Survival Evolved dedicated server...
    Oct 18 15:35:19 togerland-server systemd[6383]: ark-dedicated.service: Failed to execute command: Permission denied
    Oct 18 15:35:19 togerland-server systemd[6383]: ark-dedicated.service: Failed at step EXEC spawning /home/kinare/steamcmd: Permission denied
    Oct 18 15:35:19 togerland-server systemd[1]: ark-dedicated.service: Control process exited, code=exited status=203
    Oct 18 15:35:19 togerland-server systemd[1]: ark-dedicated.service: Failed with result 'exit-code'.
    Oct 18 15:35:19 togerland-server systemd[1]: Failed to start ARK: Survival Evolved dedicated server.
    

    最佳答案

    您的 systemd 服务使用用户和组 Steam

    ...
    User=steam
    Group=steam
    ...
    

    您正在 kinare 的家中启动您的方舟服务器
    ExecStart=/home/kinare/ark/ShooterGame/Binaries...
    

    并且您的系统日志显示:“权限被拒绝”:
    Oct 18 15:35:19 togerland-server systemd[6383]: ark-dedicated.service: Failed to execute command: Permission denied
    

    Steam 用户有权读取 /home/kinare 中的文件?

    您可以通过以下几种方式解决此问题:
  • 授予 Steam 用户从 /home/kinare 读取的权限
    # change the group of all files and dirs in /home/kinare to steam
    chgrp -R steam /home/kinare
    # give the group read rights on all files and dirs /home/kinare
    chmod -R g+r /home/kinare
    # allow the group to open folders under /home/kinare
    find /home/kinare -type d -exec chmod 750 {} \;
    
  • 使用服务帐号

    将您的方舟和 Steam 移动到 Steam 用户的家(/home/steam)并更改
    根据需要您的单元文件。请记住,您需要更改权限
    /home/steam 中的文件。这是首选,您可以使用服务帐户
    您的管理员用户 kinare
  • 更改 systemd 服务文件中使用的用户和组
    User=kinare
    Group=kinare
    

    ark 现在将以用户 kinare 运行。这是不太优选的,请参阅:
    https://unix.stackexchange.com/questions/314725/what-is-the-difference-between-user-and-service-account

    希望这有帮助,祝你好运
  • 关于linux - "failed to execute command: permission denied"Ubuntu 18.04.3 LTS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58457592/

    相关文章:

    java - Runtime Exec 似乎忽略了撇号

    linux - 为什么我的测量显示进程消耗的 CPU 时间比可用时间多?

    macos - mac nodejs公共(public)目录权限 'Forbidden'

    php - 如果我的 PHP 脚本在那里写入,那么/var/tmp/mysite 的权限应该是什么?

    google-cloud-platform - Google Cloud Build - 查看日志权限

    Java,由 : java. io.IOException : error=2, 引起 没有那个文件或目录

    vb.net - 如何扩展 ComboBox 以支持命令 (MVVM)?

    linux - uniq 命令未检测到重复行

    linux - bash shell脚本问题中的日期格式错误帮助

    python - 如何在 Qt 中设置按钮背景颜色,甚至覆盖平台主题?