リモートホームディレクトリのマウント

リモートホームディレクトリのマウント

SAMBA / CIFSサーバーがあり、ユーザーは自分のディレクトリを持っています。私のクライアントコンピュータはLinuxまたはWindowsを実行します。私が望むのは、両方のオペレーティングシステムでその共有を使用することです。しかし、私のユーザーはどのコンピュータにもログインできます。私の問題は次のとおりです。 Linuxでは、/etc/fstab次の内容を変更して含める必要があります。

//sambaserver/username /mnt/samba smbfs username=<username>,password=<pass> 0 0  

私の問題は、ユーザー名とパスワードを静的に設定できませんが、必要なことです。動的(正確な用語かどうかはわかりません。)簡単に言うと、ユーザーがシステムにログインするときに共有を自分のホームディレクトリにマウントする必要がありますが、ユーザーが別のコンピュータにログインできるため、/etc/fstabユーザー名とパスワードを「キャプチャ」する必要があることを覚えておいてください。してください。
私の質問が明確になることを願っています。よろしくお願いします。

ベストアンサー1

ログインしたユーザーのSamba共有を単一の再利用可能な場所にマウントしようとする代わりに(複数のユーザーがログインしている場合に問題が発生する)、各ユーザーに一意の場所(またはピンチなど/home/<username>/sambaserver/mnt/samba/<username>にマウントすることを検討してください。

Linuxを使用している場合は、smbmountシンプルなユーザースペースSambaインストーラがニーズに適しています。

次のような小さなスクリプトを作成します。

#!/bin/sh
# Default samba server to connect to
SAMBASERVER="sambaserver"
USERNAME="$USER"

if [ -n "$1" ]
then
  # We've been given a different samba server
  SAMBASERVER="$1"
fi

if [ -n "$2" ]
then
  # We've been given a different user on the samba server to use
  USERNAME="$2"
fi

CREDSFILE="${HOME}/.${SAMBASERVER}.credentials"

# Try and make the mount point if it doesn't yet exist (and set suitable mount dir perms)
if [ ! -d "${HOME}/${SAMBASERVER}" ]
then
  mkdir "${HOME}/${SAMBASERVER}" && chmod 0555 "${HOME}/${SAMBASERVER}" || exit 1
fi

if [ ! -f "$CREDSFILE" ]
then
  echo "$CREDSFILE not found!"
  exit 1
fi

smbmount "\\${SAMBASERVER}\${USERNAME}" "${HOME}/${SAMBASERVER}" -o user="$USERNAME",credentials="$CREDSFILE" || exit 1

(テストされていません - 調整/デバッグなどが必要な場合があります)

次に、各ユーザーのホームディレクトリに(たとえば)という資格情報ファイルを作成し、.sambaserver.credentials権限をそのユーザーが所有する0600に設定します。

username=<samba user>
password=<samba password>

最後に、.profileで上記のマウントスクリプトを呼び出します。例:/usr/local/bin/mount-user-home.shまたは/usr/local/bin/mount-user-home.sh sambaserver somedifferentusername特別な状況。

これは、複数のSambaサーバー、複数のユーザー、および複数のSambaサーバーを使用する複数のユーザーに適用されます。

おすすめ記事