
剛剛在 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 環境設定控制。我使用了建議的解決方案這裡經過真正的二元性。
- 檢查目前的臨時目錄在哪裡:
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
這次,返回應該是這樣的:/home/用戶/tmp/nrXo,顯示臨時目錄已重新分配。
評論:
- 此時問題應該已經解決,您應該能夠執行一些操作,例如直接從 Firefox 開啟檔案(而不是先下載它)。該文件將以唯讀模式開啟。
- 只有當最後一步 (5) 確認臨時目錄現在已正確重新分配時,您才可以擔心新的 /tmp 檔案會無休止地增長。為了修正這個問題,我們需要確保在會話結束時刪除該檔案。但是,如果上一步未正確完成,您使用 root 憑證登入並繼續下一步,這可能會產生問題。
小心!
sudo gedit ~/.bash_logout
新增以下行:
if [ -O $TMPDIR && -d $TMPDIR ]; then
rm -rf $TMPDIR/*
fi
節省。關閉並重新啟動。