刚刚在 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 环境设置控制。我使用了建议的解决方案这里经过真二元性。
- 检查当前临时目录在哪里:
echo $TMPDIR
或者
mktemp -u
它看起来应该是这样的:/tmp/tmp.zrBHbp0Yt0
- 编辑文件/etc/配置文件
sudo gedit /etc/profile
- 附加以下代码:
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
重启
检查您的临时目录是否已重新分配给您的/主页/用户/目录
echo $TMPDIR
这次,返回的结果应该是这样的:/主页/用户/tmp/nrXo,显示临时目录已被重新分配。
评论:
- 此时问题应该已经解决,您应该能够执行一些操作,例如直接从 Firefox 打开文件(而不是先下载)。文件将以只读模式打开。
- 仅当最后一步 (5) 确认临时目录现在已正确重新分配时,您才需要担心新的 /tmp 文件会无休止地增长。为了纠正此问题,我们需要确保在会话结束时删除该文件。但是,如果上一步未正确完成,您使用 root 凭据登录并继续下一步,这可能会产生问题。
小心!
sudo gedit ~/.bash_logout
添加以下行:
if [ -O $TMPDIR && -d $TMPDIR ]; then
rm -rf $TMPDIR/*
fi
保存。关闭并重新启动。