$HOMEがユーザーのホームディレクトリの場所ではありませんか?

$HOMEがユーザーのホームディレクトリの場所ではありませんか?

Webアプリケーションの作成に問題があります。ユーザーとして実行されているWebアプリケーションは、特定の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これに関して。

関連情報