개인/사용자별 폴더를 가질 수 있나요?

개인/사용자별 폴더를 가질 수 있나요?

나는 종종 소스에서 빌드된 소프트웨어를 만지작거리고 있는데, 이를 $HOME/.local. 실행하려면 LD_LIBRARY_PATH. 하지만 수동으로 모두 내보내고 싶지는 않습니다.모든시간이 지나면 그 소프트웨어 중 일부를 사용하고 싶습니다. 대부분은 my $HOME/.profile.bashrc파일 로 내보낼 수 있지만 LD_LIBRARY_PATH. 이것은 에서만 변경할 수 있습니다 /etc/ld.so.conf. 하지만 나는 루트의 파일을 수정하고 싶지 않습니다. 내 질문은 다음과 같습니다. 내 홈 폴더/어디에나 자동으로 두 번째 폴더로 처리되는 폴더를 만들 수 있습니까 /etc? 아니면 그러한 디렉터리를 가리키도록 설정할 수 있는 환경 변수가 있습니까?

답변1

당신은 공유 해제 명령 원하는 파일이나 폴더를 마운트하고 교체할 수 있습니다. 의 솔루션도 있지만 chroot구현하기가 훨씬 더 어렵습니다.

게시물에 좋은 예가 있습니다. /etc/hosts를 보완하기 위해 사용자별 호스트 파일을 생성할 수 있습니까?

그만큼프릴프가 대답해줘 파일 을 바꾸는 좋은 예는 다음과 같습니다 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원본 콘텐츠에 데이터를 추가하여 대체 파일을 작성해야 합니다.

관련 정보