0

我正在 bash 中为 Linux 上的应用程序编写安装脚本。

该脚本将一些文件复制到 /usr/bin 和 /usr/share 中,因此需要由 root 用户执行,此外它在 $HOME 目录中为配置文件创建了一个隐藏目录。

问题来了:如果普通用户想要安装程序,他需要是 root。但如果他是 root,$HOME 目录将是 /root/ 而不是 /home/username。

4

2 回答 2

10

...此外,如果 UserA 安装了软件,但 UserB 运行它,则 UserB 将不会在/home/UserB. 此外,下面的隐藏目录/home/UserA将由 root 拥有,而不是 userA。

因此,您需要让应用程序创建隐藏目录,而不是安装程序。

另一种可能的选择是不安装在系统目录中;一种可能的替代位置是/usr/local. 但是,即使这样也可能需要 root 权限。想想它是否可以安装在其他地方,以及它如何定位它的材料。

但是,需要 root 权限才能安装并不是世界末日——对某些人来说是一种麻烦,但并非完全不正常。但是要求每个使用过的人都具有 root 权限是不正常的——如果每个使用它的人都需要运行安装程序,那就不好了。

最后一点(现在):如果你使用sudo,它不会改变 $HOME 的值,即使你获得了 root 权限。但是,要求使用您的应用程序的每个人都拥有sudo特权也不是一件好事。

于 2009-02-26T15:11:30.660 回答
0

你必须使用$HOME吗?也许您可以提示输入用户名并安装到~$username

于 2009-02-26T15:28:34.517 回答