升级后,rc.local 现在提供 su 必须从 rc.local 中的终端运行

升级后,rc.local 现在提供 su 必须从 rc.local 中的终端运行

我有几个 Ubuntu 系统,它们在 rc.local 脚本中使用 su 命令。这会更新本地计算机上的用户 git repo,因此将文件的所有权保留给正确的用户非常重要。

在安装 spectre/meltdown 补丁之前,这个功能是可以正常工作的,但现在运行脚本时,我得到的结果不一致。有些机器可以运行 su 命令,但很多机器说“su 必须从终端运行”,因此脚本无法运行。

我很难理解最近的更新中发生了什么变化以至于会破坏这一点。

答案1

不确定为什么 su -s 像以前一样停止工作,但sudo -u username确实解决了这个问题。

我确实必须将命令链接在一起才能更改目录,因为sudo -u username会将工作目录重置为用户的主目录:

sudo -S -u username -i /bin/bash -l -c 'cd /opt/bin; git reset --hard'

相关内容