0

我正在考虑以普通用户身份在系统启动时运行命令。目前,为此,我使用如下语法:

su -c 'command with some arguments' user

但我认为在 ~/.rc.local 中拥有一个每个用户的 rc.local 文件可能会有所帮助,该文件会在启动时自动以用户身份运行。我想出的代码是这样的:

awk -F":" '{ if ($3 >= 1000) print $1, $6 }' /etc/passwd | while read u h
do 
  [ -x "$h/.rc.local" ] && su -c "cd $h; ./.rc.local" $u
done

这将被添加到 /etc/rc.local。它搜索每个非系统用户的主目录(即,uid >= 1000),如果文件存在并且可执行,它会 cd 到用户主目录并以用户身份执行该脚本。

对我来说,这似乎消除了任何安全风险来源,因为它将以用户而不是 root 身份执行脚本,但我最近被提醒我缺乏安全知识,所以我提出了这个问题:这是一个坏主意?

现在,我只会在我的家用电脑上运行它,而我的家用电脑只有一个非系统用户。几年后,我的女儿在电脑上获得了自己的帐户,但除此之外,完全陌生的人无论如何也无法访问它。

那么,是否有任何我忽略的潜在安全漏洞?此外,是否有更优雅的方式来编写该命令?

4

1 回答 1

0

@reboot这与每用户 crontab的功能重叠。

于 2012-11-04T01:34:19.110 回答