在Ubuntu上使用gedit会存在隐私风险吗?

我正在从基于图形界面的密码文件切换到基于文本的文件,并打算使用openssl进行加密。
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 询问确认以及任何其他信息在屏幕上显示。 - Rinzwind
与"command || true"相关的是这个链接。https://unix.stackexchange.com/questions/325705/why-is-pattern-command-true-useful/325727 - H2ONaCl
@Rinzwind 谢谢。在某些情况下,command || true听起来很有用,但是rm --force fileName似乎会导致删除失败变得无害。man描述中说...“忽略不存在的文件和参数,不提示”。将command || true用作所有删除命令的规则可能是一个好主意,因为如果你总是这样做,就不需要思考了。然而,目前我还没有决定是否要把它作为自己的规则。 - H2ONaCl
“Edit”部分看起来像是你最终确定的解决方案。在这种情况下,你应该将其从问题中删除,并通过点击“回答你的问题”按钮将其作为答案发布在下面。自我回答问题是完全可以的(而且非常鼓励),你可以参考自我回答问题的帮助页面 - pomsky
2个回答

在您第一次保存后,默认情况下会存在隐藏的临时波浪线后缀文件,当然,如果gedit(或您的操作系统)崩溃,它们将保留下来:从gedit恢复文件

波浪线后缀文件与原始文件位于同一目录中。

创建这些文件是可选的,并且可以在首选项中进行更改,具体操作如下:在gedit菜单中依次选择 编辑 > 首选项 > 编辑器 > 找到“保存前创建文件备份”的选项 > 取消勾选该选项。

其他目录中不应该有任何其他临时文件或崩溃文件。


带有波浪线后缀的文件与原始文件位于同一目录中。创建这些文件是可选的,并且可以在首选项中进行更改。希望其他目录中没有其他临时文件或崩溃文件。 - H2ONaCl
rm --force pw.txt~添加到脚本中是因为这比禁用创建该文件的首选项更安全。 - H2ONaCl

如果只是一个文件,你只是手动访问:
你可以用vi加密密码文件。
vi -x pw.txt ....然后在被要求时创建一个密码。

然后每次访问时输入密码。
如果有人查看文件,它无法被解读...以人类的方式
限制是你必须使用vi来操作它。

我不确定你是否正在访问很多密码文件
....还是只是偶尔需要进入一个文件
.....或者以编程方式进行操作,对于这个来说不太好。
...只是另一种解决安全问题的可能选择。