架设平台:CentOS 6

一、安装Samba

      由于我所处的环境上外网是需要通过代理的,所以要在yum里面设置下代理地址:  vi  /etc/yum.conf     添加一条 proxy=http://代理地址:端口,OK!

       #yum -y install samba   /通过yum来在线安装samba

二、配置防火墙

       vi /etc/sysconfig/iptables

       找到:-A INPUT -m state --state NEW -m tcp -p --dport 22 -j ACCEPT 在这行后面   添加:      

                   -A INPUT -m state --state NEW -m tcp -p --dport  139 -j ACCEPT            

                   -A INPUT -m state --state NEW -m tcp -p --dport  445 -j ACCEPT

                   -A INPUT -p udp -m udp --dport 137 -j ACCEPT

                   -A INPUT -p udp -m udp --dport 138 -j ACCEPT    保存退出。

重启防火墙:/etc/rc.d/init.d/iptables restart

三、配置Samba文件

      vi  /etc/samba/smb.conf

      ================= Global   Settings====================
[global] //设置samba服务整体环境
workgroup = hackase //设置工作组名
server string = angel server //服务器的名说明
; hosts allow = 192.168.1. 192.168.2. 127. //限制可访问此服务的IP范围,默认是全部
允许的,要是想设设置去掉前面的";"
printcap name = /etc/printcap //打印机配置文件
load printers = yes //是否共享打印机
# bsd, sysv, plp, lprng, aix, hpux, qnx, cups
printing = cups //打印机的类型.标准打印机类型包括以上几种.
; guest account = pcguest //pcguest为用户名.可改去掉前边的";"让用户以
pcguest身份匿名登录,但保证/etc/passwd中有此人.
log file = /var/log/samba/%m.log //为登录服务器的用户建立不同的日志文件.
max log size = 0 //日志文件的大小,"0"代表无限制
//以下是smb.conf文件对服务器安全级别的设置
security = SHARE //安全性的级别共四种.share、user、server、domain
; password server = 密码验证服务器.
; password level = 8 //密码级别
; username level = 8
encrypt passwords = yes //用户密码加密,当然也可以不加密
smb passwd file = /etc/samba/smbpasswd //将密码服务器设置为samba server.
需要这个东东来指定验证文件.这个是文件的路径,如果samba server是指定的win
server这个不须要
; ssl CA certFile = /usr/share/ssl/certs/ca-bundle.crt
unix password sync = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *New*password* %n\n *Retype*new*password* %n\n
*passwd:*all*authentication*tokens*updated*successfully*
pam password change = yes
; username map = /etc/samba/smbusers //如果每个windows用户在samba服务器
中有帐户这个可以不设

#============= Share Definitions ====================
[homes] //用户访问自已目录的设置
comment = Home Directories //说明(以下同理)
browseable = no//设定目录可不可以别人浏览
writeable = yes//用户写入自己的权限
valid users = %S
create mode = 0664      指明建立文件的属性
directory mode = 0775  指明建立目录的属性       


; [netlogon] //此段域用户登录目录设置
; comment = Network Logon Service
; path = /usr/local/samba/lib/netlogon
; guest ok = yes
; writable = no
; share modes = no

;[Profiles]
; path = /usr/local/samba/profiles
; browseable = no
; guest ok = yes

[printers] //打印机设置
comment = All Printers
path = /var/spool/samba
browseable = no

printable = yes

;[tmp] //用户共享资源设置
; comment = Temporary file space
; path = /tmp //可以自定义目录,去掉前边的";"就OK了
; read only = no //是否只读或可写
; public = yes

;[public] //用户共享资源设置
; comment = Public Stuff
; path = /home/samba
; public = yes
; writable = yes
; printable = no
; write list = @staff


;[fredsprn]
; comment = Fred's Printer
; valid users = fred
; path = /home/fred
; printer = freds_printer
; public = no
; writable = no
; printable = yes

;[fredsdir]
; comment = Fred's Service
; path = /usr/somewhere/private
; valid users = fred
; public = no
; writable = yes
; printable = no

;[pchome]
; comment = PC Directories
; path = /usr/local/pc/%m
; public = no
; writable = yes

;[public]
; path = /usr/somewhere/else/public
; public = yes
; only guest = yes
; writable = yes
; printable = no

;[myshare]
; comment = Mary's and Fred's stuff
; path = /usr/somewhere/shared
; valid users = mary fred
; public = no
; writable = yes
; printable = no
; create mask = 0765

[my work] //偶的东东
comment = is me work
path = /root/my work  //指明共享文件的路径
public = yes
writeable =  yes  
valid users =  test,@all  //指明能使用共享的用户与组  

了解smb.conf的文件就好办了.我们开始对samba server的四个安全级别分别讲解.

1、share级配置

这个在四个等级中是最低的,方法也是最简单.我们只要对smb.conf文件修改一下就可以了.

workgroup = hackase
server string = angel server
hosts allow = 192.168.1. //限制192.168.1的IP网段可以防问
printcap name = /etc/printcap
load printers = yes //共享打印机
printing = cups //打印机用linux标准的
guest account = angel
log file = /var/log/samba/%m.log
max log size = 20
security = share
===================================================================
其他的设置默认就可以了,也可以像我把所有的注释删除.[tmp]这个字段的";"去掉.
路径可以更改. 重启一下服务 /etc/samba/smb restart //

service smb restart 也可

用testparm测试我们配置的文件是否正确:
===================================================================
[root@localhost root]# testparm //测试时[printers]注释掉了所以这里没有.
Load smb config files from /etc/samba/smb.conf
Processing section "[homes]"
Processing section "[tmp]"
Processing section "[my]"
Loaded services file OK. //如有错误,会在这列出错误的地方.
Press enter to see a dump of your service definitions
 

2、user级配置

user比share级安全级别高一点点,很简单的,可以在share基础上改一下就可以了.
改一下security = share字段为:security = user.在加上如下字段:
guest account = angel //机器上有这个用户名,如果你没有那就建一个吧!
encrypt passwords=yes
smb passwd file=/etc/samba/smbpasswd
(1)生成口令文件.

#cat/etc/passwd | mksmbpasswd.sh>/etc/samba/smbpasswd

本命令将生成口令文件"/etc/samba/smbpasswd" 这个就是我们
刚加上的"smb passwd file=/etc/samba/smbpasswd"
(2)我们知道建账户是建在etc/passwd文件里,我们须要用smbpasswd命令
为刚才建立的账名设置samba server口令. 格式为:smbpasswd angel

(3)重启samba server服务

user级的也OK了,你可以用testparm and smbclient命测试.windows用户想
访问就要输入angel and passwd.这个就不是谁都可以访问你的共享
资源了.

3、server 级配置
server级比user级也高那么一点,只需要user级配置上修改一下就OK了.

(1)security = user字段为:security = server

(2)加上password server = ****** //密码服务器,这个可以是你的windows主域控制器,也
可以是别一个samba server服务器(名字无意思)

(3)注释smb passwd file=/etc/samba/smbpasswd

(4)重启samba server服务,你可以用testparm and smbclient命测试.

好了,又完事一个现在如果一台windows机器登录******(password server =
******设置的)域服务器的时候,也就同登录上了samba server,如果你以是*****主控域的计算机,那你就可以输入你自己的账号密码打开samba server的文件了,
但是你要保证*****和sambs server的账号和密码相同.

4、domain级的配置
domain级的配置是samba server中级别最高的他主要就是把samba加入到域中去,
用域服务器作samba server的密码服务器.
其实domain级的配置也很简单,只需要在user级的基础上修改:

(1)加入字段:NETBLOS = main //起一个NETBLOS名,放在smb.conf文件的最上边
password server = ** //用主域控制器**来做密码服务器
(2)security = user字段为:security = domain
workgroup = ***** //*****是主域控制器的域名
(3)注释smb passwd file=/etc/samba/smbpasswd
(4)重启samba server服务,你可以用testparm and smbclient命测试.
 

四、创建Samba账户

        #smbpasswd -a caiwu   //必须保证在系统中存在caiwu这个账户

       要想用户没有登录Linux系统的权限,vi  /etc/passwd,只需在相应的用户行的“:”后面的路径改为:/sbin/nologin

五、创建共享目录

       #mkdir /opt/all

      #cd /opt/all

      #mkdir CaiWu RenShi

      #ls

      #chown -R  caiwu.all  /opt/all/caiwu   //设置该目录属于caiwu账户所有,属于all组

     #chmod 775 /opt/all/caiwu             //设置该目录的权限,任何人可读,文件目录所有者可读写运行。

     重启smb服务即可#service smb restart

     (如果出现不能访问的话,执行#vi /etc/selinux/config,找到 SELINUX这行,将其后面的值改为 disabled,重启系统,OK!)