Linux搭建Samba 服务

来自CloudWiki
跳转至: 导航搜索

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

这样就可以成功访问了

谢谢,希望对你有帮助