我已经使用 newUser 创建了新用户,sudo adduser newUser sudo
我还为其设置了密码,sudo passwd newUser
现在我想要的是从这个 newUser 运行一个脚本,只是说我创建了一个脚本来创建一个新文件夹,mkdir
并且我还希望在以下情况下自动执行系统启动或重新启动,所以我使用@reboot
了crontab
.所以我希望这个脚本从 newUser 执行,而且我也使用 root 用户设置了密码sudo passwd root
,默认情况下这个脚本由 root 执行,我希望它作为 newUser 执行
谢谢。
答案1
cron 作业将以拥有 crontab 的用户身份执行。
这意味着您应该将该@reboot
作业添加到 的 crontab 中newUser
。
您可以通过两种方式执行此操作:
- 以 root 身份运行,
crontab -u newUser -e
将作业的计划添加到 的 crontab 中newUser
,或者 - 登录
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
在那里插入你的线。