转载:在CentOS 7中Samba服务安装和配置
- 获取链接
- X
- 电子邮件
- 其他应用
在CentOS 7中Samba服务安装和配置
这篇指南介绍了如何在CentOS7中配置匿名和安全的Samba服务器。Samba是一个开源/自由软件套件,提供无缝的文件和打印服务SMB/CIFS客户端.Samba是免费的,不像其他的SMB/CIFS的实现着,Samba允许在Linux/Unix服务器和给予Windows的客户端之间协同工作,
- 初步说明
我有个一新安装的CentOS7 服务器,这是我要安装Samba服务器的机子。当然,你需要有一个windows机器来检查这台CentOS7的服务器是可被连接的。
我的CentOS7的服务器主机名:server1.example.com ,IP是:192.168.0.100
注意:Windows 机器必须和这台CentOS7在同一个工作组。可以用下面的命令来检查:
1
| net config workstation |
为了确保windows机器可以在窗口中处理类似的访问。在终端中添加服务器IP地址:
1
| notepad C:\Windows\System32\drivers\etc\hosts |
在我的例子中是这样保存的:
1
2
| [...]192.168.0.100 server1.example.com centos |
- Samba匿名共享
首先我将解释安装Samba和匿名共享的方法。安装Samba运行
1
| yum install samba samba-client samba-common |
安装之后请备份一份原始的Samba配置文件:
1
| mv /etc/samba/smb.conf /etc/samba/smb.conf.bak |
然后来新建我们的conf文件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| vi /etc/samba/smb.conf[global]workgroup = WORKGROUPserver string = Samba Server %vnetbios name = centossecurity = usermap to guest = bad userdns proxy = no#============================ Share Definitions ============================== [Anonymous]path = /samba/anonymousbrowsable =yeswritable = yesguest ok = yesread only = no:wq#保存并退出 |
1
2
3
4
5
| mkdir -p /samba/anonymoussystemctl enable smb.servicesystemctl enable nmb.servicesystemctl restart smb.service //如果启动服务时发生错误,请修改smb.conf文件内容,直到能启动为止。systemctl restart nmb.service |
在下面CentOs7的防火墙cmd会阻止Samba的访问,为了摆脱这个,我们运行:
1
2
3
4
5
6
| [root@server1 ~]# firewall-cmd --permanent --zone=public --add-service=sambasuccess[root@server1 ~]#[root@server1 ~]# firewall-cmd --reloadsuccess[root@server1 ~]# |
现在你可以在Windows中访问CentOS7的共享文件了,在命令提示行中输入:
1
| \\centos |
下面是浏览到的文件夹,如果你尝试着去创建一个文件,你会得到一个没有权限的错误信息、
检查这个共享文件夹的权限:
1
| ls -l |
drwxr-xr-x. 2 root root 6 Jul 17 13:41 anonymous
[root@server1 samba]#
[root@server1 samba]#
我们下面给匿名用户一个权限:
1
2
3
4
| cd /sambachmod -R 0755 anonymous/chown -R nobody:nobody anonymous/ls -l anonymous/ |
total 0
drwxr-xr-x. 2 nobody nobody 6 Jul 17 13:41 anonymous
[root@server1 samba]#
drwxr-xr-x. 2 nobody nobody 6 Jul 17 13:41 anonymous
[root@server1 samba]#
进一步我们需要配置Selinux
1
| chcon -t samba_share_t anonymous/ |
现在我们可以浏览和创建文件了
在服务器上查看:
1
| ls -l anonymous/ |
total 0
-rwxr--r--. 1 nobody nobody 0 Jul 17 16:05 anonymous.txt
[root@server1 samba]#
-rwxr--r--. 1 nobody nobody 0 Jul 17 16:05 anonymous.txt
[root@server1 samba]#
- 安全的Samba服务器
为了这个,我创建了一个组:smbgrp 和用户srijan通过认证来访问Samba服务器。
1
2
3
4
5
6
7
| groupadd smbgrpuseradd srijan -G smbgrpsmbpasswd -a srijan[root@server1 samba]# smbpasswd -a srijanNew SMB password:<--yoursambapasswordRetype new SMB password:<--yoursambapasswordAdded user srijan.[root@server1 samba]# |
现在在Samba文件夹下创建一个文件夹:Secured ,并且给出权限:
1
| mkdir -p /samba/secured |
同样的,我们允许Selinux来监听:
1
2
3
| cd /sambachmod -R 0777 secured/chcon -t samba_share_t secured/ |
再次编辑配置文件:
1
2
3
4
5
6
7
8
9
10
11
12
13
| vi /etc/samba/smb.conf[...][secured] path = /samba/secured valid users = @smbgrp guest ok = no writable = yes browsable = yessystemctl restart smb.servicesystemctl restart nmb.service |
像下面这样测试:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| testparm[root@server1 samba]# testparm Load smb config files from /etc/samba/smb.confrlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)Processing section "[Anonymous]"Processing section "[secured]"Loaded services file OK.Server role: ROLE_STANDALONEPress enter to see a dump of your service definitions <--ENTER[global] netbios name = CENTOS server string = Samba Server %v map to guest = Bad User dns proxy = No idmap config * : backend = tdb[Anonymous] path = /samba/anonymous read only = No guest ok = Yes[secured] path = /samba/secured valid users = @smbgrp read only = No[root@server1 samba]# |
现在在windows机器中可以使用相应的凭证来查看文件夹。
你的用户srijan同样面对着写入权限的问题,让我们来给出权限:
1
2
| cd /sambachown -R srijan:smbgrp secured/ |
现在Samba用户在共享的目录中有写入的权限了,开始High吧.
注:
如果你的 chcon命令不成功,请按下面的方式尝试:
1
| chcon -h system_u:object_r:forderA /path/to/B |
- 获取链接
- X
- 电子邮件
- 其他应用







评论
发表评论