fro*_*h42 3 active-directory network-share samba windows-server-2003-r2
我已经设置了一个似乎可以工作的 samba 服务器,但是所有共享似乎都以只读方式导出。这台机器被称为“lx”。当我在 lx 上时,我可以运行以下命令:
froh@lx:~$ smbclient //lx/export -UAdministrator
Enter Administrator's password:
Domain=[CUSTOMER] OS=[Unix] Server=[Samba 3.5.4]
smb: \> mkdir wrzlbrmpf
NT_STATUS_MEDIA_WRITE_PROTECTED making remote directory \wrzlbrmpf
smb: \> ls
. D 0 Fri Dec 3 19:04:20 2010
.. D 0 Sun Nov 28 01:32:37 2010
zork D 0 Fri Dec 3 18:53:33 2010
bar D 0 Sun Nov 28 23:52:43 2010
ork 1 Fri Dec 3 18:53:02 2010
foo 1 Sun Nov 28 23:52:41 2010
gaga D 0 Fri Dec 3 19:04:20 2010
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
我做了什么:
首先,我设置了全新安装的 Ubuntu 10.10 x64。
其次,我让 kerberos 使用以下 krb5.conf 文件:
[libdefaults]
ticket_lifetime = 24000
clock_skew = 300
default_realm = CUSTOMER.LOCAL
[realms]
CUSTOMER.LOCAL = {
kdc = SB4.customer.local:88
admin_server = SB4.customer.local:464
default_domain = CUSTOMER.LOCAL
}
[domain_realm]
.customer.local = CUSTOMER.LOCAL
customer.local = CUSTOMER.LOCAL
#[login]
# krb4_convert = true
# krb4_get_tickets = false
Run Code Online (Sandbox Code Playgroud)
我还在 nsswitch.conf 中将 winbind 添加到 group、passwd 和 shadow。
看似 Kerberos 有效:
root@lx:~# net ads testjoin Join is OK root@lx:~# wbinfo -a 'Administrator%MYSECRETPASSWORD' 明文密码认证成功 挑战/响应密码认证成功
wbinfo -u 和 wbinfo -g 还分别输出用户列表和组列表。我注意到域帐户不包括域并且它们是德语的(如在作为域服务器的 SBS 2003 上)。所以我在 wbinfo -u 的输出中得到一个“Domänenbenutzer”,而不是“CUSTOMER+Domain User”或类似的东西。
我不再确定我对 PAM 配置做了什么,但这是我目前拥有的:
root@lx:/etc/pam.d# cat samba
@include common-auth
@include common-account
@include common-session-noninteractive
root@lx:/etc/pam.d# grep -ve '^#' common-auth
auth [success=3 default=ignore] pam_krb5.so minimum_uid=1000
auth [success=2 default=ignore] pam_unix.so nullok_secure try_first_pass
auth [success=1 default=ignore] pam_winbind.so krb5_auth krb5_ccache_type=FILE cached_login try_first_pass
auth requisite pam_deny.so
auth required pam_permit.so
root@lx:/etc/pam.d# grep -ve '^#' common-account
account [success=2 new_authtok_reqd=done default=ignore] pam_unix.so
account [success=1 new_authtok_reqd=done default=ignore] pam_winbind.so
account requisite pam_deny.so
account required pam_permit.so
account required pam_krb5.so minimum_uid=1000
root@lx:/etc/pam.d# grep -ve '^#' common-session-noninteractive
session [default=1] pam_permit.so
session requisite pam_deny.so
session required pam_permit.so
session optional pam_krb5.so minimum_uid=1000
session required pam_unix.so
session optional pam_winbind.so
Run Code Online (Sandbox Code Playgroud)
在某些时候,我将 linux box 加入了 AD 域。
在(手动)在 linux 机器上创建主目录后,我可以使用管理员用户使用从 AD 获取的密码登录。
现在我使用以下设置运行 samba:
[global]
netbios name = LX
realm = CUSTOMER.LOCAL
workgroup = CUSTOMER
security = ADS
encrypt passwords = yes
password server = 192.168.20.244 #IP des Domain Controllers
os level = 0
socket options = TCP_NODELAY SO_RCVBUF=16384 SO_SNDBUF=16384
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind enum users = Yes
winbind enum groups = Yes
preferred master = no
winbind separator = +
dns proxy = no
wins proxy = no
# client NTLMv2 auth = Yes
log level = 2
logfile = /var/log/samba/log.smbd.%U
template homedir = /home/%U
template shell = /bin/bash
[export]
path = /mnt/sdc1/export
read only = No
public = Yes
Run Code Online (Sandbox Code Playgroud)
目前我不在乎导出是导出给每个人还是只导出给一个用户,我想在我开始摆弄身份验证设置之前看到有人写入该目录。(谁可以访问它)。
如前所述,从 smbclient 访问共享会导致此 NT_STATUS_MEDIA_WRITE_PROTECTED 。
从 Windows 访问它会显示看起来正确的 ACL(用户可能会写) - 但它不起作用,我只能读取文件而不能写入。
要导出的目录如下所示:
root@lx:/etc/pam.d# ls -ld /mnt/
drwxr-xr-x 5 root root 4096 2010-11-28 01:29 /mnt/
root@lx:/etc/pam.d# ls -ld /mnt/sdc1/
drwxr-xr-x 4 froh froh 4096 2010-11-28 01:32 /mnt/sdc1/
root@lx:/etc/pam.d# ls -ld /mnt/sdc1/export/
drwxrwxrwx+ 5 administrator domänen-admins 4096 2010-12-03 19:04 /mnt/sdc1/export/
root@lx:/etc/pam.d# getfacl /mnt/
getfacl: Entferne führende '/' von absoluten Pfadnamen
# file: mnt/
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
root@lx:/etc/pam.d# getfacl /mnt/sdc1/
getfacl: Entferne führende '/' von absoluten Pfadnamen
# file: mnt/sdc1/
# owner: froh
# group: froh
user::rwx
group::r-x
other::r-x
root@lx:/etc/pam.d# getfacl /mnt/sdc1/export/
getfacl: Entferne führende '/' von absoluten Pfadnamen
# file: mnt/sdc1/export/
# owner: administrator
# group: domänen-admins
user::rwx
group::rwx
group:domänen-admins:rwx
mask::rwx
other::rwx
default:user::rwx
default:group::rwx
default:group:domänen-admins:rwx
default:mask::rwx
default:other::rwx
Run Code Online (Sandbox Code Playgroud)
我的,哦,我在俯瞰什么?我有什么资格瞎看?
小智 10
我刚刚花了大量时间以类似的方式调试我的服务器,并最终意识到共享和共享目录不能具有相同的名称。
我不知道为什么。我希望其他人在他们的过程中比我更早地发现了这一点。
| 归档时间: |
|
| 查看次数: |
7620 次 |
| 最近记录: |