繁体   English   中英

如何仅以root用户身份运行某些makefile命令?

[英]How do I run only some makefile commands as root?

我在Makefile中有一个安装目标,希望运行一些命令来安装共享库(需要root权限),而一些命令将配置文件安装到$HOME/.config

通常,我只是告诉用户运行sudo make install,但这会导致将配置文件安装到/root/.config而不是实际用户的config目录。

如何解决此问题? 非常感谢。

您可以仅更改配置文件的所有者和权限,尽管按用户配置文件安装的Makefile并不是一个好主意,因为理想情况下,它需要找出系统上存在多少个用户才能为每个用户安装文件。

如果使用install命令,您甚至可以

install -v -m644 -o$(USERNAME) -g$(USERGROUP) $(FILE) $(USERHOME)/.config/$(FILE)

更好的方法是让程序在找不到文件时从系统范围的目录中安装默认配置文件。

/usr/share/my-application/default-config/config.conf

然后程序将在适当的目录中搜索文件,并将它们复制到当前正在运行该程序的用户的$HOME目录中,如果该文件可由用户修改,否则您可以从其系统访问它们-广泛的位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM