Samba 共有を使用してユーザーをマップするにはどうすればよいですか?

Samba 共有を使用してユーザーをマップするにはどうすればよいですか?

私は、公開された Windows 共有を備えた Synology Diskstation を持っています。サーバーとクライアント (Ubuntu 12.04) の両方に、一致するユーザー名とパスワードを持つユーザー アカウントがあります。(神話/神話)

共有は次のようにマウントされます:

//192.168.88.1/plex  /mnt/plex  cifs  username=myth,password=xxxx  0  0

共有上のファイルを作成、読み取り、削除できます。編集または上書きすることはできません。

次のように作成されます:

-rw-rw-r-- 1 1026 users  725178368 Mar 18 13:12

サーバー (Synology DiskStation、DSM4.1 を実行、独自の Linux バージョン) には、myth というユーザーがいます。クライアント (Ubuntu 12.04) には、myth というユーザーがいます。両方のアカウントのパスワードは同じです。

つまり、どうやら uid 1026 をユーザー myth にマップする必要があるようです。どうすればいいでしょうか?

DiskStation からの smb.conf:

[global]
    printcap name=cups
    winbind enum groups=yes
    security=user
    local master=no
    realm=*
    passdb backend=smbpasswd
    printing=cups
    winbind enum users=yes
    load printers=yes
    workgroup=WORKGROUP
[plex]
    invalid users=nobody,nobody
    valid users=nobody,guest,admin,myth,nobody
    comment="Storage Location For PlexMediaServer"
    path=/volume1/plex
    guest ok=yes
    browseable=yes
    fileindex=yes
    mediaindex=no
    edit synoacl=no
    enable recycle bin=yes
    recycle bin admin only=no
    hide unreadable=no
    ftp disable list=no
    ftp disable modify=no
    ftp disable download=no
    read list=nobody,guest,nobody
    write list=nobody,admin,myth,nobody
    writeable=yes

答え1

やりたいことは、Samba ユーザー名マップ ファイルを設定することです。

/etc/samba/smb.conf ファイルの [Global] セクションで、マップ ファイルの場所を "username map" オプションに設定できます。

[global]
    username map = /pathToMapFile/usermap.txt

usermap.txt(または任意の名前)には、次の形式でフォーマットされた行が含まれています。mapTo = mapFromたとえば、Windows ボックスのユーザーが Ubuntu マシンの Samba 共有にアクセスできることを確認したい場合、usermap.txt ファイルに次のような行を追加します。

myUbuntuUserName = myWindowsUserName

もちろん、これらの変更を確認するには、Samba サービスを再起動する必要があります。

sudo service smbd restart

さらにサポートが必要な場合は、以下のドキュメントを参照してください。公式の Samba ドキュメント (下記) では、複数のユーザー名を 1 人のユーザーにマッピングする方法、またはグループをユーザーにマッピングする方法が説明されています。

ユーザー名マップ (G)

ユーザー名マップ - 管理

関連情報