Samba服务器初步

来源:百度文库 编辑:神马文学网 时间:2024/05/05 13:47:06
根据BLFS安装,学习源码包中的docs/htdocs/samba_howto_collection/install.html文档,很好的文档
cd source &&
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --with-piddir=/var/run --with-fhs --with-smbmount --with-pam
其实重点的还是配置问题,也就是熟悉smb.conf的语法
Samba的配置可以分为三部分:全局部分(由[global]标识)、打印机部分(由[printers]标识)和共享部分(由[homes]标识和自己设定的其他标识)。
Global全局参数,打印机部分共享打印机,其他共享配置特殊共享,homes配置本地用户的目录加入共享
启动smb需要三个daemon:
nmbd:处理所有名字相关的注册和解析的请求,用于网络浏览和UDP相关的,是第一个必须启动的服务
smbd:处理文件和打印相关的TCP/IP协议的连接请求,管理本地认证,是第二个要启动的服务
Winbindd:当Samba是WindowsNT域里面的成员时必须启动,跟其他域打交道,主要是检查smb.conf中的idmap uid and idmap gid 参数的设置
设置好conf后,要测试
testparm /etc/samba/smb.conf
可以装个SWAT来通过Web管理Samba
smbclient -L yourhostname     查看相应主机上的共享信息
通过smbpasswd 来管理可以访问的用户,当然这些用户必须要已经在/etc/passwd了
smbpasswd的命令格式如下:
smbpasswd 参数 用户
具体参数见下表:
变量 含 义 举例
-a 添加用户 #smbpasswd -a syd1
-x 删除用户 #smbpasswd -x syd168
-d 禁用帐号 #smbpasswd -d guest
-e 取消禁用 #smbpasswd -e guest
-n 清除密码 #smbpasswd -a syd1
关于安全级别:
security = security_level
定义Samba的安全级别,按从低到高分为四级:share,user,server,domain。它们对应的验证方式:
share:任何用户无需用户名和口令即可访问服务器上的资源。
user:samba的默认配置,在访问共享资源之前必须通过本地用户验证。
Server:验证是通过另一台服务器进行的,如果失败,就退到user级。
domain:验证通过网络上的Windows的主域控制器进行。
后面三种安全级都要求“用户”在提供共享的Linux主机上要有帐户。
试验:
简单设置
[global]
workgroup = MYGROUP
dos charset = cp850
unix charset = ANSI_X3.4-1968
其中ANSI_X3.4-1968是通过  locale charmap命令得来
拷贝blfs中的启动脚本samba,然后启动
smbclient -L 127.0.0.1   密码时回车,匿名访问成功
再访问我windows,匿名,登陆成功,但浏览失败,说要name,我用 -U myname,输入密码,反而session setup failed: NT_STATUS_LOGON_FAILURE,其实我是匿名成功了
再根据文章http://www.linuxsir.org/bbs/showthread.php?t=269418玩玩,还不错
当我设置了普通共享时和homes共享时,通过匿名登陆就不会看到用户的主目录共享信息
设置自己windows的共享目录
使用smbclient //ip/c$,说是可以象ftp一样的,我的不行,但用其他人的确实可以
用smbmount时提示
ERROR: smbfs filesystem not supported by the kernel
Please refer to the smbmnt(8) manual page
看来得重新编译内核了,郁闷了
玩SWAT了,得先装stunnel
在设置/etc/xinetd.d/swat_stuell中的only from时,要加上 本机windows的ip,以127.0.0.1 ip的形式
设好后,通过https://ip.253:901访问,很慢,用户名密码我不知道用哪个,试了好些都不行
根据上面超级服务器里设置的应该是用root用户啊,