一年前按照张大妈的教程在nas上部署了管理密码的VaultWarden(Bitwarden),运行一直很稳定,终于不用记那么多密码了。最近突然发现一直处于开放注册的状态,虽然个人nas不太会被注意到,但毕竟是个小小的隐患。在官方的说明文档中搜索到,可以通过添加一个环境变量来禁止新用户注册。遗憾的是我所使用的威联通不支持在web页面对已经部署的docker的环境变量进行修改,官方售后建议我重新部署,这个docker已经用了一年了,重新折腾又嫌麻烦。不过因为它的系统是基于Linux的,一顿搜索之后,发现可以通过SSH连接来修改docker对应的config文件来达到修改环境变量的效果。同样的方法也可以用在其他docker中,来修改已经部署的docker的环境变量。
这是VaultWarden修改前的环境变量,我们需要在其中添加一个值为“false”的“SIGNUPS_ALLOWED”环境变量来禁止新用户注册。
VaultWarden修改前的环境变量
首先需要查看一下需要修改的docker的ID。在威联通的Container Station中,单机对应的docker名称,可以在右侧的容器详细信息中看到ID(我这个是e9630940995d3e......),记下这个ID,在后续的操作中需要用到。然后点击停止按钮,停止该docker。
查看docker ID
接下来需要在nas上允许SSH连接。在“控制台-网络和文件服务-Telnet/SSH”中,勾选“允许SSH连接”,端口号可以用默认的22,也可以修改成其他端口,记得做好路由器的端口转发。
开启SSH
下载SSH连接工具PuTTY,官网链接在这里。运行后在Host Name和Port处填写nas的地址和刚才设置的端口号,回车或者点击下方的Open按钮。
PuTTY界面
连接后会提示login as:,这里需要输入administrators组的账号,账号输入完毕后回车,按照提示输入密码(输入密码时不会显示字符),输入完毕后回车。
SSH登录
如果是admin账户登录,则会显示下方菜单:
Console Management菜单
输入Q回车,按y回车确认即可回到常见的命令模式。
确认返回shell环境
如果是非admin的administrators组账户则直接进行后续操作。
首先要找到docker所在的目录,输入如下命令:
docker info | grep 'Docker Root'
回车后可以看到docker的路径。然后用cd命令转到这个路径:
cd /share/CACHEDEV1_DATA/Container/container-station-data/lib/docker
查找并跳转到docker目录
输入ls命令查看该路径下的所有文件和文件夹,应该会有一个“containers”的文件夹,用cd命令跳转到该文件夹,然后再输入ls命令,可以看到有一个或者多个由字母和数字组成的很长的文件夹,找到之前查看的docker ID,用cd命令跳转到这个文件夹中。
进入文件夹后用ls命令可以看到目录中的文件,其中应该有一个名为config开头,后缀为json的文件,我这个是config.v2.json。用如下命令打开(如提示需要输入密码则输入密码后回车),然后按字母 i 进行编辑:
sudo vim config.v2.json
编辑json文件
用左右方向键找到环境变量参数所在的位置,格式为:
“ENV”:["变量名称1=变量值1","变量名称2=变量值2"]
按照此格式添加所需要的变量名称和值后,按ESC键退出编辑,输入“:wq”回车保存文件并退出。
修改完毕后输入exit退出SSH连接,重启nas即可生效。重启后查看Container Station中的docker环境变量,可以看到新的环境变量已经添加进来了:
新添加的环境变量
测试一下注册新账户,提示错误:
已禁止新用户注册
以上就是对已经部署好的docker环境变量的修改方法,希望对跟我一样不熟悉Linux的小白们有所帮助,如果大佬们有更好的办法还请不吝赐教
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
,