追加読書

追加読書

今日、私はArch Linuxを実行している私のコンピュータが存在しないというssh事実に驚きました。/run/user/$(id -u)

これXDGの基本ディレクトリ仕様説明する:

$XDG_RUNTIME_DIRユーザー固有の必須ではないランタイムファイルと他のファイルオブジェクト(ソケット、名前付きパイプなど)を保存する必要があるデフォルトディレクトリに基づいて定義します。ディレクトリはユーザーが所有し、そのディレクトリへの読み取りおよび書き込みアクセス権を持つ唯一の人である必要があります。 Unixアクセスモードは必要です0700

ディレクトリのライフサイクルはログインしたユーザーにバインドする必要があります。ユーザーが初めてログインしたときにディレクトリを作成し、ユーザーが完全にログアウトしたらディレクトリを削除する必要があります。ユーザーが複数回ログインする場合は、同じディレクトリを指す必要があり、そのディレクトリは最初のログインから最後のログアウトまでシステムに残る必要があり、この期間中は削除できません。ディレクトリ内のファイルは、再起動後またはフルログアウト/ログインサイクル後に維持することはできません。

systemdボックスで/run/user/$(id -u)好む場所は何ですか$XDG_RUNTIME_DIR(生成する必要がある場合でも?)

そうでない場合、これを作成する最良の方法は何ですか$XDG_RUNTIME_DIR

「完全に」ログアウトしたときにのみディレクトリが削除されるようにするにはどうすればよいですか?

(「完了」とは、ログインシェルによって生成されたすべてのプロセスが終了したことを意味しますか?確認する方法は何ですか?)

答え1

ディレクトリ、サービス、および環境変数は、システム固有のプラグイン認証モジュールおよびサービスによって管理されます。最初のログイン時にディレクトリを作成し、ここにマウントされたファイルシステムを作成し、最後のログアウト時にサービスを開始し、サービスを停止し、ファイルシステムをアンマウントしてディレクトリを削除します。この動作は、アカウントにsystemdオプションが設定されていると変更されます。/run/user/Nuser@NXDG_RUNTIME_DIRlogindlinger

他のシステムは異なる動作をします。

追加読書

答え2

$XDG_RUNTIME_DIRログイン時に設定/作成

  • $XDG_RUNTIME_DIR設定すると、既存の項目が使用されます。
  • systemdそれ以外の場合はsがあれば使用してください。/run/user/$UID
  • それ以外の場合は作成して使用してください。/tmp/$USER-runtime

所有権と権限の確認$XDG_RUNTIME_DIR

  • /tmp/"$USER"-runtime-XXXXXX権限が悪い場合は、作成して使用してください。
if [ -z "$XDG_RUNTIME_DIR" ]; then  # It's not already set
  XDG_RUNTIME_DIR=/run/user/$UID  # Try systemd created path
  if [ ! -d "$XDG_RUNTIME_DIR" ]; then
    # systemd-created directory doesn't exist
    XDG_RUNTIME_DIR=/tmp/$USER-runtime
    if [ ! -d "$XDG_RUNTIME_DIR" ]; then  # Doesn't already exist
      mkdir -m 0700 "$XDG_RUNTIME_DIR"
    fi
  fi
fi
# Check dir has got the correct type, ownership, and permissions
if ! [[ -d "$XDG_RUNTIME_DIR" && -O "$XDG_RUNTIME_DIR" &&
    "$(stat -c '%a' "$XDG_RUNTIME_DIR")" = 700 ]]; then
  echo "\$XDG_RUNTIME_DIR: permissions problem with $XDG_RUNTIME_DIR:" >&2
  ls -ld "$XDG_RUNTIME_DIR" >&2
  XDG_RUNTIME_DIR=$(mktemp -d /tmp/"$USER"-runtime-XXXXXX)
  echo "Set \$XDG_RUNTIME_DIR=$XDG_RUNTIME_DIR" >&2
fi

関連情報