收起左侧

lucky自动替换fn证书报错凭替

2
回复
83
查看
[ 复制链接 ]

3

主题

2

回帖

0

牛值

江湖小虾

原文链接

lucky定时获取证书,并自动替换fnos证书 - 攻略分享 飞牛私有云论坛 fnOS

想必大家安装应用商店中的lucky都遇到了lucky执行
自动替换证书的错误
image.png

我也同样遇到了,经过多次实验无法执行
image.png

这段指令,否则提示log
sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper sudo: a password is required

询问Copilot后得知

当脚本被 Lucky(或 crontab、systemd 等)以非交互方式触发时,没有关联的终端(TTY),sudo 无法弹出密码输入提示,就会报出:

sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper sudo: a password is required

核心原因在于:

  • 系统默认要求在交互式终端下才能输入 sudo 密码(requiretty)。
  • 非交互脚本又没有提供密码来源,导致 sudo 执行失败。

解决方案如下:

首先ssh进入终端后输入

sudo -i

提权至ROOT用户需要保留
image.png

这一步的代码,保存后输入 ‘crontab -e' 打开root用户下的定时任务列表

#删除括号内(包括括号)的所有内容替换成自己的脚本路径和log保存路径
#每月15日12时0分自动以ROOT权限执行lucky无法执行自动更新证书的脚本
0 12 15 * * (/opt/scripts/monthly_backup.sh >> /var/log/backup.log 2>&1)

实测过后可以正常执行更新脚本每月自动执行一次,如需要测试请自行修改Cron表达式到就近的时间
如需其他时间自动更新证书也请自行修改Cron表达式

收藏
送赞 1
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

0

主题

6

回帖

0

牛值

江湖小虾

火速留名备用

0

主题

87

回帖

0

牛值

初出茅庐

看你的意思是应用商店的lucky并不是以root方式运行,所以没有写入其他目录文件的权限,所以最一步到位的方式应当是让应用商店的lucky版本以root方式运行,具体方法如下:

修改/var/apps/Lucky/config目录下的privilege文件,将run-as的值"package"改为"root",重新启动lucky即可!,完整修改内容参考如下:

{
  "defaults": {
    "run-as": "root"
  },
  "username": "Lucky",
  "groupname": "Lucky"
}

或者使用终端命令二选一,第一个只有run-as的值是package才能替换成功,第二个无论是什么都会替换为root:

sudo sed -i 's/"run-as": "package"/"run-as": "root"/' /var/apps/Lucky/config/privilege
sudo sed -i 's/"run-as": "[^"]*"/"run-as": "root"/' /var/apps/Lucky/config/privilege

改完使用命令查看文件内容看看修改成功没有:

cat /var/apps/Lucky/config/privilege
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则