Linux

如何創建一個可以訪問正在安裝軟體包的使用者的目錄?

  • March 2, 2014

我正在 Debian 上打包我的一個項目。該項目希望在保存數據文件的位置XDG_DATA_HOME或位置創建一個目錄。~/.local/share/現在我正在嘗試使用包postinst附帶的腳本創建和提供初始數據.deb。問題是由於軟體包是以 root 身份安裝的,因此該目錄是以 root 身份創建的,並且安裝它的使用者將沒有對其的寫權限。

我的問題是如何創建目錄,以便安裝軟體包的使用者對其及其所有子目錄具有寫權限?

你問的東西沒有意義。進行安裝的使用者始終是 root。如果您希望新使用者自動將這個文件放在他們的主目錄中,那麼您可以將它添加到 /etc/skel。如果現有使用者沒有它,那麼程序需要能夠處理它,可能通過自動創建它,可能通過從 /etc/skel 或 /usr/share 複製預設值。

據我所知,這postinst只是一個 shell 腳本,所以你可以在這個腳本中做任何你想做的事情(有理由)。也許之後對目錄執行chownchmod操作會按照您想要的方式設置權限。

debian/postinst:
...
configure)
the_user="xyz"
#Creating the user if it does not exist
if ! getent passwd $the_user > /dev/null; then
adduser $the_user
fi

chown -R $the_user /path/to/some/file

引用自:https://unix.stackexchange.com/questions/117729