Samba服务器基本配置(图形化界面)

本文详细介绍了如何在Linux系统上配置Samba服务,包括设置配置文件、用户验证方式、安全选项等,并讲解了挂载本地yum、关闭防火墙和SELinux的过程。此外,还提到了安装Samba服务的步骤以及用户账户的管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

目录

一、挂载本地yum

二、关闭防火墙和selinux

三、安装samba服务

四、实例:


[global]

config file = /usr/local/samba/lib/smb.conf.%m
说明:config file可以让你使用另一个配置文件来覆盖缺省的配置文件。如果文件 不存在,则该项无效。这个参数很有用,可以使得samba配置更灵活,可以让一台samba服务器模拟多台不同配置的服务器。比如,你想让PC1(主机名)这台电脑在访问Samba Server时使用它自己的配置文件,那么先在/etc/samba/host/下为PC1配置一个名为smb.conf.pc1的文件,然后在smb.conf中加入:config file = /etc/samba/host/smb.conf.%m。这样当PC1请求连接Samba Server时,smb.conf.%m就被替换成smb.conf.pc1。这样,对于PC1来说,它所使用的Samba服务就是由smb.conf.pc1定义的,而其他机器访问Samba Server则还是应用smb.conf。

workgroup = WORKGROUP
说明:设定 Samba Server 所要加入的工作组或者域。

server string = Samba Server Version %v
说明:设定 Samba Server 的注释,可以是任何字符串,也可以不填。宏%v表示显示Samba的版本号。

netbios name = smbserver
说明:设置Samba Server的NetBIOS名称。如果不填,则默认会使用该服务器的DNS名称的第一部分。netbios name和workgroup名字不要设置成一样了。

interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
说明:设置Samba Server监听哪些网卡,可以写网卡名,也可以写该网卡的IP地址。

hosts allow = 127. 192.168.1. 192.168.10.1
说明:表示允许连接到Samba Server的客户端,多个参数以空格隔开。可以用一个IP表示,也可以用一个网段表示。hosts deny 与hosts allow 刚好相反。
例如:hosts allow=172.17.2.EXCEPT172.17.2.50
表示容许来自172.17.2.*.*的主机连接,但排除172.17.2.50
hosts allow=172.17.2.0/255.255.0.0
表示容许来自172.17.2.0/255.255.0.0子网中的所有主机连接
hosts allow=M1,M2
表示容许来自M1和M2两台计算机连接
hosts allow=@xq
表示容许来自XQ网域的所有计算机连接

max connections = 0
说明:max connections用来指定连接Samba Server的最大连接数目。如果超出连接数目,则新的连接请求将被拒绝。0表示不限制。

deadtime = 0
说明:deadtime用来设置断掉一个没有打开任何文件的连接的时间。单位是分钟,0代表Samba Server不自动切断任何连接。

time server = yes/no
说明:time server用来设置让nmdb成为windows客户端的时间服务器。

log file = /var/log/samba/log.%m
说明:设置Samba Server日志文件的存储位置以及日志文件名称。在文件名后加个宏%m(主机名),表示对每台访问Samba Server的机器都单独记录一个日志文件。如果pc1、pc2访问过Samba Server,就会在/var/log/samba目录下留下log.pc1和log.pc2两个日志文件。

max log size = 50
说明:设置Samba Server日志文件的最大容量,单位为kB,0代表不限制。

security = user
说明:设置用户访问Samba Server的验证方式,一共有四种验证方式的安全级别。

1)share:表示匿名登录,不需要samba账户就可以登录samba服务器

即用户访问samba server不需要提供用户名和口令,安全性能较低

2)user:表示系统账户要先添加进samba库然后变成samba用户,使用samba用户来登录,即就是需要使用用户密码来登录。samba共享目录只能被授权的用户访问,由samba server负责检查账号和密码的正确性。账号和密码要在本samba server中建立。安全性能适中

3)server:表示有另一台samba服务器来对用户身份进行验证。依靠其他Windows NT/2000或samba server来验证用户账号和密码,是一种代理验证。此种安全模式下,系统管理员可以把所以的Windows NT进行samba认证,远程服务器可以自动认证全部用户和口令,如果认证失败,samba将使用用户级安全模式作为替代方式。安全性能最高

4)domian:表示把samba服务器加入到N域,由NT的域控制器来进行身份验证。域安全级别,使用主域控制器(PDC)来完成认证

5)ADS :(Active Directory Service,活动目录服务),是samba3.0中新增的身份验证方式,采用ADS验证方式,samba服务器集成到活动目录中。

passdb backend = tdbsam
说明:passdb backend就是用户后台的意思。目前有三种后台:smbpasswd、tdbsam和ldapsam。sam应该是security account manager(安全账户管理)的简写。
1)smbpasswd:该方式是使用smb自己的工具smbpasswd来给系统用户(真实
用户或者虚拟用户)设置一个Samba密码,客户端就用这个密码来访问Samba的资源。smbpasswd文件默认在/etc/samba目录下,不过有时候要手工建立该文件。
2)tdbsam:该方式则是使用一个数据库文件来建立用户数据库。数据库文件叫passdb.tdb,默认在/etc/samba目录下。passdb.tdb用户数据库可以使用smbpasswd –a来建立Samba用户,不过要建立的Samba用户必须先是系统用户。我们也可以使用pdbedit命令来建立Samba账户。pdbedit命令的参数很多,我们列出几个主要的。
pdbedit –a username:新建Samba账户。
pdbedit –x username:删除Samba账户。
pdbedit –L:列出Samba用户列表,读取passdb.tdb数据库文件。
pdbedit –Lv:列出Samba用户列表的详细信息。
pdbedit –c “[D]” –u username:暂停该Samba用户的账号。
pdbedit –c “[]” –u username:恢复该Samba用户的账号。
3)ldapsam:该方式则是基于LDAP的账户管理方式来验证用户。首先要建立LDAP服务,然后设置“passdb backend = ldapsam:ldap://LDAP Server”

encrypt passwords = yes/no
说明:是否将认证密码加密。因为现在windows操作系统都是使用加密密码,所以一般要开启此项。不过配置文件默认已开启。

smb passwd file = /etc/samba/smbpasswd
说明:用来定义samba用户的密码文件。smbpasswd文件如果没有那就要手工新建。

username map = /etc/samba/smbusers
说明:用来定义用户名映射,比如可以将root换成administrator、admin等。不过要事先在smbusers文件中定义好。比如:root = administrator admin,这样就可以用administrator或admin这两个用户来代替root登陆Samba Server,更贴近windows用户的习惯。

guest account = nobody
说明:用来设置guest用户名。

socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
说明:用来设置服务器和客户端之间会话的Socket选项,可以优化传输速度。

domain master = yes/no
说明:设置Samba服务器是否要成为网域主浏览器,网域主浏览器可以管理跨子网域的浏览服务。

local master = yes/no
说明:local master用来指定Samba Server是否试图成为本地网域主浏览器。如果设为no,则永远不会成为本地网域主浏览器。但是即使设置为yes,也不等于该Samba Server就能成为主浏览器,还需要参加选举。

preferred master = yes/no
说明:设置Samba Server一开机就强迫进行主浏览器选举,可以提高Samba Server成为本地网域主浏览器的机会。如果该参数指定为yes时,最好把domain master也指定为yes。使用该参数时要注意:如果在本Samba Server所在的子网有其他的机器(不论是windows NT还是其他Samba Server)也指定为首要主浏览器时,那么这些机器将会因为争夺主浏览器而在网络上大发广播,影响网络性能。
如果同一个区域内有多台Samba Server,将上面三个参数设定在一台即可。

os level = 200
说明:设置samba服务器的os level。该参数决定Samba Server是否有机会成为本地网域的主浏览器。os level从0到255,winNT的os level是32,win95/98的os level是1。Windows 2000的os level是64。如果设置为0,则意味着Samba Server将失去浏览选择。如果想让Samba Server成为PDC,那么将它的os level值设大些。

domain logons = yes/no
说明:设置Samba Server是否要做为本地域控制器。主域控制器和备份域控制器都需要开启此项。

logon . = %u.bat
说明:当使用者用windows客户端登陆,那么Samba将提供一个登陆档。如果设置成%u.bat,那么就要为每个用户提供一个登陆档。如果人比较多,那就比较麻烦。可以设置成一个具体的文件名,比如start.bat,那么用户登陆后都会去执行start.bat,而不用为每个用户设定一个登陆档了。这个文件要放置在[netlogon]的path设置的目录路径下。

wins support = yes/no
说明:设置samba服务器是否提供wins服务。

wins server = wins服务器IP地址
说明:设置Samba Server是否使用别的wins服务器提供wins服务。

wins proxy = yes/no
说明:设置Samba Server是否开启wins代理服务。

dns proxy = yes/no
说明:设置Samba Server是否开启dns代理服务。

load printers = yes/no
说明:设置是否在启动Samba时就共享打印机。

printcap name = cups
说明:设置共享打印机的配置文件。

printing = cups
说明:设置Samba共享打印机的类型。现在支持的打印系统有:bsd, sysv, plp, lprng, aix, hpux, qnx

一、挂载本地yum

[root@localhost admin]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   20G  0 disk 
├─sda1   8:1    0  300M  0 part /boot
├─sda2   8:2    0    2G  0 part [SWAP]
└─sda3   8:3    0 17.7G  0 part /
sr0     11:0    1 1024M  0 rom  

发现yum没有挂载

进入root用户配置yum环境,安装Samba服务

[root@localhost admin]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls -al
total 44
drwxr-xr-x.   2 root root  187 Nov  4  2018 .
drwxr-xr-x. 143 root root 8192 Mar 27 13:56 ..
-rw-r--r--.   1 root root 1664 Nov 23  2018 CentOS-Base.repo
-rw-r--r--.   1 root root 1309 Nov 23  2018 CentOS-CR.repo
-rw-r--r--.   1 root root  649 Nov 23  2018 CentOS-Debuginfo.repo
-rw-r--r--.   1 root root  314 Nov 23  2018 CentOS-fasttrack.repo
-rw-r--r--.   1 root root  630 Nov 23  2018 CentOS-Media.repo
-rw-r--r--.   1 root root 1331 Nov 23  2018 CentOS-Sources.repo
-rw-r--r--.   1 root root 5701 Nov 23  2018 CentOS-Vault.repo
[root@localhost yum.repos.d]# mv CentOS-Media.repo CentOS-Media.repo.bak
[root@localhost yum.repos.d]# rm -f *.repo
[root@localhost yum.repos.d]# ls -al
total 16
drwxr-xr-x.   2 root root   35 Apr 17 05:56 .
drwxr-xr-x. 143 root root 8192 Mar 27 13:56 ..
-rw-r--r--.   1 root root  630 Nov 23  2018 CentOS-Media.repo.bak
[root@localhost yum.repos.d]# mv CentOS-Media.repo.bak CentOS-Media.repo
[root@localhost yum.repos.d]# ls -al
total 16
drwxr-xr-x.   2 root root   31 Apr 17 05:58 .
drwxr-xr-x. 143 root root 8192 Mar 27 13:56 ..
-rw-r--r--.   1 root root  630 Nov 23  2018 CentOS-Media.repo

[root@localhost yum.repos.d]# cd ..

[root@localhost /]# mount /dev/cdrom /dvd/centos
mount: /dev/sr0 is write-protected, mounting read-only

此时,本地yum就配置好了
 

二、关闭防火墙和selinux

        关闭selinux方法:

                临时关闭:setenforce 0

                永久关闭:vi  /etc/selinux/config 把ONROOT改为disable(默认是enforcing)

        关闭防火墙:

                systemctl disable firewalld

                systemctl stop firewalld

三、安装samba服务

        先检查有无samba服务:

                rpm  -qa | grep samba

        若无,则:

                yum install -y samba

        开启服务:

                systemctl start  smb

                systemctl enable smb

                systemctl status smb

创建用户账户和密码

        useradd test

         passwd 123456

或者:useradd test -p 123456

用户信息存放在/etc/passwd文件中;密码信息存放在/etc/shadow文件中

[share]        #共享名为share

comment=samba share        #共享注释

path=/home/samba share        #指定共享路径

browseable=yes/no        共享是否所有人可见  

writable=yes/no        是否支持写入数据

valid users = test         允许访问该共享的用户和组(@组名)test,多个用户(组)之间用逗号隔开

invalid users=                禁止访问该共享的用户和组(@组名)test,多个用户(组)之间用逗号隔开

write list =                         允许写入该共享的用户,用来指定可以在该共享下写入文件的用户

public = yes/no                用来指定该共享是否允许gest账户访问

gest ok = yes/no         意义同“public”,是否可以匿名访问

#testparm        #测试语法可靠性(检查配置)
#mkdir         /home/samba share
#touch        /home/samba share/test
#useradd -s /sbin/nologin smbuser
#smbpasswd -a 12345678
#systemctl restart smb
#systemctl stauts smb
#
 

        chmod u+x /etc/sudoers       

        chmod 777 /home/samba share        #设置共享目录权限 

               vi /etc/sudoers (test(ALL)=ALL)

    vi /etc/samba/smb.conf(加共享文件和用户test root),path=/share

1.作用
useradd或adduser命令用来建立用户帐号和创建用户的起始目录,使用权限是超级用户。

2.格式
useradd [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive] [-e expire ] [-p passwd] [-r] name

3.主要参数
-c:加上备注文字,备注文字保存在passwd的备注栏中。

-d:指定用户登入时的主目录,替换系统默认值/home/<用户名>

-D:变更预设值。

-e:指定账号的失效日期,日期格式为MM/DD/YY,例如06/30/12。缺省表示永久有效。

-f:指定在密码过期后多少天即关闭该账号。如果为0账号立即被停用;如果为-1则账号一直可用。默认值为-1.

-g:指定用户所属的群组。值可以使组名也可以是GID。用户组必须已经存在的,期默认值为100,即users。

-G:指定用户所属的附加群组。

-m:自动建立用户的登入目录。

-M:不要自动建立用户的登入目录。

-n:取消建立以用户名称为名的群组。

-r:建立系统账号。

-s:指定用户登入后所使用的shell。默认值为/bin/bash。

-u:指定用户ID号。该值在系统中必须是唯一的。0~499默认是保留给系统用户账号使用的,所以该值必须大于499。

使用useradd命令所建立的账号,实际上是保存在/etc/passwd文本文件中
————————————————
版权声明:本文为CSDN博主「m0_37779570」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_37779570/article/details/85262953

pdbedit -a test

pdbedit -a root

pdbedit -a username:新建Samba账户。

pdbedit -x username:删除Samba账户。

pdbedit -L:列出Samba用户列表,读取passdb.tdb数据库文件。

pdbedit -Lv:列出Samba用户列表详细信息。

pdbedit -c “[D]” -u username:暂停该Samba用户账号。

pdbedit -c “[]” -u username:恢复该Samba用户账号。

 或者:smbpasswd test,再设置密码(要输两次)

四、实例:

cd /etc/samba

[root@localhost etc]# cd /etc/samba
[root@localhost samba]# useradd test -p 123456
[root@localhost samba]# smbpasswd test
New SMB password:
Retype new SMB password:
Failed to find entry for user test.
[root@localhost samba]# smbpasswd -a test
New SMB password:
Retype new SMB password:
Added user test.

Linux基础命令---smbpasswd管理samba密码_weixin_34258838的博客-CSDN博客


[root@localhost samba]# mkdir -p /data/web_data
[root@localhost samba]# setfacl -m u:test:rwx /data/web_data
[root@localhost samba]# ls -l
total 20
-rw-r--r--. 1 root root    20 Mar  7 07:00 lmhosts
-rw-r--r--. 1 root root   706 Mar  7 07:00 smb.conf
-rw-r--r--. 1 root root 11327 Mar  7 07:00 smb.conf.example
[root@localhost samba]# ls -l /data/web_data
total 0
[root@localhost samba]# ls -l /data
total 0
drwxrwxr-x+ 2 root root 6 Apr 16 03:32 web_data
[root@localhost samba]# ls -al
total 32
drwxr-xr-x.   2 root root    61 Apr 16 03:24 .
drwxr-xr-x. 143 root root  8192 Apr 16 03:30 ..
-rw-r--r--.   1 root root    20 Mar  7 07:00 lmhosts
-rw-r--r--.   1 root root   706 Mar  7 07:00 smb.conf
-rw-r--r--.   1 root root 11327 Mar  7 07:00 smb.conf.example
[root@localhost samba]# vi smb.conf
[root@localhost samba]# systemctl start smb

[root@localhost /]# vi /etc/sysconfig/network-scripts/ifcfg-ens33 

        IPADDR=10.0.150.12

        NETMASK=255.255.255.0

        GATEWAY=10.0.150.254
[root@localhost /]# vi /etc/resolv.conf

        nameserver 114.114.114.114
systemctl restart network

[root@localhost samba]# ifconfig 
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.150.12  netmask 255.255.255.0  broadcast 10.0.150.255

firewall-cmd --permanent --add-service=samba
success

[root@localhost samba]# firewall-cmd --reload
success
[root@localhost samba]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens33
  sources: 
  services: ssh dhcpv6-client samba
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
getenforce
Permissive

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值