Могу ли я иметь личную / пользовательскую и т. д. папку?

Могу ли я иметь личную / пользовательскую и т. д. папку?

Я часто возюсь с программным обеспечением, собранным из исходников, которые я устанавливаю в $HOME/.local. Чтобы запустить его, мне нужно экспортировать различные переменные, такие как LD_LIBRARY_PATH. Но я не хочу экспортировать их все вручнуюкаждыйвремя я хочу использовать некоторые из этих программ. Большинство из них можно экспортировать в мой $HOME/.profileи .bashrcфайл, но не LD_LIBRARY_PATH. Этот можно изменить только в /etc/ld.so.conf. Но я не хочу изменять файлы root. Поэтому мой вопрос: могу ли я создать папку в моей домашней папке / в любом месте, которая будет автоматически рассматриваться как вторая /etcпапка, или есть переменная окружения, которую я могу установить, чтобы она указывала на такой каталог?

решение1

Вы могли бы использовать команда отмены обмена для монтирования и замены любого файла или папки, которые вам нравятся. Есть также решение chroot, но его гораздо сложнее реализовать.

Хороший пример можно найти в посте Могу ли я создать пользовательский файл hosts в дополнение к /etc/hosts?

Theответ от frielp хороший пример замены hostsфайла:

Частные пространства монтирования, созданные с помощью этой unshareкоманды, можно использовать для предоставления частного файла /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, вам потребуется создать файлы замены, добавив свои данные к исходному содержимому.

Связанный контент