web-dev-qa-db-ja.com

SambaがWindows ADと共有し、間違ったユーザー名を選択する

不思議な問題がありますが、Webでは答えが見つかりません。

Ubuntu 12.04 LTSとSamba 3.6を使用しています。 3(ntp krb5-user smbfs smbclient winbind)

最初はすべて正常に動作し、ADのグループには適切なファイルアクセスとユーザー権限が機能します1つの異常を除きます:

同じ名の2人のユーザーがいます:

サイモンフォリーとサイモンウォリー

サイモンウォリーとしてWindowsにログインし、彼の共有にアクセスしようとすると、権限が拒否されます。 samba.logを表示すると、次のようになります。

[2014/03/24 20:39:04.702632、2] smbd/service.c:627(create_connection_session_info)ユーザー 'WINDOMAIN\simon folly'(セッション設定から)は、この共有(simonw)へのアクセスを許可されていません

上記のとおり、間違ったユーザー名が認証されています。リストから名を見つけ、それを選択するようです。

だから私の理論をテストするために、私はsmb.confファイルのユーザー名を "simon folly"に変更し、サイモンウォリーとしてログインしたときに、自分の共有へのフルアクセス権があることを確認しました。

これは誰にも起こりましたか?それを修正する方法は?

これがsmb.confの私の共有です

note: when I change wally to folly then wally has full access.
otherwise below gets denied.    

[simonw]
    comment = Simon Only
    path = /sharing/ceo
    valid users = "WINDOMAIN\simon wally"
    force group = "domain users"
    writable = yes
    read only = no
    force create mode = 0660
    create mask = 0777
    directory mask = 0777
    force directory mode = 0770
    access based share enum = yes
    hide unreadable = yes

よろしくお願いします:)

1
IT Buff

この問題は、sambaでユーザー名の内部にスペースがサポートされていないために発生します。これは、それらがセパレーターとして使用されているためです。

次の解決策を使用してこの問題を解決できます。これにより、スペースを含むユーザー名のエイリアスが作成されます。

  1. Samba構成内に以下を配置して、ユーザー名マップを定義します。

    username map = /usr/local/private/usermap.txt
    
  2. 次のコンテンツを/usr/local/private/usermap.txtに追加します

    WINDOMAIN\simonwally = "WINDOMAIN\simon wally"
    WINDOMAIN\simonfolly = "WINDOMAIN\simon folly"
    

    これはエイリアスを作成するので、名前はスペースなしでユーザーになることができます

  3. 構成内の有効なユーザーセクションを次のように変更します。

    valid users = "WINDOMAIN\simonwally"
    

    以前に作成したマッピングのため、これはスペースを含むユーザーアカウントにマッピングされ、そのため、共有へのユーザーを受け入れます。

  4. Sambaの設定に誤りがないか確認します(常に変更後に推奨します)次のコードをbashなどの端末で実行します。

    testparm && echo "Syntax OK" || echo "Syntax Error"
    
  5. Sambaを再起動します。

    Sudo service smbd restart
    

参照1 :構成内でスペースを使用する方法を説明します。

参照2 :Samba構成に誤りがあるかどうかを確認するためのコード。

1
Ferrybig