samba官网:https://www.samba.org/
最近需要在服务器上部署一个共享文件服务,希望达到的效果是,不同系统环境(windows linux mac)下的用户能同时访问修改Centos服务器上的文件。搜索一番之后发现,samba这个软件可以实现我想要的功能。下面开始安装了。
1.安装samba
需要注意的是,Centos6和Centos7的软件包是不一样的。一定要注意区分,否则会出莫名其妙的问题。
- 查看操作系统版本的命令
$ cat /etc/redhat-release
- Centos6的用户
$ yum install samba4
- Centos7的用户请安装
$ yum install samba
2.增加分组
我们可以对共享的文件夹进行用户分组权限控制,可以配置某个文件夹只能被某个用户组的用户访问。
- 增加用户分组
$ group add MyStuffDivision
- 添加用户并加入对应的组
此时添加了一个public用户到MyStuffDivision这个分组当中
$ useradd public -g MyStuffDivision
3. 修改/etc/samba/smb.conf文件
在末尾,增加一个MyStuffDivision这个分组,valid user控制了这个配置目录下的文件可以由哪个分组的用户访问。
# A publicly accessible directory that is read only, except for users in the
# "staff" group (which have write permissions):
; [public]
; comment = Public Stuff
; path = /home/samba
; public = yes
; writable = yes
; printable = no
; write list = +staff
[MyStuffDivision]
comment = MyStuff
path = /share (共享文件的路径,根目录下的share文件夹)
public = yes
writable = yes
read only = no
guest ok = yes
browseable = yes
valid user = @MyStuffDivision
3.配置samba用户
在终端输入添加samba用户命令
$ smbpasswd -a public
然后会提示输入密码。
4.修改目录的权限以及所有者
- 修改权限
将共享目录整个文件夹以及子文件夹中的内容都设置为具有所有修改权限
$ chmod 777 -R /share
- 修改share文件夹所有者为public用户
chown -R public:MyStuffDivision /share
5.防火墙需要开放samba端口
$ vi /etc/sysconfig/iptables
在Commit前添加:
-A INPUT -s 192.168.11.0/24 -p tcp -m tcp --dport 22 -j ACCEPT
重启防火墙
/etc/rc.d/init.d/iptables restart
6.开启samba服务
$ service smb start
$ service nmb start
7.访问共享文件
- windows
打开我的电脑,在地址栏输入\localhost - linux(Ubuntu)
随便打开一个文件夹,点击界面左侧下方有一个连接到服务器。
然后输入服务器地址
smb://localhost/
8.配置samba服务自启动
服务器会有宕机的情况,所以我们的服务应该配置自启动。
$ chkconfig --level 2345 smb on