Active Directory 統合が winbind および samba で正しく動作しない

Active Directory 統合が winbind および samba で正しく動作しない

Linux ボックスで Active Directory 認証を使用できるようにしようとしています。ほぼすべて正しく設定されていると思います。すべてのグループとユーザーをそれぞれ 発行wbinfo -gおよび表示できます。wbinfo -u

私のセットアップの簡単な紹介:

Linux ボックスで管理作業を行うために使用するユーザー名は ですnick。Active Directory のユーザー名は ですnwalke。これらには 2 つの異なるパスワードがあります。 とそのユーザーのパスワードを使用してボックスにログインできます。また、のパスワード を使用してnickとしてログインすることもできます。nwalkenwalke

興味深い点:

Active Directory ユーザーのホーム ディレクトリを作成すると、ルート アクセスを必要とするスクリプトを実行します。これは、それらのユーザーの samba 共有などのシステム全体の設定を行うためです。 としてログインしnwalke、パスワードを入力するnwalkeと成功します。次に が表示されます。ここで[sudo] password for nick:自分のパスワードを入力すると、 と表示されます。のパスワードを入力すると、 と表示されます。 nwalkeSorry, try again.nickSorry, user nick is not allowed to execute scriptname as root

groupsを実行するとnwalke、ユーザーにグループ が魔法のように付与されていることがわかりますnick

さて、私は誤って のnickUID が 1000 ではなく 100 であると考えていました。そのため、元々 ではsmb.confでしたidmap uid 1000-10000。考えられる唯一の原因は、 がnwalkeまだ設定されている間に でログインしたため、UID が 1000 と表示され、Linux に であると思わせているということですnick

ここからどうしたらいいのかよくわかりません。前に言ったように、Active Directory がサーバーと適切に通信していることはほぼ確実ですが、Linux 側で何かが正しくマッピングされていないようです。

何かご意見は?

これが私のですsmb.conf:

[global]
    security = ads
    netbios name = hostname
    realm = COMPANY.COM
    password server = adshost.company.com
    workgroup = COMPANY
    idmap uid = 10000-90000
    idmap gid = 10000-90000
    winbind separator = +
    winbind enum users = no
    winbind enum groups = no
    winbind use default domain = yes
    template homedir = /home/%D/%U
    template shell = /bin/bash
    client use spnego = yes
    domain master = no
    load printers = no
    printing = bsd
    printcap name = /dev/null
    disable spoolss = yes

何らかの方法で Linux ボックス上のユーザーにバインドする必要がありますか?

答え1

UID が重複しているようです。と が同じ数値 UID を共有している
場合、 、、などに対して最初の nsswitch 一致が優先されます ( または同等の で順序を変更していない限り、最初の一致は通常、passwd ファイル外です)。nwalkenickidsudols/etc/nsswitch.conf

(ログインはどちらの名前でも機能します。ログインは名前でユーザーを検索するためです。ただし、同じ名前のユーザーが 2 人いると、興味深い混乱が生じます...)

ローカル ( /etc/passwd/etc/group) とリモート (NIS、Samba、LDAP など) の UID/GID は重複してはいけません。この根本的な問題を修正すれば、残りは自然に解決されます。

答え2

smb.conf の値を 10,000 に変更しましたが、nwalke がまだ 1000 とペアになっているように感じます。どうすれば解決できますか?

どのファイルか思い出せませんし、現在確認するシステムもありません。

ユーザーが最初に接続するときに ID が割り当てられ、その ID が Samba データベースの 1 つに保存されます。/var/lib/samba/ そのフォルダーを見れば、どのファイルかは明らかです。Samba を停止して、そこにあるすべてのファイルを移動または削除してみることもできますが、マシン アカウントの資格情報もこれらのデータベースの 1 つに保存されているため、ドメインに再度参加する必要があります。

関連情報