实验环境

CentOS 6.5

IPADDR=192.168.1.229


yum -y install samba

配置文件

vim /etc/samba/smb.conf


[global] 全局参数

 workgroup = WORKGROUP                          #工作组

 server string = Samba Server Version By Ltiaw  #显示名称

 netbios name = FILESERVER                      #windows工作组显示的主机名

 log file = /var/log/samba/log.%m               #日志记录

 max log size = 50                              #日志大小限制 0表示不限


 security = user                                #认证模式user 用户认证,share共享不认证

 passdb backend = tdbsam                        #用户密码数据


建立目录

[共享目录]                                      #目录名称

        comment = sharedir                      #描述

        path = /company/gshare                  #路径

        browseable = yes                        #是否允许浏览=yes

        public = yes                            #是否共公=yes

        writable = yes                          #可写?=yes

        create mask = 0755                      #文件创建的默认权限

        directory mask = 0755                   #目录创建的默认权限

保存退出

启动服务

/etc/init.d/smb restart

开放端口:

udp137

udp138

tcp139

tcp445

iptables -I INPUT -p udp --dport 137:138 -j ACCEPT

iptables -I INPUT -p tcp --dport 139 -j ACCEPT

iptables -I INPUT -p tcp --dport 445 -j ACCEPT


创建用户

[root@yscoo ~]# useradd -s /sbin/nologin bob   #创建bob不允许登录

[root@yscoo ~]# pdbedit -a bob                 #用pdbedit命令创建smb用户

new password:

retype new password:

Unix username:        bob

NT username:          

Account Flags:        [U          ]

User SID:             S-1-5-21-2341977322-3935453642-2240024245-1001

Primary Group SID:    S-1-5-21-2341977322-3935453642-2240024245-513

Full Name:            

Home Directory:       \\fileserver\bob

HomeDir Drive:        

Logon Script:         

Profile Path:         \\fileserver\bob\profile

Domain:               FILESERVER

Account desc:         

Workstations:         

Munged dial:          

Logon time:           0

Logoff time:          三, 06 2月 2036 23:06:39 CST

Kickoff time:         三, 06 2月 2036 23:06:39 CST

Password last set:    三, 30 3月 2016 10:45:31 CST

Password can change:  三, 30 3月 2016 10:45:31 CST

Password must change: never

Last bad password   : 0

Bad password count  : 0

Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF


创建目录:

mkdir -p /company/gshare/

查看权限

ll /company/gshare/

drwxr-xr-x. 2 root root 4096 3月  30 10:41 gshare

chmod o+w /company/gshare/       #这个是共用目录所有把其它人的权限加上w


################测试##########################

windows上访问共享

\\192.168.1.229

提示访问不了,没权限

可能是selinux的问题

ll -dZ /company/  #查看目录selinux文

更改

chcon -R -t samba_share_t /company/gshare/

访问

\\192.168.1.229

访问成功输入用户密码登录

看到共享目录了

创建删除写入

基本的samba搭建成功了

加入开机启动

chkconfig smb on

chkconfig nmb on  #能让工作组里查找到samba的服务


##################其他功能###############################

1.如果想不用输入密码就能进入共享,允许區名用户操作

[global]

security = share      #改为share

保存重启

/etc/init.d/smb restart

\\192.168.1.229

成功访问

新建文件:1.txt

在服务器上ll 1.txt查看。发现1.txt owner和组都是映射为: nobody 

/company/gshare 权限刚才已经把o权限提升为7了,所以操作起来没问题!


2.允许區名用户操作的同时也设置进入别的文件夹需要验证!

[global]

security = user   #启用验证

passdb backend = tdbsam

map to guest = bad user  #增加这两行,使在user模式下,也可以允许區名操作

guest account = nobody   #设置區名用nobody


定义文件夹

[bob]

        comment = bob

        path = /company/bob

        browseable = yes

        public = no             #不公用

        writable = no           #不能写

        write list = bob        #写用户列表

        admin user = bob        #拥有者

保存重载服务

/etc/init.d/smb reload


创建文件夹

mkdir /company/bob/

更改拥有者

chown bob.bob bob


windows访问 \\192.168.1.229

 打开看到共享目录和bob,能够进入共享目录,点bob提示要输入密码.成功

具体权限可以自己设置


3.给samba创建回收站


[bob]

        comment = bob

        path = /company/bob

        browseable = yes

        public = no             

        writable = no           

        write list = bob        

        admin user = bob       

                 vfs object = recycle                   #启用回收站模块

                        recycle:repository = 回收站/     #目录名

                        recycle:keeptree = yes            #保持文件目录树

                        recycle:versions = yes            #当同名时,用copy #1 of 区别

                        recycle:maxsixe = 0                #无限大小

                        recycle:exclude = *.tmp,*.TMP,~$*  #例外文件,不保存到回收站

在bob下删除1.txt,自动生成了回收站目录,并且1.txt已经在目录里了,

测试成功


4.samba不加载打印机的设置

就算使用上成功了,但是cat /var/log/message 还是发现有如下错误。是关于打印机的。


[2016/03/30 10:06:17.767580,  0] printing/print_cups.c:151(cups_connect)

Mar 30 10:06:17 yscoo smbd[15046]:   Unable to connect to CUPS server localhost:631 - 拒绝连接

Mar 30 10:06:17 yscoo smbd[26784]: [2016/03/30 10:06:17.768023,  0] printing/print_cups.c:528(cups_async_callback)

Mar 30 10:06:17 yscoo smbd[26784]:   failed to retrieve printer list: NT_STATUS_UNSUCCESSFUL


修改打印设置


 load printers = no  

;cups options = raw                  #注释这行          

 printcap name = /dev/null

 printing = cups

 disable spoolss = yes                #不显示打印机


保存

/etc/init.d/smb reload

查看日志没提示错误了

windows访问也看不见打印机和传真了