我可以擁有私人/用戶特定的等資料夾嗎?

我可以擁有私人/用戶特定的等資料夾嗎?

我經常擺弄從原始碼構建的軟體,我將其安裝在$HOME/.local.為了使其運行,我必須導出各種變量,例如LD_LIBRARY_PATH.但我不想手動匯出它們每一個是時候我想使用其中的一些軟體了。其中大部分可以匯出到 my$HOME/.profile.bashrc文件中,但不能匯出到LD_LIBRARY_PATH.這項一項只能在 中更改/etc/ld.so.conf。但我不想修改 root 的檔案。所以我的問題是:我可以在我的主資料夾/任何地方建立一個資料夾,該資料夾將自動被視為第二個/etc資料夾,或者是否有一個環境變數可以設定為指向這樣的目錄?

答案1

你可以使用 取消共享命令 安裝和替換您喜歡的任何文件或資料夾。也有 的解決方案chroot,但實現起來要繁重得多。

在帖子中找到了一個很好的例子 我可以建立一個特定於使用者的主機檔案來補充 /etc/hosts 嗎?

弗里爾普 的回答 是替換hosts文件的一個很好的例子:

使用該命令建立的私有掛載空間unshare可用於向 shell 進程以及從該 shell 啟動的任何後續子進程提供私有 /etc/hosts 檔案。

# Start by creating your custom /etc/hosts file
[user] cd ~
[user] cat >my_hosts <<EOF
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
127.0.0.1 news.bbc.co.uk
EOF

[user] sudo unshare --mount
# We're now running as root in a private mountspace. 
# Any filesystem mounts performed in this private mountspace
# are private to this shell process and its children

# Use a bind mount to install our custom hosts file over /etc/hosts
[root] mount my_hosts /etc/hosts --bind

[root] cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
127.0.0.1 news.bbc.co.uk

[root] exec su - appuser

[appuser] # Run your app here that needs a custom /etc/hosts file

[appuser] ping news.bbc.co.uk
PING news.bbc.co.uk (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.062 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.026 ms
^C
--- news.bbc.co.uk ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.026/0.044/0.062/0.018 ms

unshare命令替換文件或資料夾。所以如果你只想添加對於 中的某些文件/etc,您需要透過將資料附加到原始內容來建立替換文件。

相關內容