web-dev-qa-db-ja.com

与えられたユーザー名の代わりに「誰も」としてsamba共有に接続している特定のWindowsユーザー?

Nullパスワードとホームディレクトリ共有を使用してsambaを実行しているUbuntu9.04サーバーがあり、対応するユーザーがWindowsマシンにその共有をマウントしています。基本的に、各ユーザーはサーバー上にアカウント(Windowsマシンと同じユーザー名)を持ち、/ home/USERNAMEにホームディレクトリを持ち、ローカルマシンに\\SAMBABOX\USERNAMEこれからフルアクセスできます。

ほとんどのユーザーにとって、これは問題なく機能します。共有上のファイルを問題なく読み取り、書き込み、作成、および削除できます。以下は、sambaログに見られるような初期接続の1つです。

[2009/12/02 10:30:22,  1] smbd/service.c:make_connection_snum(1115)
  somewindowsbox (192.168.2.123) connect to service ekaufman initially as user ekaufman (uid=1002, gid=1002) (pid 22574)

ただし、特に1人のユーザーの場合、特定のファイル(SVN作業コピーのファイルをロックする)を作成することはできません(少なくとも)。これは、ADドメイン内の任意のWindowsマシンからのものです。彼らのsambaログを見ると、彼らの最初の接続はユーザーnobodyとして行われており、私は一生その理由を理解できません。

[2009/11/18 10:19:32,  1] smbd/service.c:make_connection_snum(1115)
  somewindowsbox (192.168.2.123) connect to service jdoe initially as user nobody (uid=65534, gid=65534) (pid 15570)

/ etc/passwdに示すように、ubuntuサーバー上のユーザーアカウントは他のアカウントとほぼ同じです。

ekaufman:x:1002:1002:,,,:/home/ekaufman:/bin/bash
jdoe:x:1015:1015:,,,:/home/jdoe:/bin/bash

そして/ etc/group

ekaufman:x:1002:
jdoe:x:1015:

そして/ etc/shadow(もちろん、ここに投稿される前にパスワードハッシュが削除されています):

ekaufman:!:14580:0:99999:7:::
jdoe:!:14572:0:99999:7:::

私はubuntuボックスで彼らのアカウントを削除して再作成しましたが、変更はありません。 ADドメインコントローラーの管理者によると、彼らのアカウントは他のすべてのアカウントとほぼ同じです(アカウントの削除と再作成は非常に複雑になります)。

Windowsマシンから自分のアカウントの共有を手動でマウントし、ユーザー名を強制すると、問題なく機能します。

C:\> Net Use z: \\sambabox.local\ekaufman /user:ekaufman
The command was completed successfully

この特定のユーザーに対して同じことを行った場合でも、nobodyとして接続し、サイレントに失敗します。

C:\> Net Use z: \\sambabox.local\jdoe  /user:jdoe
The command was completed successfully

これは、問題が何であれ、それはLinux側にあるという印象を私に与えます。

これは、使用中のsmb構成全体です。

[global]
   null passwords = yes
   guest ok = yes
   security = user
   workgroup = WORKGROUP
   server string = %h server (Samba, Ubuntu)
   dns proxy = no
   log file = /var/log/samba/log.%m
   max log size = 1000
   syslog = 0
   panic action = /usr/share/samba/panic-action %d
   encrypt passwords = true
   passdb backend = tdbsam
   obey pam restrictions = yes
   unix password sync = yes
   passwd program = /usr/bin/passwd %u
   passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
   pam password change = yes
   map to guest = bad user
   usershare allow guests = yes

[homes]
   comment = Home Directories
   browseable = no
   read only = no

[printers]
   comment = All Printers
   browseable = no
   path = /var/spool/samba
   printable = yes
   guest ok = no
   read only = yes
   create mask = 0700

[print$]
   comment = Printer Drivers
   path = /var/lib/samba/printers
   browseable = yes
   read only = yes
   guest ok = no
2
EvanK

結局のところ、答えは一見単純でした。 Linuxマシンでアカウントを必要とするユーザーに加えて、それらもsmbpasswdファイルに追加する必要がありました。 さらに、接続はnullパスワードで行われているため、nullパスワードを使用してファイルに追加する必要があります。

# -a flag adds the new user (must already exist in /etc/passwd)
# -n flag indicates a null password (different from an empty password)
smbpasswd -an jdoe
0
EvanK

エラーは、以前にNISユーザー名をA.D.アカウントに関連付けるために使用したusers.mapのユーザー名マッピングであることがわかりました。すべてのNISをA.D.ServicesForUNIX NISに切り替えた後、これらの古いユーザー名マッピングを削除するのを忘れていました。

1
Rick Roepke

私のシステムには、「sambashare」というグループがあります。 jdoeが(他のすべての人と一緒に)メンバーであるかどうかを確認します。

0