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