现象
在php 使用 ssh2_connect 执行
echo 'rootpwd' | sudo sh -c 'echo -e "file content" > /rootfile '
报错信息:
sudo: 没有终端存在,且未指定 askpass 程序
解决问题:
方法一:
直接修改 rootfile 文件权限
chown normal:normal /rootfile
方法二:
修改 vim /etc/sudoers 添加
normal ALL=(ALL) NOPASSWD:/rootfile
方法三:
增加一个group A,把root和normal放在group A中。
rootfile的所有者为root,但所有组变成A。
rootfile的权限变成660。
该方法未测试
groupadd A
usermod -G A normal
usermod -G A root
chown A:root /rootfile
chmod 660 /rootfile