samba入门笔记

这两天学习了下samba,感觉配置起来有一定难度(也难怪,自己笨),比vsftpd要复杂。熬了3天的夜,(白天还要去上课,听不懂,去都是数学,更郁闷的是贻叔的课),今天总算是有了初步的成效。记录一下,也算是个总结。
我的电脑上的samba是红旗6自带的samba3.0.5,配置文件为/etc/samba/smb.conf,用vi编辑
接下来就用我的配置文件说一下
首先是[global]字段
[global]
workgroup = workgroup   // workgroup用来指定你的机器在网络上所属的NT域名或组名
server string = Samba Server Version %v //server string 用来设置NT描述域,采用默认值就好
netbios name = smb-server  //除了主机名,另一个可以确认主机的东西,依然采用默认值
host allow = 127. 192.168.1. 192.168.2. //允许访问此服务器的主机所在的网段,按实际情况配置
guest account = wangge  //如果希望建立一个客户帐号,在此填入用户名,同时,你必须在                       /etc/passwd中加入这个帐号的定义,否则将使用用户"nobody"作为客户帐户。
log file = /var/log/samba/log.%m  //以每个登录用户为单位的日志文件
max log size = 50  //每个日志文件的大小设定为50K
security = user   //在此设置samba服务器的安全等级。默认为user登记。samba一共有4种安全等级:                   1 share级,共享安全级,用户不需要帐户和密码就可以登录samba服务器
                   2 user级 用户安全级 由提供服务的samba服务器检查用户帐号和密码
                   3 server级 服务器安全极 检查帐号和密码的工作可指定另一台samba服务器完成
                   4 domain 域安全级 需要指定一台Windows NT/2000/XP服务器验证用户密码
encrypt passwords = yes  //Linux为多用户操作系统,当采用用户级认证的时候,samba将使用linux操                         作系统的用户和密码, 如果用户想使用加密口令的话,需要此选项,具体方法                         后边详述
smb passwd file = /etc/samba/smbpasswd  //存放加密的密码文件的位置
domain master = no //domain Master将Samba服务器定义为主域浏览器。此选项将允许Samba在子
                      网列表中比较浏览。如您已经有一台Windows NT域控制器,不要使用此选项
                      用不到此选项,置no
domain logons = no  //用不到的选项,置no
load printers = no  //没有打印机,无须配置
dos charset = CP950 //和显示有关
unix charset = BIG5 //同上

[myshare]  //myshare字段
comment = wangge     //注释此共享给用户wangge
path = /var/samba    // 共享的目录的路径
browseable = yes      //可以浏览此目录
valid users = wangge  //可访问的用户
public = no          //匿名用户看不到
writable = yes        //可以写入,上传
create mask = 0777   //权限

以上就是我的smb.conf的全部有效内容,还有一些常用选项在下边给出解释
    interfaces   选择samba服务器使用的网络界面(如果有多块网卡时可以按实际配置),本机只有一                 块网卡,故忽略配置此项
    password server   如果安全级别为server或domain,使用此选项指定要验证密码的主机
    password level
    username level    上边两项用来设置当验证用户口令和帐号时最多允许几个大小写字母不同,默认                      为0
    max disk size   设置能够共享的最大磁盘空间 单位为MB 默认为0,表示无限制
    max open file   设置同一客户端最多能打开文件的数目

接下来为wangge设置密码,退出vi,以root登录
[root@localhost]#cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd
[root@localhost]#chmod 500 /etc/samba
[root@localhost]#chmod 600 /etc/samba/smbpasswd
接下来设置密码
[root@localhost]#smbpasswd wangge
New SMB passwored:
Retype SMB password:
如果系统提示
Password changed for user wangge
则表示密码设置成功

将上述配置保存后,可以用命令testparm检测一下有没有语法错误
[root@localhost samba]# testparm
Load smb config files from /etc/samba/smb.conf
Processing section "[myshare]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions

[global]
        dos charset = CP950
        unix charset = BIG5
        netbios name = SMB-SERVER
        server string = Samba Server Version %v
        smb passwd file = /etc/samba/smbpasswd
        guest account = wangge
        log file = /var/log/samba/log.%m
        max log size = 50
        load printers = No
        domain master = No
        hosts allow = 127., 192.168.1., 192.168.0., 172.17.

[myshare]
        comment = wangge
        path = /var/samba
        valid users = wangge
        read only = No
        create mask = 0777
检测通过,重启samba服务
[root@localhost samba]# service smb restart
关闭 SMB 服务:                                            [确定]
启动 SMB 服务:                                            [确定]
首先在本机上测试,第一部要列出服务器上的共享目录
[root@localhost samba]# smbclient -L localhost
Password:
Anonymous login successful
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.25-3]

        Sharename       Type      Comment
        ---------       ----      -------
        myshare         Disk      wangge
        IPC$            IPC       IPC Service (Samba Server Version 3.0.25-3)
Anonymous login successful
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.25-3]

        Server               Comment
        ---------            -------

        Workgroup            Master
        ---------            -------
使用下列命令以用户wangge登录,并在提示时输入密码
[root@localhost samba]# smbclient //127.0.0.1/myshare -U wangge
Password:
Domain=[SMB-SERVER] OS=[Unix] Server=[Samba 3.0.25-3]
smb: \>   
登录成功后出现提示符,即可操作,输入命令?,可得到内部命令集,内部命令的使用和ftp非常相似,在此不再详述。

试着下载
smb: \> get test /root/123
getting file \test of size 2 as /root/123 (20000.0 kb/s) (average inf kb/s)
smb: \>   
试着上传
smb: \> put /root/123 1234
NT_STATUS_ACCESS_DENIED opening remote file \1234
提示访问被拒绝,可见虽然我们在smb.conf中定义了可上传,那么问题出在哪里了呢?问题出现在了系统用户wangge与共享目录/var/samba的关系,/var/samba的所有者为root,而wangge只有读的权限,所以访问被拒绝(跟vsftpd中的权限问题很相像)。改变权限后,再次试着上传
smb: \> put /root/123 123
putting file /root/123 as \123 (20000.0 kb/s) (average inf kb/s)
smb: \>   
上传成功!

XP访问samba服务器的方法为
开始菜单->运行->\\192.168.1.3(填入服务器IP)->回车,在弹出的对话框中输入用户名和密码即可。

通过smbclient也可以访问windows的共享目录,
[root@localhost samba]# smbclient -L 192.168.1.4
Password:
Domain=[ACER-74DFA87541] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]

        Sharename       Type      Comment
        ---------       ----      -------
        E$              Disk      默_共享
        IPC$            IPC       _程 IPC
        D$              Disk      默_共享
        F$              Disk      默_共享
        music           Disk
        ADMIN$          Disk      _程管理
        C$              Disk      默_共享
session request to 192.168.1.4 failed (Called name not present)
session request to 192 failed (Called name not present)
Domain=[ACER-74DFA87541] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]

        Server               Comment
        ---------            -------

        Workgroup            Master
        ---------            -------
[root@localhost samba]# smbclient //192.168.1.4/music
Password:
Domain=[ACER-74DFA87541] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
smb: \>

以上就是我这几天的成果,菜鸟级的东西,各位哥哥们看完了,有什么错的地方,帮忙指正阿