目录
[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] name3.主要参数
-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.
[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