问题背景:
之前搭建了一套NextCloud在PVE上,并在虚拟机上的docker里运行。
问题描述
几个月后登录管理员后提示密码过期,需要重置密码,但是管理员关联邮箱又不在我这里,于是想通过其他方法来重置管理员密码,因为这个Nextcloud是部署在docker上的,所以网上很多攻略并不适用,踩了很多坑后终于解决,记录下来希望有相同经历的人看到这篇文章能省点事。
解决记录:
首先,因为是部署在docker中,所以直接用docker exec执行命令试了几次没有成功,于是选择进容器内操作:
docker exec -it 你的容器编号 bash
进入容器后,我们需要用到occ的resetpassword方法及password-from-env参数来设置新密码,所以我们需要先设置环境变量OC_PASS
export OC_PASS=你需要设置的密码
然后执行这条命令:
su -s /bin/sh www-data -c 'php occ user:resetpassword --password-from-env 你要重置密码的管理员用户名'
系统提示:
Successfully reset password for 你要重置密码的管理员用户名
此时,管理员密码重置成功,虽然写起来很简单,但是不停的试错很麻烦,也是折腾了快1个小时,希望看到这篇文章的伙计们能少走弯路