Samba文件服务器详细配置步骤
准备安装
环境:CentOS 6.3_x64bit
安装:Minimal(最小)
1、配置IP地址
2、挂载:[root@localhost ~]# mount -t iso9660 /dev/cdrom /etc/mnt
3、安装YUM
4、查看Samba软件包
[root@localhost ~]# rpm -qa | grep samba*
package samba-3.0.33-3.7.el5.i386.rpm is not installed //samba服务器的所有文件
package samba-client-3.0.33-3.7.el5.i386.rpm is not installed //samba客户机的所有文件
package samba-common-3.0.33-3.7.el5.i386.rpm is not installed //服务器和客户机都需要的公共文件夹
package samba-swat-3.0.33-3.7.el5.i386.rpm is not installed //redhat公司为图形界面编辑的文件
安装 Samba(方法一)#yum install samba (推荐使用)
安装 Samba(方法二)使用RPM包安装
#rpm -ivh samba-3.0.33-3.7.el5.i386.rpm //samba服务器安装的所有文件
#rpm -ivh samba-client-3.0.33-3.7.el5.i386.rpm //samba客户机安装的所有文件
5、创建共享文件夹:#mkdir /data/share/public caiwu yanfa jishu
#chmod 777 public caiwu yanfa jishu
6、创建三个用户组:
#groupadd caiwu yangfa jishi
创建用户:(添加到相应的组里)
#useradd user1 -g caiwu
#smbpasswd -a user1
小提示:
smbpasswd -a 添加 user
-x 删除
-e 启用
-d 禁用
7、备份Samba 配置文件
备份:cp /etc/samba/smb.conf /etc/samba/smb.confbak
恢复:cp /etc/samba/smb.confbak /etc/samba/smb.conf
8、配置vi /etc/samba/smb.conf
======================= Global Settings =====================================
[global] //设置samba服务整体环境
workgroup = WORKGROUP //设置工作组名
server string = Samba 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 = user //安全性的级别共四种.share:不验证(不推荐)、user:验证用户名和密码 (推荐)、server:服务器验证、domain:windows域验证
password server = 密码验证服务器.
password level = 8 //密码级别
username level = 8
encrypt passwords = yes //用户密码加密,当然也可以不加密
smb passwd file = /etc/samba/smbpasswd //将密码服务器设置为samba server.需要这个东东来指定验证文件.这个是文件的路径,如果samba server是指定的winserver这个不需要
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服务器中有帐户这个可以不设
include = /etc/samba/smb.conf.%m
obey pam restrictions = yes
interfaces = 192.168.12.2/24 192.168.13.2/24 如果多网段要在这里列出
remote announce = 192.168.1.255 192.168.2.44
local master = no
os level = 33
domain master = yes
preferred master = yes
domain logons = yes
logon script = %m.bat
logon script = %U.bat
logon path =
\\%L\Profiles\%U
wins support = yes //wins server支持
wins server = w.x.y.z
wins proxy = yes //wins 代理设置
dns proxy = no //dns代理设置
preserve case = no
short preserve case = no
default case = lower
case sensitive = no
#============================ Share Definitions ===========================
[public] //设置共享文件夹名称
comment = public //注释
path = /data/share/public //samba服务器共享目录路径
public = yes //所有人公开共享
write list = yanghw //可写用户或组
create mode = 0777 //建立文件时所给的权限
directory mode = 0777 //建立文件时所给的权限
[技术部] //设置共享文件夹名称
comment = 技术部资料 //注释
path = /data/share/jishu //samba服务器共享目录路径
public = no //禁止共享,指定的用户共享
valid users = @jisji,user2 //设定只有此名单内的用户才能访问共享资源(拒绝优先)(用户名/@组名
write list = @jishu //可写用户或组
create mode = 0775 //建立文件时所给的权限
directory mode = 0775 //建立目录时所给的权限
注释说明:
#============================== Share Definitions =============================
[homes]
comment = Home Directories
browseable = no
writable = yes
valid users = %S
使用者本身的"家"目录,当使用者以samba使用者身份登入samba server 后,
samba server 底下会看到自己的家目录,目录名称是使用者自己的帐号
[分享的资源名称]
<指令1>; = (参数)
<指令2>; = (参数)
..........................
要提供分享资源时,须先把欲分享的资源以 [ ] 符号括住,底下通常会带指令和参数来表示此资源的设定和存取权限等,详情如下:
[ ] --------- 共享文件夹名称
Comment = XXX---------注释说明
Path = /data/share/public------------分享资源的完整路径名称,除了路径要正确外,目录的权限也要设对
Browseable = ------是yes/否no在浏览资源中显示共享目录,若为否则必须指定共享路径才能存取
Printable = -------是yes/否no允许打印
hide dot ftles = --是yes/否no隐藏隐藏文件
Public = ----------是yes/否no公开共享,若为否则进行身份验证(只有当security = share 时此项才起作用)
guest ok = --------是yes/否no公开共享,若为否则进行身份验证(只有当security = share 时此项才起作用)
read only = -------是yes/否no以只读方式共享当与writable发生冲突时也writable为准
Writable = --------是yes/否no不以只读方式共享当与read only发生冲突时,无视read only
vaild users = -----设定只有此名单内的用户才能访问共享资源(拒绝优先)(用户名/@组名)
invalid users = ---设定只有此名单内的用户不能访问共享资源(拒绝优先)(用户名/@组名)
read list = -------设定此名单内的成员为只读(用户名/@组名)
write list = ------若设定为只读时,则只有此设定的名单内的成员才可作写入动作(用户名/@组名)
create mask = -----建立文件时所给的权限
directory mask = --建立目录时所给的权限
force group = -----指定存取资源时须以此设定的群组使用者进入才能存取(用户名/@组名)
force use = r------指定存取资源时须以此设定的使用者进入才能存取(用户名/@组名)
allow hosts = -----设定只有此网段/IP的用户才能访问共享资源
allwo hosts = 网段 except IP
deny hosts = ------设定只有此网段/IP的用户不能访问共享资源
allow hosts = 本网段指定IP指定IP
deny hosts = 指定IP本网段指定IP
9、重启:
#chkconfig smb on //设置 Samba开机自动启动
#service smb restart //启动 重启 停止samba服务器
#service nmb restart
#testparm //测试smb.conf文件是否有语法错误
10、关闭防火墙
#iptables -F
11、开启Samba 端口:
# vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 137 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 138 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
# service iptables restart
iptables:清除防火墙规则: [确定]
iptables:将链设置为政策 ACCEPT:filter [确定]
iptables:正在卸载模块: [确定]
iptables:应用防火墙规则: [确定]
12、XP访问:
\\0.0.0.0
Samba如何隐藏用户目录
如下(前面添加注释“;”):
#============================ Share Definitions ==============================
;[homes]
; comment = Home Directories
; browseable = no
; writable = yes
; valid users = %S
; valid users = MYDOMAIN\%S
注意:
SELinux关闭
1 永久方法 – 需要重启服务器
修改/etc/selinux/config文件中设置SELINUX=disabled ,然后重启服务器。
2 临时方法 – 设置系统参数
使用命令setenforce 0
LINUX关闭防火墙
1 重启后永久性生效:
开启:chkconfig iptables on
关闭:chkconfig iptables off
2 即时生效,重启后失效:
开启:service iptables start
关闭:service iptables stop
需要说明的是对于Linux下的其它服务都可以用以上命令执行开启和关闭操作。
在开启了防火墙时,做如下设置,开启相关端口,
修改/etc/sysconfig/iptables 文件,添加以下内容:
#配置防火墙开启端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 137 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT
service iptables restart 重启防火墙,使规则生效
或者:
/etc/init.d/iptables status 会得到一系列信息,说明防火墙开着。
/etc/rc.d/init.d/iptables stop 关闭防火墙
最后:
在根用户下输入setup,进入一个图形界面,选择Firewall configuration,进入下一界面,选择Security Level为Disabled,保存。重启即可。
(2)、server 身份验证 samba帐号库(其他服务器)
举例
共享名 物理路径 权限
public /abc 任何人 ro
smbzs /zouyunxia zouyunxia rw
smbls /lisi lisi rw
[root@zyx ~]# vim /etc/samba/smb.conf
root@zyx ~]# service smb restart //重启服务
[root@zyx ~]# mkdir /abc /zouyunxia /lisi //建立文件目录
[root@zyx ~]# ll -d /abc /zouyunxia /lisi //查看文件目录
[root@zyx ~]# useradd zouyunxia //建立帐号zouyunxia
[root@zyx ~]# useradd lisi //建立帐号lisi
[root@zyx ~]# chown zouyunxia.zouyunxia /zouyunxia/ //修改文件所属组
[root@zyx ~]# chown lisi.lisi /lisi/ //修改文件所属组
[root@zyx ~]# ll -d /abc /zouyunxia /lisi //查看文件目录
注:为了区分三个文件目录,在三个文件目录下分别各建一个文件
[root@zyx ~]# cd /abc/
[root@zyx abc]# touch f1.public
[root@zyx abc]# cd /zouyunxia/
[root@zyx zouyunxia]# touch f1.zouyunxia
[root@zyx zouyunxia]# cd /lisi/
[root@zyx lisi]# touch f1.lisi
[root@zyx lisi]# smbpasswd -a zouyunxia //给帐号设置密码
New SMB password:
Retype new SMB password:
Added user zouyunxia.
[root@zyx lisi]# smbpasswd -a lisi //给帐号设置密码
New SMB password:
Retype new SMB password:
Added user lisi.
root@zyx ~]# service smb restart //重启服务
访问服务器
用账号zouyunxia登录
成功登录到服务器
打开zouyunxia的文件目录
新建文件夹
给文件重命名
删除文件
从服务器上下载文件
用帐号李四登录到服务器
http://www.linuxidc.com/Linux/2012-10/72584p6.htm
.t位 粘作位
操作对象:目录的权限是777
作用:在一个公共的文件夹内自己只能删除自己的东西
chmod o+t /tmp
chmod 1777 /tmp
#samba用户信息查询 ##条件:必须在穿件用户前 修改 /etc/samba/smb.conf 文件 #将注释掉 passwdb backend = tdbsam //backen 阻碍 #添加一行新的代码 smb password file = /etc/samba/smbpasswd
###查看方式。进入文件 smbpasswd 查询或者用命令 pdbedit —L查询