登录时用户特定的脚本独立于登录处理程序

登录时用户特定的脚本独立于登录处理程序

我试图在以下情况下自动运行脚本:

  1. 特定用户登录。
  2. 独立于用户的登录方式:无论是通过 shell、桌面环境会话还是其他方式。

为了实现这一目标,出于好奇,我正在研究启动过程不同阶段的初始化脚本。考虑到我对这些过程的理解,我的具体问题似乎需要做很多工作。我想知道是否有更好、更简单的方法。让我解释一下我是如何理解的:

计算机启动时运行某些内容的典型方法是使用/etc/init.d;这远远不是我所需要的,因为它在登录之前执行;

登录时运行某些内容的典型方法是使用 /etc/profile或更合适的脚本/etc/profile.d;这不是我需要的,因为每个用户都会加载我想要运行的脚本,并且默认情况下它不会在 DE 下执行。

当特定用户登录 shell 时运行某些内容的典型方法是使用~/.profile(或等效方法,具体取决于底层 shell:~/.bash_profile~/.bash_login~/.login等)。这仅针对特定用户执行,原则上就是我所需要的。问题是,与 一样/etc/profile。这些脚本不会在桌面环境下的“会话登录”上运行。

当然,我们可以使用特定桌面环境的设施来运行脚本。但这不能跨发行版移植,这不是我想要的。例如,在 Ubuntu 中,可以创建一个.desktop文件并将其放入~/.config/autostart.但一旦有人想尝试不同的发行版,解决方案就会崩溃。另外,我在这里读到:http://www.linuxmisc.com/11-unix-aix/6118cce17a587c8d.htm关于在 DE 下运行 etc/profile 的不安全性,所以这不是一个很好的解决方案。

所以似乎没有明显的地方可以完成我需要的事情。问题是:

  1. 鉴于用户对于所有登录表单都是通用的,那么 shell 登录和 DE 之间是否有共同执行的东西。该脚本/命令在哪里/什么?
  2. 如果 1 的答案无处可去,我会问:既然很明显我们想要一个可以执行独立于登录前端的任务的地方/脚本,为什么它不存在?

相关内容