Linux搭建Samba 服务
https://cloud.tencent.com/developer/labs/lab/10409
目录
Samba 服务的介绍
任务时间:时间未知
Samba 服务就是一可以跨平台的一个云储存的服务 Mac Windows Linux 等都可以访问这个共享文件服务
安装步骤
安装 Samba 服务包
任务时间:5min ~ 10min
使用 yum 来安装 Samba 服务
这里我们需要安装 Samba 服务的主包
yum -y install samba
安装大概使用30秒左右的时间,安装完成之后我们查看一下安装结果
[root@VM_240_241_centos ~]# rpm -qa |grep samba
samba-common-4.7.1-9.el7_5.noarch samba-common-libs-4.7.1-9.el7_5.x86_64 samba-client-libs-4.7.1-9.el7_5.x86_64 samba-libs-4.7.1-9.el7_5.x86_64 samba-4.7.1-9.el7_5.x86_64 samba-common-tools-4.7.1-9.el7_5.x86_64
如果出现和我一样的那就说明安装成功
启动 Samba 服务
在这里需要首次启动 Samba 服务代码如下
service smb start
在这解释一下 smb , Samba 服务名称为 smb , smb 就等于 Samba 的简称.
查看服务状态
service smb status
Redirecting to /bin/systemctl status smb.service ● smb.service - Samba SMB Daemon Loaded: loaded (/usr/lib/systemd/system/smb.service; disabled; vendor preset: disabled) Active: active (running) since Tue 2018-10-02 09:14:54 CST; 49s ago Main PID: 18691 (smbd) Status: "smbd: ready to serve connections..." CGroup: /system.slice/smb.service ├─18691 /usr/sbin/smbd --foreground --no-process-group ├─18693 /usr/sbin/smbd --foreground --no-process-group ├─18694 /usr/sbin/smbd --foreground --no-process-group └─18695 /usr/sbin/smbd --foreground --no-process-group Oct 02 09:14:53 VM_240_241_centos systemd[1]: Starting Samba SMB Daemon... Oct 02 09:14:54 VM_240_241_centos smbd[18691]: [2018/10/02 09:14:54.012624, 0] ../lib/...y) Oct 02 09:14:54 VM_240_241_centos systemd[1]: Started Samba SMB Daemon. Oct 02 09:14:54 VM_240_241_centos smbd[18691]: STATUS=daemon 'smbd' finished starting...ns Hint: Some lines were ellipsized, use -l to show in full.
端口监听
netstat -antup | grep smb
[root@VM_240_241_centos ~]# netstat -antup | grep smb tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 18691/smbd tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 18691/smbd tcp6 0 0 :::139 :::* LISTEN 18691/smbd tcp6 0 0 :::445 :::* LISTEN 18691/smbd
完成如上的一样那就完成了服务启动
添加用户
任务时间:时间未知
添加系统用户
添加系统用户是为了之后之后给 Samba 服务提供登陆账户 我们添加两个用户 user01 user02
useradd -M user01
useradd -M user02
我们建立了两个用户设置的密码与之后的 Samba 服务账户密码没有冲突
tail -2 /etc/passwd
[root@VM_240_241_centos ~]# tail -2 /etc/passwd user01:x:1000:1000::/home/user01:/bin/bash user02:x:1001:1001::/home/user02:/bin/bash
查看用户是否创建
添加 Samba 用户前的准备
我们添加 Samba 用户之前需要编辑 Samba 配置文件
(一)
Samba 的主配置文件在 /etc/samba/ 目录下的 smb.conf 我们使用 vim 打开这个配置文件
cd /etc/samba/
ll
[root@VM_240_241_centos samba]# ll total 20 -rw-r--r-- 1 root root 20 Aug 16 23:49 lmhosts -rw-r--r-- 1 root root 706 Aug 16 23:49 smb.conf -rw-r--r-- 1 root root 11327 Aug 16 23:49 smb.conf.example
vim smb.conf
# See smb.conf.example for a more detailed config file or # read the smb.conf manpage. # Run 'testparm' to verify the config is correct after # you modified it. [global] workgroup = SAMBA security = user # passdb backend = tdbsam passdb backend = smbpasswd smb passwd file = /etc/samba/smbpasswd printing = cups printcap name = cups load printers = yes cups options = raw
(二)
打开之后就会出现图片上的文件,但是你得会使用 vim 编辑器,这里我就不给大家多说 vim 的使用了.
示例代码:/etc/samba/smb.conf
# See smb.conf.example for a more detailed config file or # read the smb.conf manpage. # Run 'testparm' to verify the config is correct after # you modified it. [global] workgroup = SAMBA security = user # passdb backend = tdbsam passdb backend = smbpasswd smb passwd file = /etc/samba/smbpasswd printing = cups printcap name = cups load printers = yes cups options = raw
将 passdb backend = tdbsam 注释掉
添加两项
passdb backend = smbpasswd
smb passwd file = /etc/samba/smbpasswd
(三)
编辑这个选项是为了修改用户密码位置,接下来就是重启服务然后会自动在 /etc/samba 目录下建立一个 smbpasswd 的文件这里就是保存 Samba 用户密码的文件
(四)
重启服务生效
service smb restart
向samba添加用户
将刚才创建额系统用户 user01 user02 添加到 Samba 用户中去
这个命令就是创建 Samba 用户然后会让你输入两次密码
smbpasswd -a user01
smbpasswd -a user02
[root@VM_240_241_centos samba]# smbpasswd -a user01 New SMB password: Retype new SMB password: Added user user01. [root@VM_240_241_centos samba]# smbpasswd -a user02 New SMB password: Retype new SMB password: Added user user02.
验证是否添加成功
查看刚才生成的密码文件 /etc/samba/smbpasswd
cat /etc/samba/smbpasswd
如果出现和下图一样说明成功
[root@VM_240_241_centos samba]# cat /etc/samba/smbpasswd user01:1000:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:3FA45A060BD2693AE4C05B601D05CA0C:[U ]:LCT-5BB2D308: user02:1001:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:3FA45A060BD2693AE4C05B601D05CA0C:[U ]:LCT-5BB2D315:
配置samba服务器的共享文件夹
任务时间:时间未知
创建共享文目录
我们创建共享目录是自定义的我那就创建在 /hone 目录下
mkdir -p /home/samba/public
我们创建了一个公共目录 在创建一个私有目录
mkdir -p /home/samba/personal
设置目录权限
使用 chmod 来配置文件夹的权限
配置为读写
chmod -R u=rwx,go=rx /home/samba/personal
chmod -R a=rwx /home/samba/public
把 personal 目录设置为 user01 为所有者
chown -R user01 /home/samba/personal
目录权限配置完毕
配置 smb.conf 文件
编辑 /etc/samba/smb.conf
进入之后我们创建两个共享目录
[public] comment = public path = /home/samba/public valid users = user01,user02 public = yes writable = yes [personal] comment = personnal path = /home/samba/personal valid users =user01 browseable = no write list = user01
访问控制参数:
writable = yes/no //指定共享的路径是否可写 browseable = yes/no //指定共享的路径是否可浏览(默认) available = yes/no //指定共享资源是否可用 readonly = yes/no //指定共享的路径是否为只读 valid users = tom,@stuff // 指定允许使用服务的用户列表 read list = tom,@stuff //设置只读访问用户列表 write list = tom,@stuff //设置读写访问用户列表 public = yes/no //是否允许所有用户访问, guest用户除外 guest ok = yes/no //同上 hosts deny = 192.168.0 hosts allow = 192.168.0.10 //上面两条语句为只允许IP地址为192.168.0.10的主机访问。 hosts deny = all hosts allow = 192.168.0 EXCEPT 192.168.0.10 //上面两条语句为允许除IP地址为192.168.0.10外的192.168.0网段的主机访问
根据自己的要求可也配置不同的权限,自由搭配上面的约束.
编辑完成后重启服务生效
service smb restart
最后的调试
在 Windows 中输入 samba 服务器的ip
列如:\192.168.1.1
然后输入用户名和密码就行了 如果无法连接到 Samba 关闭防火墙
service firewalld stop
关闭 SELINUX
setenforce 0
这样就可以成功访问了
谢谢,希望对你有帮助