我有一个带有install
目标的makefile,它会创建一堆目录并安装一些文件。我还想检查一个组的存在,如果它不存在,创建它。为此,我需要确保用户以root用户身份运行。有没有在makefile中执行此操作的首选方法?
install: afile
# Check user is root, otherwise print error and exit.
# Check if "auser" exists, otherwise create it.
# Check if "agroup" exists, otherwise create it.
install -d -o auser -g agroup -m 0755 /path/to/stuff
install -o auser -g agroup -m 0644 afile /path/to/stuff/afile
service start aservice
答案 0 :(得分:1)
我真的不知道这与make有什么关系,但我喜欢使用id
命令来执行这些类型的检查:
[ `id -u` = 0 ] || { echo "Not running as root"; exit 1; }
id "auser" 2>/dev/null || { echo "No user 'auser'"; exit 1; }
检查组比较棘手;我实际上不确定会有这样做的程序。当然,您可以随时直接查看/etc/group
:
grep -q "^agroup:" /etc/groups || { echo "No group 'agroup'"; exit 1; }