$HOME이 사용자의 홈 디렉토리 위치가 아닌가?

$HOME이 사용자의 홈 디렉토리 위치가 아닌가?

웹 애플리케이션을 작성하는 데 문제가 있습니다. 사용자로 실행 중인 웹 애플리케이션은 특정 SVG 파일을 조작하기 위한 프로세스를 nobody시작해야 합니다 . inkscapeuser 로 실행되기 때문에 nobody홈 디렉터리가 없습니다. 내가 하고 /tmp있는 export HOME=/tmp/someUniqueId일은 .fonts.

나는 이것이 ~/.fonts디렉토리를 찾는 데 효과적이라는 것을 알고 있습니다. 그러나 Inkscape를 시작하면 Inkscape가 디렉터리를 만들 수 없다는 메시지만 나타납니다 .inkscape.

/.inkscape 디렉토리를 생성할 수 없습니다.

$HOME내 홈 디렉토리의 위치를 ​​설정 하지 않습니까 ? Inkscape가 여전히 /내 홈 디렉토리로 액세스 하려고 하는 이유는 무엇입니까 ?

답변1

Inkscape는 GLib를 사용하는 GTK 애플리케이션입니다.g_get_home_dir함수는 사용자의 홈 디렉터리를 찾습니다. 해당 링크에 설명된 대로 에 g_get_home_dir문의하지 $HOME말고 에 문의하세요 /etc/passwd. $HOME확인하기 전에 먼저 Inkscape를 패치 해야 합니다 (이 링크에 표시된 대로).

답변2

예, 현재 사용자의 홈 디렉토리는 HOME환경 변수가 나타내는 디렉토리여야 합니다. 물론 전역 시스템 설정이 있습니다. 즉, 의 항목 /etc/passwd또는 더 일반적으로는 사용자 데이터베이스의 홈 필드입니다. 응용 프로그램은 현재 사용자가 아닌 사용자를 찾거나 보안 응용 프로그램(예: setuid 프로그램)이 있는 경우에만 이 설정을 사용해야 합니다. 그렇지 않으면 $HOME우선적으로 적용되어야 합니다. 그렇지 않은 경우 응용 프로그램의 버그입니다.

CJM의 답변Inkscape 및 기타 Gnome 응용 프로그램 표시SUV이와 관련하여.

관련 정보