LibreOffice 18.04 中无法访问 /tmp 文件

LibreOffice 18.04 中无法访问 /tmp 文件

刚刚在 Ubuntu 18.04 中安装了 LibreOffice 6.0.4.2。

LibreOffice 无法打开(也无法列出)/tmp 目录中的文件。

我读过有关 AppArmor 配置文件、开发人员谈论“预期” /home 用例等的文章,我认为这只是 LibreOffice 团队的另一番胡言乱语。

我尝试禁用 AppArmor,但 LibreOffice 之后甚至无法打开,所以我重新启用了它。

有没有解决方案可以让 LibreOffice 访问我的系统中任何文件夹中的文件?

答案1

使用 18.04 和之前的 LibreOffice 时我没有遇到这个问题。但是现在使用 Ubuntu 20.04 和 LibreOffice 6.4 时遇到了这个问题。

经过一番研究,我发现这是一个权限问题。在 Ubuntu 20.04 中,包括 LibreOffice 在内的应用程序没有对该文件夹的读取权限/tmp应用程序(例如 Firefox)在其中放置临时文件。顺便说一句,如果您尝试在 Firefox 中直接使用其指定的应用程序打开来自 Web 的任何文件,而不先下载它,也会遇到同样的问题(例如,尝试在 Firefox 中使用软件安装程序打开 Web 存储的 .deb 文件)。

解决此问题的一种方法是先下载文件,然后再打开它们。但这很烦人。

另一种方法是重新分配/主页/用户/目录。这样做的好处是可以减少/目录,同时又不损害安全性。

临时目录由 TMPDIR 环境设置控制。我使用了建议的解决方案这里经过真二元性

  1. 检查当前临时目录在哪里:
echo $TMPDIR

或者

mktemp -u

它看起来应该是这样的:/tmp/tmp.zrBHbp0Yt0

  1. 编辑文件/etc/配置文件
sudo gedit /etc/profile
  1. 附加以下代码:
if [[ -O /home/$USER/tmp && -d /home/$USER/tmp ]]; then
        TMPDIR=/home/$USER/tmp
else
        # You may wish to remove this line, it is there in case
        # a user has put a file 'tmp' in there directory or a
        rm -rf /home/$USER/tmp 2> /dev/null
        mkdir -p /home/$USER/tmp
        TMPDIR=$(mktemp -d /home/$USER/tmp/XXXX)
fi

TMP=$TMPDIR
TEMP=$TMPDIR

export TMPDIR TMP TEMP
  1. 重启

  2. 检查您的临时目录是否已重新分配给您的/主页/用户/目录

echo $TMPDIR

这次,返回的结果应该是这样的:/主页/用户/tmp/nrXo,显示临时目录已被重新分配。

评论:

  • 此时问题应该已经解决,您应该能够执行一些操作,例如直接从 Firefox 打开文件(而不是先下载)。文件将以只读模式打开。
  • 仅当最后一步 (5) 确认临时目录现在已正确重新分配时,您才需要担心新的 /tmp 文件会无休止地增长。为了纠正此问题,我们需要确保在会话结束时删除该文件。但是,如果上一步未正确完成,您使用 root 凭据登录并继续下一步,这可能会产生问题。

小心!

sudo gedit ~/.bash_logout

添加以下行:

if [ -O $TMPDIR && -d $TMPDIR ]; then
        rm -rf $TMPDIR/*
fi

保存。关闭并重新启动。

相关内容