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 中使用指定的應用程式從網路上直接開啟任何文件,而不先下載它(例如嘗試使用軟體安裝程式在Firefox 中開啟網路儲存的.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

這次,返回應該是這樣的:/home/用戶/tmp/nrXo,顯示臨時目錄已重新分配。

評論:

  • 此時問題應該已經解決,您應該能夠執行一些操作,例如直接從 Firefox 開啟檔案(而不是先下載它)。該文件將以唯讀模式開啟。
  • 只有當最後一步 (5) 確認臨時目錄現在已正確重新分配時,您才可以擔心新的 /tmp 檔案會無休止地增長。為了修正這個問題,我們需要確保在會話結束時刪除該檔案。但是,如果上一步未正確完成,您使用 root 憑證登入並繼續下一步,這可能會產生問題。

小心!

sudo gedit ~/.bash_logout

新增以下行:

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

節省。關閉並重新啟動。

相關內容