我想在系统启动或重新启动时自动以不同用户身份运行我的脚本

我想在系统启动或重新启动时自动以不同用户身份运行我的脚本

我已经使用 newUser 创建了新用户,sudo adduser newUser sudo我还为其设置了密码,sudo passwd newUser现在我想要的是从这个 newUser 运行一个脚本,只是说我创建了一个脚本来创建一个新文件夹,mkdir并且我还希望在以下情况下自动执行系统启动或重新启动,所以我使用@rebootcrontab.所以我希望这个脚本从 newUser 执行,而且我也使用 root 用户设置了密码sudo passwd root,默认情况下这个脚本由 root 执行,我希望它作为 newUser 执行

谢谢。

答案1

cron 作业将以拥有 crontab 的用户身份执行。

这意味着您应该将该@reboot作业添加到 的 crontab 中newUser

您可以通过两种方式执行此操作:

  1. 以 root 身份运行,crontab -u newUser -e将作业的计划添加到 的 crontab 中newUser,或者
  2. 登录newUser并运行crontab -e以添加计划。

作为您的普通日常用户,您可以执行第一个操作

sudo crontab -u newUser -e

或第二个通过

sudo -u newUser crontab -e

(假设您的普通用户被允许使用sudo -u newUser)。

答案2

我能想到的前两种方法是:

1] 只需使用sudo,它就可以以另一个用户的身份运行程序。例如,以 root 身份运行下面的行,其中“root”像用户“newUser”一样运行程序。

root@foo $> sudo -u newUser whoami 
=> newUser 

然后,记得阅读man sudo

2]发行版中可能存在差异,但是在我使用的系统中每个用户都有自己的crontab。因此,如果您希望用户newUser在启动时运行某些内容。

newUser@foo $> crontab -e

然后你@reboot在那里插入你的线。

相关内容