CentOS6.5 Samba服务器搭建
Samba是在Linux系统上实现SMB(Session MessageBlock)协议的一个免费软件,以实现文件共享和打印机服务共享。
服务器基于VMware CentOS6.5 NAT模式 系统搭建 。实现匿名模式与用户模式。成功配置服务器前需要将防火墙与SELinux关闭
- 永久关闭防火墙
# chkconfig iptables off
- 查看防火墙状态
# service iptables status
- 永久SELinux关闭
vi /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled 设置后需要重启系统才能生效
# yum install samba
安装完后执行 rpm -qa|grep samba 出现如下
[root@localhost Desktop]# rpm -qa|grep samba
samba-winbind-clients-3.6.23-51.el6.x86_64 //winbind的客户端程序
samba-3.6.23-51.el6.x86_64 //Samba服务器软件,用于实现Samba功能
samba-common-3.6.23-51.el6.x86_64 //Samba服务器与客户端公用的文件
samba-winbind-3.6.23-51.el6.x86_64 //实现Linux与Windows无缝连接winbing软件
samba-client-3.6.23-51.el6.x86_64 //Samba客户端程序,用于连接Samba服务器
smb.conf 文件
Samba服务器的全部配置信息均保存在/etc/samba/smb.conf文件。smb.conf文件采用分节结构,一般由3个标准节和若干个用户自定义的共享节组成。
[global]节:定义Samba服务器的全局参数,与Samba服务整体运行环境紧密相关。
[homes]节: 定义共享用户主目录。
[printers]节: 定义打印机共享。
[自定义目录名]节:定义用户自定义的共享目录。
配置文件路径
/etc/samba/smb.conf
关于sam.conf文件的详细解析,移步这位博主
匿名模式
在smb.conf文件配置以下信息实现匿名访问共享目录,可创建,修改文件。这里我们重写了smb.conf文件,只留下[global]节 和 [自定义目录节]。
-
workgroup 用于指定工作组,实现网上邻居功能,如Windows机器一般默认组为workgroup 改成workgroup,就能在windows机器中查看到服务器(因为同属一个群组)
-
server string 设定在网上邻居中服务器显示的注释 支持变量 t%-访问时间 I%-客户端IP m%-客户端主机名 M%-客户端域名 S%-客户端用户名
-
netbios name 在windows上面用主机名访问linux的时候,需要用到netbios name,如果用ip地址访问,不需要nmbd和netbios名称的
-
security = share 访问samba服务器不需要提供用户名和密码。
-
log file 日志文件路径
-
max log size 日志文件最大容量
-
comment=Work share 共享目录说明
-
path=/WorkShare 共享目录绝对路径
-
browsable=yes 共享目录是否可浏览
-
writble=yes 共享目录是否可写入
-
guest ok=yes 共享目录允许匿名访问,前提[global]中设置share
-
create mask=0644 创建文件权限
-
directory mask=0755 创建目录权限
1)配置文件更改
[global]
workgroup=MYGROUP
server string=Samba Server
netbios name = centos
security = share
log file = /var/log/samba/log.%m
max log size = 50
[work]
comment=Work share
path=/WorkShare
browsable=yes
writble=yes
guest ok=yes
create mask=0644
directory mask=0755
2)测试配置文件、创建共享目录、启动服务
测试配置文件指令 testparm
[root@localhost Desktop]# testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[Work]"
WARNING: The security=share option is deprecated
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
[global]
netbios name = CENTOS
server string = Samba Server Version
security = SHARE
log file = /var/log/samba/log.%m
max log size = 50
client signing = required
idmap config * : backend = tdb
[Work]
comment = Work Share
path = /WorkShare
read only = No
create mask = 0644
guest ok = Yes
根据path=指定的路径 创建共享目录 这里我们直接在根目录下创建WorkShare目录
# mkdir /WorkShare
因为匿名模式下访问samba服务器,对共享文件的访问是通过nobody账号访问,所以创建的目录需要修改权限,才能被正确访问。这里我们直接将共享目录权限修改成 777 (或者将目录归属人改成nobody)
# chmod 777 /WorkShare
# ll
# ll 查看共享目录权限为下图
启动服务,如果没有配置netbios name 不需要执行service nmb start
[root@localhost Desktop]# service smb start
Starting SMB services: [ OK ]
[root@localhost Desktop]# service nmb start
Starting NMB services: [ OK ]
3)测试服务
Linux端测试(需要有samba-client-3.6.23-51.el6.x86_64程序,版本看自己的yum源支持)
[root@localhost /]# smbclient //192.168.213.130/Work
WARNING: The security=share option is deprecated
Enter qy's password:
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.23-51.el6]
Server not using user level security and no password supplied.
smb: \>
注意ip后面一定要接自己的共享目录名称,名称为sam.conf文件里 ‘[ ]’ 的字段,匿名模式下不输入密码直接回车 WARING 提示share模式不安全,不影响。
Window10端测试
因Window10 已经默认不接受CentOS6 samba服务,需要在控制面板中 程序 打开SMB1.0/CIFS文件共享支持
在文件资源管理器地址栏输入 \\192.168.213.130 即可访问(以自己ip为准)
ok,匿名模式配置完成。
用户模式
用户模式下,访问Samba服务器需要使用Samba的账号与密码登录,Samba的账号从系统中添加,所以我们先创建一个用户群组share(也可以不创建群组,使用账号创建时的默认群组,关于账号群组,另寻资料学习),再创建一个用户test 属于群组share
# groupadd share
# cat /etc/group //查看群组是否创建成功
创建用户 ,归属于share群组,创建后必须设置密码,否则该账号无法使用,test账号密码我设成test
[root@localhost Desktop]# useradd -g share test
[root@localhost Desktop]# passwd test
Changing password for user test.
New password:
BAD PASSWORD: it is too short
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
通过cat /etc/group 查看群组里的用户,这里如下所示,显示share是test用户的主群组
# cat /etc/group
将创建的系统用户test加入samba,具体如下,加入时需要设置登录samba时的密码,这里我设成test,成功后会出现具体的账号信息。
[root@localhost Desktop]# pdbedit -a test
new password:
retype new password:
Unix username: test
NT username:
Account Flags: [U ]
User SID: S-1-5-21-2226902674-1556101360-2428140407-1005
Primary Group SID: S-1-5-21-2226902674-1556101360-2428140407-513
Full Name:
Home Directory: \\centos\test
HomeDir Drive:
Logon Script:
Profile Path: \\centos\test\profile
Domain: CENTOS
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time: Wed, 06 Feb 2036 07:06:39 PST
Kickoff time: Wed, 06 Feb 2036 07:06:39 PST
Password last set: Wed, 21 Apr 2021 22:34:56 PDT
Password can change: Wed, 21 Apr 2021 22:34:56 PDT
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
好了,下面开始配置smb.conf文件
- security = user 表示使用账号访问samba服务
- valid users = @share 表示允许属于群组share的用户登录 ,当使用群组时前面外加@,或者直接使用单个用户名(前提是该用户已添加到samba),表示只允许该用户访问
- guest ok = no 禁止匿名访问
[global]
workgroup = workgroup
server string = Samba Server Version
netbios name = centos
security = user
passdb backend = tdbsam
log file = /var/log/samba/log.%m
max log size = 50
[homes]
comment = Home Directories
browseable = no
writable = yes
[Work]
comment = Work Share
path=/WorkShare
browsable = yes
valid users = @share
writable = yes
guest ok = no
create mask = 0644
directory mask = 0755
配置好后使用 testparm 测试配置文件,再对共享目录WorkShare进行更改
# chgrp share WorkShare
# chmod 775 WorkShare
启动服务
# service smb start
测试与匿名模式一样,只不过多了账号认证,至此用户模式配置完成。
配置过程中,要注意共享目录的权限,配置文件中所给的权限。Windows/Linux登录中出现的访问问题、文件修改问题,都是配置时给的权限问题,仔细检查,都可以排错。Windows登录中可能会出现-"不允许一个用户使用一个以上用户名与服务器或共享资源的多重连接”,进入cmd 输入net use * /del 能解决。