Upstart - 除非使用 sudo,否则无法读取 /etc/shadow

Upstart - 除非使用 sudo,否则无法读取 /etc/shadow

在 Upstart 中的以下脚本中,我无法/etc/shadow在预脚本阶段读取,除非我使用$(echo mypass | sudo -S cat /etc/shadow | grep myusername)

如果我提供通行证,脚本就可以正常工作sudo,但我想知道是否有办法做到这一点而不必在文件中写入我的通行证conf

# 节点示例.conf
描述“使用 Upstart 和 Forever 启动节点”

在文件系统或运行级别启动 [2345]

在运行级别 [06] 停止

期望分叉

重生

重生限制 5 30

控制台输出

setuid 我的用户名

env HOME=/home/我的用户名

环境 ARGS_FILE=/etc/shadow

./etc/shadow

脚本

cd $HOME

exec forever start -a -l /tmp/forever.log -o /tmp/forever.stdout.log -e /tmp/forever.stderr.log --watch --watchDirectory /home/myusername/myapp/server /home/myusername/myapp/server/server.js

结束脚本

启动前脚本

ori='我的用户名:$6$P...'

**# cur=$(echo mypass | sudo -S cat /etc/shadow | grep myusername) -> 有效**

**cur=$(cat $ARGS_FILE | grep myusername) -> 这不起作用**

如果 [ “$ori” = “$cur” ]

然后是 encfs 代码

否则 rm -rf 某个文件


结束脚本

相关内容