我正在从基于图形界面的密码文件切换到基于文本的文件,并打算使用openssl进行加密。
openssl可以以类似以下方式使用。
下面的脚本可能会被命名为encryptPw.sh。
纯文本密码文件可以通过
附注:我将切换到全盘加密,因为16.04即将结束长期支持,但与此同时,我对这个
相关脚本
openssl可以以类似以下方式使用。
下面的脚本可能会被命名为encryptPw.sh。
#!/bin/bash
if [ ! -f pw.txt ] ; then
echo "pw.txt not found"
exit 1
fi
openssl aes128 <pw.txt >pw.aes128
if [ -f pw.aes128 ] ; then
rm pw.txt
rm --force pw.txt~
else
echo "failed to create pw.aes128"
fi
纯文本密码文件可以通过
gedit
进行编辑。如果用户在登录时不在场或以其他方式提供对文件系统的访问权限,这会带来一定的风险。当gedit
应用程序关闭后,它是否会留下缓存文件或临时文件?附注:我将切换到全盘加密,因为16.04即将结束长期支持,但与此同时,我对这个
gedit
问题很感兴趣。即使机器已经进行了全盘加密,继续使用这个脚本可能也是有意义的,因为我们不希望备份中的该文件是明文的。如果备份发送到云服务器,则更有理由不要在备份中包含明文。假设:备份本身没有加密,例如只需启动并解密完整磁盘,然后执行tar命令,tar归档就构成了备份。如果备份是加密磁盘的镜像副本,那么显然“明文风险”不适用。最重要的是:如果备份不是完全加密的磁盘,我将使用我的密码脚本。
编辑:感谢下面的答案和评论,我能够将rm --force pw.txt~
添加到我的一些脚本中。
相关脚本:getPw.sh
#!/bin/bash
if [ ! -f pw.aes128 ] ; then
echo "pw.aes128 not found"
exit 1
fi
openssl aes128 -d <pw.aes128 >pw.txt
相关脚本
peekPw.sh
#!/bin/bash
if [ ! -f pw.aes128 ] ; then
echo "pw.aes128 not found"
exit 1
fi
openssl aes128 -d <pw.aes128 >pw.txt
cat pw.txt
rm pw.txt
rm --force pw.txt~
rm
后面加上-f
,并在其后面添加|| true
。这样可以阻止rm
询问确认以及任何其他信息在屏幕上显示。 - Rinzwindcommand || true
听起来很有用,但是rm --force fileName
似乎会导致删除失败变得无害。man描述中说...“忽略不存在的文件和参数,不提示”。将command || true
用作所有删除命令的规则可能是一个好主意,因为如果你总是这样做,就不需要思考了。然而,目前我还没有决定是否要把它作为自己的规则。 - H2ONaCl