【Linux】普通用户修改 root 权限文件,没有权限;sudo: 没有终端存在,且未指定 askpass 程序

文章目录

    • 现象
    • 报错信息:
    • 解决问题:
      • 方法一:
      • 方法二:
      • 方法三:

现象

在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

你可能感兴趣的:(运维,Linux)