【问题标题】:"failed to execute command: permission denied" Ubuntu 18.04.3 LTS“未能执行命令:权限被拒绝” Ubuntu 18.04.3 LTS
【发布时间】:2020-02-15 20:22:07
【问题描述】:

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

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

  1. https://ark.gamepedia.com/Dedicated_Server_Setup#Linux_.28via_systemd.29
  2. http://arksurvivalevolved.gamewalkthrough-universe.com/dedicatedservers/linux/Default.aspx
  3. 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 个地图中的 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.

【问题讨论】:

  • 它在标题中说明了我的错误是什么,我提供了错误日志...
  • 请显示相关代码并说明确切的问题或错误。仅描述或日志文件是不够的。另见How to create a Minimal, Complete, and Verifiable example
  • 再一次,我做到了。上面复制的是唯一相关的代码,也是我得到的唯一错误。我无法添加任何其他内容,因为没有其他内容...您的链接没有解释我可能还缺少什么,其中没有任何内容与此相关。
  • 我什至去阅读了你的个人资料上关于这个的链接,即使根据那个线程我也没有遗漏任何东西。我也没有含糊,我在标题中提供了一个确切的错误,在帖子本身中更多地提到它,并解释了我想要完成的规则​​状态。包括所有相关信息。

标签: linux permissions command ubuntu-18.04


【解决方案1】:

您的 systemd 服务使用 usergroup 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 {} \;
    
  • 使用服务帐号

    将你的方舟和蒸汽移动到蒸汽用户的家(/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

    希望对你有帮助,祝你好运

【讨论】:

  • 当用户名相同且权限正确但仍然失败时,这无济于事
猜你喜欢
  • 1970-01-01
  • 2018-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-26
  • 2016-04-15
  • 2011-11-09
  • 1970-01-01
相关资源
最近更新 更多