Centos 8 安装samba服务

Centos 8 安装samba服务

流星aday
2021-07-17 / 0 评论 / 401 阅读 / 正在检测是否收录...

介绍

samba是在linux系统上实现smb协议的一个免费软件,由服务器及客户端程序构成。samba最大的作用就是可以用于linux与windows系统直接的文件共享和打印共享,samba既可以用于windows与Linux之间的文件共享,也可以用于linux与linux之间的资源共享。

安装samba

dnf -y install samba samba-client 

修改配置

vim /etc/samba/smb.conf

部分配置介绍

#全局配置
[global]
        server string=smb文件共享服务 #设定samba server的注释,支持变量 t%-访问时间 I%-客户端IP m%-客户端主机名 M%-客户端域名 S%-客户端用户名
        workgroup = samba #设定samba server加入的工作组或者域
        security = user #设置用户访问samba server的验证方式,一共有四种验证方式。
                        #share:不需要提供用户名和密码,安全性能较低。
                        #user:samba server共享目录只能被授权的用户访问,由samba server负责检查账号和密码的正确性。账号和密码要在本samba server中建立。
                        #server:依靠其他sindows NT/2000或samba server来验证用户的账号和密码,是一种代理验证。此种安全模式下,系统管理员可以把所有的sindows用户和口令集中到一个NT系统上,使用windows NT进行samba认证, 远程服务器可以自动认证全部用户和口令,如果认证失败,samba将使用用户级安全模式作为替代的方式。
                        #domain:域安全级别,使用主域控制器(PDC)来完成认证。
        passdb backend = tdbsam #用户后台。目前有三种后台:smbpasswd、tdbsam和ldapsam。sam是security account manager(安全账户管理)的简写。
        printing = cups #设置samba共享打印机的类型。现在支持的打印系统有:bsd, sysv, plp, lprng, aix, hpux, qnx
        printcap name = cups #设置共享打印机的配置文件。可为路径:/etc/printcap
        load printers = yes #设置是否在启动samba时就共享打印机。
        cups options = raw #通用Unix打印系统配置参数
        interfaces = lo ens33 192.168.157.129/24 127.0.0.1/24 #设置samba Server监听哪些网卡,可以写网卡名,也可以写该网卡的IP地址,空格分隔。
        guert account = pcguest #设定访问samba server的来宾帐户(即访问时不用输入用户名和密码的帐户,也就是匿名用户),若设为pcguest的话则为默认为nobody用户。
        log file = /var/log/samba/%m.log #日志文件的储存位置和文件名(%m代表客户端主机名)
        max log size = 0 #设定日志文件的最大容量,单位KB,这里的预设值0代表不做限制。
        password server = 127.0.0.1 #指定某台服务器(包括windows 和 linux)的密码,作为用户登入时验证的密码。此项需配合security = server时,才可设定本参数。
        password level = 8 #密码位数
        username level = 4 #用户名位数
        encrypt passwords = Yes #设定是否对samba的密码加密。
        smb passwd file = /etc/samba/smbpasswd #设定samba的密码文件
        local master = no #设定samba server是否要担当LMB角色(LMB负责收集本地网络的Browse List资源),通常无特殊原因设为no
        os level = 33 #设定samba server的os level. os level从 0 到 255 . winNT的os level为33, win95/98的os level 是 1 .若要拿samba server 当LMB或DMB则它的os level至少要大于NT的33以上。
        domain master = no #设定samba server是否要担当DMB角色(DMB会负责收集其他子网的Browse List资源),通常无特殊原因设为no
        preferred master = yes #设定samba server是否要担当PDC角色(PDC会负责追踪网络帐户进行的一切变更),通常无特殊原因设为no,(同一网段内不可有两个PDC,他们会每5分钟抢主控权一次)
        wins support = yes #设定samba server是否想网络提供WINS服务,通常无特殊原因设为no。除非所处网络上没有主机提供WINS服务且需要此台samba server提供WINS服务是才设yes,其他wins support和wins server只能选择一个
        wins server = 192.168.0.1 #设定samba server是否要使用别台主机提供的WINS服务,通常无特殊原因设为no。除非所处网络上有一台主机提供WINS服务才要设yes,其他wins support和wins server

#分享的资源名称
[homes]
        comment = Home Directories #描述
        admin users = root #该共享的管理者,多个用户中间用逗号隔开
        valid users = %S,%D%w%S #允许访问该共享的用户,多个用户或者组中间用逗号隔开,如果要加入一个组就用"@+组名"表示。%S表示目录登录用户
        browseable = Yes #是否隐藏目录(知道目录同样可以访问)
        read only = No #是否只读
        inherit acls = Yes #是否继承acl权限设置
        public = No #不允许匿名用户访问,Yes允许
        path = /var/tmp #共享目录路径,可以用%u、%m这样的宏来代替路径里的lnix用户和客户机的netbios名,用宏表示主要用于[homes]共享域。例如:如果我们不打算用home段做为客户的共享,而是在/home/share/下为每个Linux用户以他的用户名建个目录,作为他的共享目录,这样path就可以写成:path = /home/share/%u; 。用户在连接到这共享时具体的路径会被他的用户名代替,要注意这个用户名路径一定要存在,否则,客户机在访问时会找不到网络路径。同样,如果我们不是以用户来划分目录,而是以客户机来划分目录,为网络上每台可以访问samba的机器都各自建个以它的netbios名的路径,作为不同机器的共享资源,就可以这样写:path = /home/share/%m 。
        create mask = 0600 #控制用户端创建文件的权限
        write list = @printadmin root #允许写入该共享的用户
        force group = @printadmin #指定存取资源时须以此设定的群组使用者进入才能存取(@组名)
        force user = root #指定存取资源时须以此设定的使用者进入才能存取(用户名)
        directory mask = 0775 #控制用户端创建目录的权限
        allow hosts = 192.168.157. #设定只有此网段/IP的用户才能访问共享资源
        allwo hosts = 192.168.156. #allow hosts的排除ip
        deny hosts = 1.1.1. #设定只有此网段/IP的用户不能访问共享资源
        writable = yes #是否可写
        printable = no #是否为共享段打印机

也可查看 /etc/samba/smb.conf.example文件获取详细介绍

配置示例

假如我现在需要配置一个work共享目录,配置如下:

[global]
        server string=smb文件共享服务
        workgroup = root
        security = user
        passdb backend = tdbsam
        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw
        interfaces = lo ens33 192.168.157.129/24 127.0.0.1/24
        max log size = 0

[work]
        comment = work目录
        admin users = root
        valid users = @root
        browseable = No
        read only = No
        inherit acls = Yes
        public = No
        path = /work
        create mask = 0644
        directory mask = 0744
        write list = root
        force group = @root
        force user = root
        allow hosts = 192.168.157.

可使用testparm命令来查看配置是否正常

其他设置

smbpasswd -a root #先设置登入用户及密码,需要与smb.conf中的admin users配置一致
systemctl stop firewalld.service #临时关闭防火墙
systemctl disable firewalld #禁止开启启动
setenforce 0 #临时关闭SELinux权限
vim /etc/selinux/config #永久关闭,将SELINUX=enforcing改为SELINUX=disabled,然后保存退出。

启动服务

systemctl restart smb
systemctl enable smb
6

评论

博主关闭了所有页面的评论