samba的share模式

2017-06-13 18:06:01 5926

share模式
# vim /etc/samba/smb.conf 

[global]
        workgroup = MYGROUP
        server string = li.cluster.com %v --把标识名改一下,方便在windows里mygroup组里查找到它
        security = share	--在这里把user改为share
        passdb backend = tdbsam
        load printers = yes
        cups options = raw
[homes]
        comment = Home Directories
        browseable = no
        writable = yes
[printers]
        comment = All Printers
        path = /var/spool/samba
        browseable = no
        guest ok = no
        writable = no
        printable = yes
[test]		--新定义了一个共享的资源,共享名为test
    comment = public for everyone
    path = /test	--实际共享的资源目录名
    guest ok = yes	--表示可以匿名登录
    browseable = yes


 /etc/init.d/smb reload		--重装载smb服务

# rm -rf /test
# mkdir /test   --创建此目录



客户端测试
# smbclient -L //10.2.2.200	--使用匿名用户查看共享资源列表
Password: 
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.0.33-3.14.el5]

        testname       Type      Comment
        ---------       ----      -------
        test           Disk      public for everyone  --可以看到这个新的共享资源


# smbclient //10.2.2.200/test --使用匿名用户登录共享资源名为test
Password: 
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.0.33-3.14.el5]
Server not using user level security and no password supplied.
smb: \> put install.log		--匿名用户上传失败
NT_STATUS_ACCESS_DENIED opening remote file \install.log
smb: \> rm rc.local		--也不能删除
NT_STATUS_MEDIA_WRITE_PROTECTED deleting remote file \rc.local

--也就是说匿名用户(包括普通用户,但现在是share模式,所有普通现在不能登录)对这个新建的共享资源只能下载



share模式下匿名用户可写

修改配置文件:
[test]
    comment = public for everyone
    path = /test
    guest ok = yes
    browseable = yes
    writeable = yes	--加上这一句,表示可写

/etc/init.d/smb reload

再次上传,还是发现失败

原因:匿名用户登录的时候,samba是使用nobody的身份去操作的,而共享的/test目录权限属性如下,nobody用户是不能写的
# ll -d /test
drwxr-xr-x 5 root root 4096 Aug 17 16:27 /test/

修改/test的目录权限,允许nobody用户可写
	chmod 757 /test

# smbclient //10.2.2.200/test 
Password: 
smb: \> put install.log		--再次上传成功  
putting file install.log as \install.log (2486.3 kb/s) (average 2486.3 kb/s)
smb: \> rename install.log  install  --也可以改名
smb: \> rm install.log  --也可以删除

总结一下可以得出

如果是share模式,那么smbpasswd -a加入的所有普通用户都无法用了(自己的家目录和共享的目录都登录不了)
	browseable控制匿名用户客户端是否可见资源
	public和guest ok控制匿名用户是否可以登录资源
	writeable控制服务是否允许所有人(包括匿名用户)可写
	匿名用户以nobody的身份上传,普通用户以自己用户名的身份上传
	所以服务writeable=yes,还需要共享的目录在系统级别有W权限才可以上传


--无论是什么服务,客户端访问一般都需要经过下面的过程

客户端程序 --> iptables -->pam (控制客户是否可以登录)--> selinux (程序的域是否能访问文件或目录的类型) --> 服务参数是否允许 --》系统权限rwx-->服务程序


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: