gpt4 book ai didi

linux - 如何在我的安装脚本中使 chgrp 命令可选?

转载 作者:太空宇宙 更新时间:2023-11-04 09:32:49 25 4
gpt4 key购买 nike

我正在为 Linux 游戏创建安装脚本。作为安装的一部分,我将游戏可执行文件的 suid 权限更改为“游戏”组,这样游戏即使在普通用户运行时也可以更新高分文件。

现在我的 Makefile.am 看起来像这样:

AUTOMAKE_OPTIONS = foreign
SUBDIRS = src man

install-exec-hook:
chgrp games @bindir@/xjump
chmod +s @bindir@/xjump

mkdir -p @localstatedir@/xjump
touch @localstatedir@/xjump/record
chmod 660 @localstatedir@/xjump/record
chgrp games @localstatedir@/xjump/record

我遇到的问题是 chgrp 命令需要管理权限。如果我使用 sudo make install 在全局范围内安装游戏,那么它一切正常,但如果我将前缀更改为我的主目录中的某个位置并尝试执行常规 make install由于 chgrp 而失败

chgrp: changing group of ‘/home/hugo/Desktop/aaa/bin/xjump’: Operation not permitted

由于游戏的本地安装版本只有一个玩家,所以我真的不需要做 chgrp 事情。有没有办法检测 makefile 是否在没有 root 权限的情况下运行并跳过权限更改?或者我应该向我的配置脚本添加一个配置标志,而不是尝试自动修复此权限问题?

最佳答案

当命令失败时,您没有以 root 身份运行。似乎没有任何问题,您只是不想要错误消息。你可以看到你是谁,但最简单的解决方案是重定向输出以 true 结束,这样你的步骤就不会失败:

chgrp games @localstatedir@/xjump/record 2>/dev/null || true

关于linux - 如何在我的安装脚本中使 chgrp 命令可选?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29779932/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com