デスクトップなしでRHEL7から非rootユーザーとしてCIFS共有マウント

デスクトップなしでRHEL7から非rootユーザーとしてCIFS共有マウント

RHEL / CentOS 7サーバーが接続されているWindows(AD)ドメイン(SSSD / realmd)があります。ユーザーは AD 資格情報を使用して SSH を介してサーバーにログインします。これで、ユーザーはWindows共有の一部をRHELサーバーにマウントできるようになりました。しかし、すべてのユーザーに(u)マウントに対するsudo権限を与え、(u)マウントにSUIDフラグを設定することを避けたいと思います。

gvfs-mount私に必要なようなコマンドを見つけたので、私は引き続き必要なパッケージをインストールしました。アプリケーションはセッションDBusにアクセスする必要があるため、DBUS_SESSION_BUS_ADDRESSこの変数をエクスポートする必要があります。 DBus-Daemon()を起動するためにdbus-launchこのパッケージをインストールしましたdbus-x11

コマンドの実行

export $(dbus-launch)
gvfs-mount smb://DOMAIN\;USER@HOST/SHARE

共有が正常にマウントされました。

私の最初のアイデアは、最初の行をに入れることでした.bash_profile。ただし、このソリューションには2つの主な問題があります。

  1. 誰かがログインするたびにdbus-daemon新しいインスタンスが作成され、ログアウト時に終了しません。仮に、パッケージはdbus-x11ログインするたびにインスタンスを起動するスクリプトをインストールしますが、/etc/X11/xinit/xinit.rc.d/00-start-message-bus.shアドレス変数はどのように取得されますか?
  2. ユーザーが共有のマウント解除を忘れた場合、アドレス変数がわからないため、後続のログイン時に共有をマウント解除できません。

理想的には、dbus-daemonアドレス変数はログイン時に開始してエクスポートする必要があります。 SSHセッションが終了したら(ログアウトはオプション)、まだマウントされているすべての共有をアンマウントし、デーモンを終了する必要があります。エレガントな方法でこれを達成するにはどうすればよいですか?

関連していますが、古く、ほとんど答えがありません。ログインセッション全体でD-Busセッションを再利用する

ベストアンサー1

gvfs-mount実際、グラフィカルログインにautofsを使用するのではなく、autofsを使用してこれを正常に実行しました。

/etc/auto.master.d/にwinhome.autofsというautofs設定ファイルがあります(.autofsで終わる必要があります)。

/winhome -fstype=cifs,sec=krb5,uid=&,user=&,cruid=& ://sharename/&

Kerberosチケットを取得するためにsssdを設定している限り、ユーザーがディレクトリを開くと(グラフィックアプリケーションを使用するかシェルを介して)、そのチケットを使用してボリューム\sharename\usernameを自動的にマウントします。

おすすめ記事