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

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

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サーバーを使用する複数のユーザーに適用されます。

答え2

自動マウントを探している可能性があります。

説明automountプログラムは、autofs(インラインLinux自動マウント)のマウントポイントを管理するために使用されます。 automount は、auto.master(5) マップを読み取り、マスター マップ内の各項目のマウント ポイントを設定し、アクセス時に自動的にマウントされるように動作します。ファイルシステムは、一定期間活動がなければ自動的にアンマウントされます。

これにより、固定資格情報またはLDAP / ADチケットを使用して特定のユーザーディレクトリを動的にマウントできます。

固定パスワードファイルの構成例:

$ cat auto.homedir
* -fstype=cifs,rw,credentials=/home/&/.smbcredentials,uid=&,gid=&,file_mode=755,dir_mode=755,users,sec=ntlmssp ://nas.example.com/&

CentOS 8のデフォルト設定は、パスワードファイルが存在することを確認します。それ以外の場合は、Kerberosを使用しようとします。

関連情報