在 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 某个文件 菲 结束脚本