/home
나는 때때로 아침에 시작하지 못하는 파일 서버가 있는 조직에서 일하고 있습니다 . 여전히 콘솔에 로그인할 수는 있지만 비슷한 오류 메시지가 나타납니다 $HOME not available, using /
. 이 경우 내 해결책은 다음과 같습니다.
cd /tmp
mkdir home
chmod 700 home
export HOME=/tmp/home
# wget a copy of my "emergency" rc files that I keep online
# xinit, twm etc.
따라서 웹 브라우저를 통해 여전히 이메일을 읽을 수 있으며, 파일 서버가 장기간 다운되면 gitlab의 현재 프로젝트를 /tmp에서 확인하고 계속 진행합니다.
Xterm과 twm은 매개 변수 없이 $HOME
임시 설정을 존중하고 원활하게 작동하며 bash에서도 잘 작동하는 것 같습니다. 아니요. 여전히 서비스를 제공할 수 없다고 불평하고 있습니다. (Chromium은 실행되지만 시작하면 여전히 dbus가 존재하지 않는 /home에 대해 짜증을 냅니다.)cd
~
chromium-browser
/home/organisation-specific-stuff/my-username
--user-data-dir=/tmp/home/chromium
내 질문:
그 외에도 프로그램이 "홈 디렉터리"를 참조하는 다른 방법은 무엇
$HOME
이며 일부 프로그램이 다른 것보다 하나를 선택하는 데 대한 타당한 이유(예: 보안 관련)가 있습니까?예를 들어 chromium, dbus를 일시적으로 사용하도록 지시하는 방법이 있습니까
/tmp/home
? 루트 권한이 부족하여 [1]의 솔루션을 사용할 수 없습니다. 같은 이유로chroot
불가능해 보입니다. 아니면 이것은 어리석은/위험한 일입니까?
그것이 차이가 있다면 내 시스템은 "정확히" Ubuntu입니다.
답변1
귀하의 질문이 제 관심을 불러일으키지만 아직 준비된 답변이 없습니다. 내가 시도한 Unix, Linux 또는 *BSD에는 "홈 디렉토리"와 관련된 시스템 호출이 없습니다. 사용자의 홈 디렉토리를 이해하는 Linux 커널에 대해 Google에서 검색할 수 없습니다. 따라서 나는 value가 $HOME
"홈 디렉토리"를 결정하는 쉘의 공식 문서 소스라고 믿습니다. 로그인 프로그램은 사용자의 쉘을 분기하고 실행할 때의 로그인 프로그램을 기반으로 설정됩니다 HOME
./etc/passwd
알다시피, 값이 $HOME
디렉토리 이름과 일치하지 않으면 대부분 쉘 편의성 측면에서 상황이 약간 지저분해집니다. 그러나 실제로는 완전히 깨지는 것은 없습니다. 여전히 대부분 로그인 쉘을 사용할 수 있습니다. 나는 설정을 실험해 보았다 export HOME=/var/tmp
. bash
이 점에 대해서는 신경 쓰지 않는 것 같으며 cd ~
직접 /var/tmp로 이동합니다.