LibreOffice 18.04 では /tmp ファイルにアクセスできません

LibreOffice 18.04 では /tmp ファイルにアクセスできません

Ubuntu 18.04 に LibreOffice 6.0.4.2 をインストールしました。

LibreOffice は /tmp ディレクトリからファイルを開くことも、一覧表示することもできません。

私は AppArmor プロファイルや、開発者が「予想される」/home の使用例などについて話しているのを読みましたが、これらは LibreOffice チームによるもう 1 つの完全なナンセンスだと私は考えています。

AppArmor を無効にしてみましたが、その後 LibreOffice が開かなくなったため、再度有効にしました。

LibreOffice がシステム内の任意のフォルダー内のファイルにアクセスできるようにする解決策はありますか?

答え1

18.04 および以前の LibreOffice ではこの問題は発生しませんでした。しかし、Ubuntu 20.04 および LibreOffice 6.4 では問題が発生しています。

少し調べたところ、権限の問題であることがわかりました。Ubuntu 20.04では、LibreOfficeを含むアプリにはフォルダーへの読み取りアクセス権がありません。/tmpアプリケーション (Firefox など) が一時ファイルを置く場所です。ちなみに、Web から任意のファイルを、最初にダウンロードせずに、割り当てられたアプリケーションを使用して Firefox で直接開こうとすると、同じ問題が発生します (たとえば、Web に保存された .deb ファイルをソフトウェア インストーラーを使用して Firefox で開こうとすると)。

これを解決する 1 つの方法は、まずファイルをダウンロードしてから開くことです。しかし、これは面倒です。

別の方法としては、一時ディレクトリを再割り当てすることです。/ホーム/ユーザー/ディレクトリ。これにより、/セキュリティを損なうことなくディレクトリを保護できます。

一時ディレクトリは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

今回の戻り値は次のようになります。/home/ユーザー/tmp/nrXo一時ディレクトリが再割り当てされたことを示しています。

備考:

  • この時点で問題は解決され、Firefox からファイルを直接開く (最初にダウンロードする代わりに) などの操作ができるようになります。ファイルは読み取り専用モードで開かれます。
  • 最後の手順 (5) で temp ディレクトリが正しく再割り当てされたことが確認された場合のみ、新しい /tmp ファイルが際限なく大きくなることを心配する必要はありません。この問題を修正するには、セッションの最後にファイルが削除されるようにする必要があります。ただし、前の手順が正しく完了していない場合、ルート資格情報でログインして次の手順に進むと、問題が発生する可能性があります。

注意深い!

sudo gedit ~/.bash_logout

次の行を追加します。

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

保存して閉じ、再起動します。

関連情報