远程执行更新脚本时设置DEBIAN_FRONTEND=noninteractive权限问题求助
远程执行更新脚本时设置DEBIAN_FRONTEND=noninteractive权限问题求助
各位大佬好,我现在碰到个棘手的问题——想通过SSH远程执行更新脚本时设置DEBIAN_FRONTEND=noninteractive,结果直接报错:
sudo: sorry, you are not allowed to set the following environment variables: DEBIAN_FRONTEND
为啥非得在这儿设置这个环境变量呢?因为有时候apt-get dist-upgrade会弹出whiptail的交互窗口,我是通过crontab远程触发这个脚本的,根本没人能手动操作,要是卡在交互环节脚本就直接僵住了,所以必须把这个交互给关掉。
我在server_one上的脚本路径是/usr/local/bin/perform-update,内容如下:
#!/bin/bash sudo apt-get update sudo DEBIAN_FRONTEND=noninteractive apt-get -y dist-upgrade sudo apt-get -y autoremove sudo snap refresh
然后我在server_two上用这条命令远程调用:
SERVER_COMMAND="perform-update" ssh -i $HOME/.ssh/id_rsa backupuser@server_one $SERVER_COMMAND
另外我已经在server_one的sudo visudo里给backupuser配置了权限:
backupuser ALL=(ALL) NOPASSWD: /usr/local/bin/perform-update backupuser ALL=(ALL) NOPASSWD: /usr/bin/apt-get backupuser ALL=(ALL) NOPASSWD: /usr/bin/snap
有没有大佬能指点下怎么解决这个权限问题,让我能顺利设置环境变量关掉交互呀?
备注:内容来源于stack exchange,提问作者Socrates
相关产品推荐
相关产品推荐

