web-dev-qa-db-ja.com

autofsを使用して各ユーザーのホームディレクトリにマウントする

(SFからのクロスポスト、私はあまり喜びを得ていませんでした)

私はCentOS 6.2ボックスを稼働させており、インターネット上のさまざまなハウツーを使用して、/ mydomainフォルダーの下のWindows共有を自動マウントするようにautofsを構成しています。具体的には、3つのファイルがあります。

/etc/auto.master

# ...
/mydomain   /etc/auto.mydomain --timeout=60
# ...

/etc/auto.mydomain

* -fstype=autofs,-DSERVER=& file:/etc/auto.mydomain.sub

/etc/auto.mydomain.sub

* -fstype=cifs,uid=${UID},gid=${EUID},credentials=${HOME}/.smb/mydomain ://${SERVER}/&

これは機能し、各ユーザーが自分の資格情報を自分のホームディレクトリの下のファイルに指定できるようにします。

ただし、それらが作成するマウントは、タイムアウトに達するまで、元のユーザーの資格情報を使用して誰でも利用できます。これは理想的とは言えないので、私は次のいずれかを実行しようと考えてきました。

  1. マウントが各ユーザーに対してローカルであるが同じパスの下にあるようにautofsを構成し、マウントがそれぞれ独自の資格情報で/mydomain/server1に同時にアクセスできるようにします。
  2. マウントポイントが各ユーザーのホームフォルダーの下にあるようにautofsを設定して、ユーザーがそれぞれ独自の認証情報で~/mydomain/server1に同時にアクセスできるようにします。
  3. マウントがユーザー名付きフォルダーの下にあるようにautofsを構成して、マウントが独自の資格情報で/mydomain/$USER/server1に同時にアクセスできるようにします(ただし、/mydomain/$USERが$ USERに対して0700であることを確認する必要もあります)

これまでのところ、#1を行う方法はわかりませんが、#2または#3の場合は、/ etc/auto.masterのエントリを変更して、キーが${HOME}/mydomainまたは/mydomain/${USER}のいずれかになるようにしましたが、どちらもありません機能しました(1つ目は/var/log/messagesに一致するエントリがないことを示し、2つ目は変数置換を実行していないようです)。

明らかなものがないのですか?

(PS:プレーンテキストの資格情報ファイルの必要性を回避する方法を提供できる場合のボーナスの小道具-おそらくユーザー名/ドメイン/パスワードの直接のプロンプト、またはおそらくいくつかのKerberosの魔法?)

(PPS:私は smbnetfs を簡単に調べましたが、構成/作成することができませんでした-Fuse >= 2.6に従ってv2.8.3があるにもかかわらず、fusermount --versionを要求します-そして私はできませんでしたt yum installのリリース済みバージョンを見つける)

(PPPS:提供されている/etc/auto.smbも簡単に確認しましたが、同じ共有の問題が発生するように見えましたか?)

4
jimbobmcgee

私はautofsで多くの作業を行い、それを使用してさまざまな種類のリソースをマウントしました。 man page for autofsをチェックして、ドキュメントで$USERを参照しているときにそれをそのまま続けることができれば、いくつかの質問に答えることができます。 「autofsデーモンを実行しているユーザーを参照しています。これらは、デフォルトで取得する変数です。

Variable Substitution

The following special variables will be substituted in the key and location fields of an automounter map if prefixed with $ as customary from Shell scripts (Curly braces can be used to separate the field name):
Arch    Architecture (uname -m)
CPU    Processor Type
Host    Hostname (uname -n)
OSNAME    Operating System (uname -s)
OSREL    Release of OS (uname -r)
OSVERS    Version of OS (uname -v)
autofs provides additional variables that are set based on the user requesting the mount:

USER    The user login name
UID    The user login ID
GROUP    The user group name
GID    The user group ID
HOME    The user home directory
Host    Hostname (uname -n)
Additional entries can be defined with the -Dvariable=Value map-option to automount(8).

おそらく-DUSER=$USERを使用したくなるでしょうが、これはautofsマップファイル内の$USERautofsデーモンを開始したユーザーに設定するだけです。デーモンは通常、rootなどのユーザー、またはchrooted用に特別に設定されたautofsユーザーによって所有されます。

注#1:autofsファイルはkeyvalueで構成されます。変数は、エントリのvalue部分内でのみ使用できます。

注#2:-D=...スイッチが組み込み変数をオーバーライドしない場合、$USERまたは$UIDマウントにアクセスしている人の$USER$UIDの値が含まれます。

CIFS共有へのアクセスを制限する

CIFSマウントへのアクセスを制限する方法についての質問に関しては、autofsを使用してこれを達成する方法がわかりません。

CIFS共有のマウントに使用される資格情報は、共有がマウントされている間、使用されます。実際、デーモンautofsを実行しているautomountは、rootのように、CIFSユーザーの資格情報と「同等」です。

これは、autofsの一般的な動作とは異なり、mount.cifsの使用による副産物です。一般的なautofsの動作は、マウントの反対側の権限を尊重しますが、mount.cifsの場合はそうではありません。

ボトムライン

Autofsを使用してセットアップを完了するのは運が悪いと思います。各ユーザーが自分の資格情報を使用してFuse共有に本当にアクセスできるようにするには、CIFSを使用する必要があると思います。

4
slm

すでに使用していたfile_mode設定と組み合わせてdir_modeおよびuid=${USER}オプションを使用してCIFSマウントに権限セットを強制的に設定し、次のような自動マウントマップ行を指定できます。

* -fstype=cifs,uid=${UID},gid=${EUID},file_mode=0600,dir_mode=0700,credentials=${HOME}/.smb/mydomain ://${SERVER}/&

マウントされたファイルシステムはユーザーが所有し、アクセス許可は他のすべてのユーザーにアクセスを許可しないように設定されます。私はこれを試したところ、うまくいくようです:)

共有に保存して実行できると予想される実行可能ファイルがある場合は、file_mode=0700を設定することができます。私の例では、実行許可が削除されました。

注:このオプションは、質問の時点では存在していなかった可能性がありますが、現在は存在します!

1
David Gardner

Sambaの使用:

/etc/auto.home

*       -fstype=cifs,credentials=/etc/smbcreds.& ://MYSERVERIP/homes

すべてのユーザーとパスワードを独立したファイルに保存する必要があります/etc/smbcreds

行の最後の部分は、Samba経由でマウントされます。

NFSの使用:

/etc/auto.home:(NFSの場合)

*       MYSERVERIP:/home/&
0
Miguel Frias