在.deb包的Postinst脚本中动态获取用户名

时间:2018-12-14 11:25:57

标签: linux bash ubuntu deb post-install

我写了Postinst脚本来更改所有者和文件权限:

chown -R $(whoami)  ~/Desktop/my_file.desktop
chmod 777 ~/Desktop/my_file.desktop

但是安装后它什么也没做。

我真的不明白脚本的哪一部分是错误的。请告诉如何在Postinst脚本中动态获取用户名?

1 个答案:

答案 0 :(得分:0)

软件包安装无条件以root的身份运行。没有调用用户的概念。实际上,软件包安装可能会发生,例如在框上存在任何用户帐户之前。

目前还不清楚您实际上希望实现什么,但是看起来您的程序包应该只安装一个脚本,然后在用户运行它时执行任务。这也将方便地创建当前用户已经拥有的文件,而不会产生任何chown的麻烦。

即使用户存在,也不能保证他们在其主目录中有一个Desktop目录,或者不能保证他们当前或曾经使用GUI登录。

最后,无论您尝试做什么,chmod 777都是错误危险。 您绝对不应分配写访问权限所有人,任何事物,任何时候。

(好的,所以实际上有两个或三个与系统管理相关的晦涩的场景是实际必需和有用的;否则,从技术上讲,它首先可能是不可能的。)