Iptables
Iptables命令
希望在哪个表上工作,使用该的哪个链,进行操作(插入、添加、删除),匹配数据条件,对规则执行动作
iptables-nat
源地址;目的地址;
- 先经过 NAT table 的 PREROUTING 链;
- 经由路由判断确定这个封包是要进入本机与否,若不进入本机,则下一步;
- 再经过 Filter table 的 FORWARD 链;
- 通过 NAT table 的 POSTROUTING 链,最后传送出去。
NAT 主机的重点就在于上面流程的第 1,4 步骤,也就是 NAT table 的两条重要的链:PREROUTING 与POSTROUTING。 那这两条链重要功能在于修改IP,而这两条链修改的IP又是不一样的,POSTROUTING在修改来源IP,PREROUTING则在修改目标IP 。由于修改的 IP 不一样,所以就称为来源NAT (Source NAT, SNAT) 及目标 NAT (Destination NAT, DNAT)。
SNAT即源地址转换,能够让多个内网用户通过一个外网地址上网,解决了IP资源匮乏的问题。一个无线路由器也就使用此技术。
将192.168.10.10转换为111.196.211.212,iptables命令如下:
root@debian:~#iptables –t nat –A POSTROUTING –s 192.168.10.10 –o eth1 –j SNAT --to-source 111.196.221.212
DNAT即目地地址转换,则能够让外网用户访问局域网内不同的服务器。(相当于SNAT的反向代理)
目标地址192.168.10.6在路由前就转换成61.240.149.149,需在网关上运行iptables命令如下:
root@debian:~# iptables -t nat -A PREROUTING -i eth33 -d 222.199.17.250 -p tcp --dport 80 -j DNAT --to-destination 192.168.10.6:80
iptables 持久化
安装
root@Debian:/etc# apt install iptables-persistent
执行命令
root@Debian:/# netfilter-persistent save
run-parts: executing /usr/share/netfilter-persistent/plugins.d/15-ip4tables save
run-parts: executing /usr/share/netfilter-persistent/plugins.d/25-ip6tables save
start:启动目录/etc/iptables/下rules.v4和rules.v6(如果有)文件里面的规则
stop:启动目录/etc/iptables/下rules.v4和rules.v6(如果有)文件里面的规则,暂时不可用,被flush选项取代
restart:从新启动目录/etc/iptables/下rules.v4和rules.v6(如果有)文件里面的规则
reload:从新加载动目录/etc/iptables/下rules.v4和rules.v6(如果有)文件里面的规则
flush:清楚防火墙的规则,但是不会清空/etc/iptables/下rules.v4和rules.v6(如果有)文件里面的规则
save:保持防火墙的规则,会清空/etc/iptables/下rules.v4和rules.v6(如果有)文件里面的规则,并从新写入防火墙现有的规则
查看保存的规则
root@Debian:/# cat /etc/iptables/rules.v4
Generated by xtables-save v1.8.2 on Tue Oct 12 10:15:17 2021*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -d 192.168.1.0/24 -p tcp -m tcp --dport 25 -j DROP
-A INPUT -s 192.168.1.1/32 -j DROP
-A FORWARD -d 192.168.1.50/32 -i zt3jnxt2fz -p tcp -m tcp --dport 80 -j ACCEPT
-A FORWARD -d 192.168.1.50/32 -i zt3jnxt2fz -p tcp -m tcp --dport 53 -j ACCEPT
-A FORWARD -d 192.168.1.50/32 -i zt3jnxt2fz -p tcp -m tcp --dport 25 -j ACCEPT
-A FORWARD -d 192.168.1.50/32 -i zt3jnxt2fz -p tcp -m tcp --dport 110 -j ACCEPT
COMMIT
Completed on Tue Oct 12 10:15:17 2021
DHCP服务配置
DHCP-Server
安装
root@server2:~# apt install isc-dhcp-server -y
启动
root@server2:~# systemctl start isc-dhcp-server
配置DHCP
修改监听网卡
nano /etc/default/isc-dhcp-server
INTERFACESv4=“ens33” #这里监听ens33网卡
配置主配文档,修改区域文件
root@server2:~# nano /etc/dhcp/dhcpd.conf
subnet 192.168.20.0 netmask 255.255.255.0 { #区域网段
range 192.168.20.10 192.168.20.20; #允许的网段
option domain-name-servers 114.144.114.114; #dns服务器地址
# option domain-name "internal.example.org"; #dns服务器名字
# option subnet-mask 255.255.255.0;
option routers 192.168.20.2; #网关
option broadcast-address 192.168.20.255; #广播地址
default-lease-time 600; #默认租期
max-lease-time 7200;
}
DHCP中继
安装
apt install -y isc-dhcp-relay
修改配置文档
设置dhcp服务的主机名或ip地址
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZISb1wNc-1635091112064)(image/Debian—DHCP服务配置/1633256216986.png)]
DHCP中继
请输入至少一个DHCP服务器的主机名或IP地址,DHCP服务器将连接到该服务器
和BOOTP请求应该被中继。
可以指定多个服务器名称或IP地址(在空格分隔的列表中)。
DHCP中继应将请转发到以下服务器:
设置本机的监听端口:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3vCDJWn8-1635091112067)(image/Debian—DHCP服务配置/1633256340975.png)]
DHCP中继
请指定DHCP中继应尝试连接的网络接口请确认,应以空格分隔的列表形式输入多个接口名称。将此字段留空,以便自动检测和确认DHCP中继的网络接口,在这种情况下,只有广播接口使用(如果可能)。
DHCP中继应侦听的接口:
其他选项
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rdsNy8JU-1635091112069)(image/Debian—DHCP服务配置/1633256565977.png)]
请为DHCP中继守护程序指定任何其他选项。例如:‘-m replace’或’-a-D’。
DHCP中继守护程序的其他选项:
-4 运行ipv4的中继(默认模式)
-6 运行ipv6的中继
以下参数为[-4,-6]公用参数
-c ,count 转发出的dhcp数据包的跳数,默认是10跳,最大255跳
-d , 强制将dhcprelay 作为一个前置进行强制运行
-p , port 侦听与传输的端口,ipv4默认端口是udp 67,ipv6默认端口是udp 547
-q , 静默模式,防止ipv6启动时,打印其网络配置
检查配置文件
nano /etc/default/isc-dhcp-relay
SERVERS="192.168.1.254" #dhcp服务器地址
INTERFACES="ens37" #应用在哪个网卡上,
重启中继服务:
systemctl restart isc-dhcp-relay.service
SSH-Server
安装
apt install sshd
root@Debian:~# nano /etc/ssh/sshd_config
口令登录:
- 客户端连接上服务器之后,服务器把自己的公钥传给客户端
- 客户端输入服务器密码通过公钥加密之后传给服务器
- 服务器根据自己的私钥解密登录密码,如果正确那么就让客户端登录
公钥登录
-
生成密钥对
root@Debian:/home/debian/.ssh# ssh-keygen -t rsa #-t 加密方式 Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): /home/debian/.ssh/id_rsa #输出路径 Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/debian/.ssh/id_rsa. Your public key has been saved in /home/debian/.ssh/id_rsa.pub. The key fingerprint is: SHA256:4BP4g24oWfu01N6UbPp/5TK+VAHVDLJfx1P1JlPvMkA root@Debian The key's randomart image is: +---[RSA 2048]----+ | E.o+=| | . . + o*| | . o o +.B| | + o o Bo| | . . = S = .| | o + . + . ..o | |o o = . = .o | | . = o = .+ . | | o o.o..oo+ | +----[SHA256]-----+ root@Debian:/home/debian/.ssh# ls id_rsa id_rsa.pub
-
公钥放在服务器上,私钥放在客户端
公钥放在服务的上的用户目录下的 .ssh 隐藏目录下
-
客户端请求连接时,服务器随机生成字符串发送给客户端
-
客户端根据自己的私钥加密这个字符串后传回服务器
-
服务器解密后验证字符串
允许特定ip地址
AddressFamily 192.168.192.128
拒绝所有IP地址
谋用户免密登录(需要使用ssh-keygen生成密钥对)
PubkeyAuthentication no改为yes
修改监听端口号
Port 22
ListenAddress 0.0.0.0 #当服务器有多块网卡时,设置客户端通过哪个ip地址访问
使用scp下载文件
scp user@hostname:~/.ssh/id_rsa ./Desktop/id_rsa
openssh登录
ssh -i 私钥位置 user@hostname
登录时的回显信息
修改登录时显示的系统信息
/etc/update-motd.d/10-uname
#!/bin/sh
#uname -snrvm
echo "hello! "
登录时默认会调用这个脚本,默认是执行 uname -snrvm
修改欢迎信息
修改 /etc/motd 里面的文本信息即可
CA
创建证书流程
生成密钥
RAID5-LVM
创建RAID
root@debian:/dev# mdadm -Cv /dev/md5 -l5 -n4 dev/sd[bcde]
-Cv 创建一个阵列,v显示详细信息
/dev/md5 阵列名称
-l 指定阵列等级
-n 加入阵列的磁盘个数
删除raid设备
mdadm -r /dev/rd5
NFS
DNS(bind)
正解
- 创建正解区域
root@squdi:/etc/bind# nano named.conf.default-zones
zone "abd.com" {
type master;
file "/etc/bind/abd.com";
};
创建区域文件
root@squdi:/etc/bind# cp db.local abd.com
;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA adb.com. root.localhost. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS adb.com.
@ IN A 192.168.1.50
mail IN A 192.168.1.50
www IN A 192.168.1.50
aaa IN a 192.168.1.1
* IN A 192.168.175.129 #将所有*.adb.com都解析给这个ip地址
@ IN AAAA ::1
反解
创建反解区域
zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.1.168.192";
};
创建区域文件
root@squdi:/etc/bind# cp -a db.127 db.1.168.192
;
; BIND reverse data file for local loopback interface
;
$TTL 604800
@ IN SOA abd.com. root.abd.com. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS abd.com.
50 IN PTR abd.com.
50 IN PTR a.abd.com.
100 IN PTR b.abd.com.
转发
dns转发:当当前DNS服务器查询不出内容时,向别的服务器查询
全局转发:针对凡本地没有通过zone定义的区域查询请求,全部转给某转发器
root@squdi:/etc/bind# nano named.conf.options
forwarders {
114.114.114.114;
};
区域转发:仅转发某个特定区域的解析请求
需要修改区域配置文件,
zone “aa.abd.com”IN {
type forward; #类型 转发
forward only; #转发类型[first 先转发,转发器不响应,自行迭代,only 只转发]
forwards {192.168.1.30;}; #转发到哪个ip地址
};
主/从服务器
从服务器上的配置
修改区域类型,区域文件路径,添加主服务器ip地址
zone "abd.com" IN {
type slave; #类型为slave
file "slave/abd.com"; #区域解析文件需要放在slave下,主从服务器需要同步解析库
masters {192.168.1.50;} #主服务器的ip地址
};
主服务器上的配置
修改区域文件,添加从服务的解析记录和A记录
IN NS slave.abd.com #添加从从服务器记录
slave.abd.com. IN A 192.168.1.20 #添加从服务器A记录
子域解析
修改父域
在父域中添加子域记录和子域指向地址
假设当前域为 abd.com
ops IN NS dns1.ops.abd.com.
dns1.ops IN NS 192.168.1.33
修改子域
zone "ops.abd.com" IN {
type master;
file "ops.abd.com.zone";};
Apache
用户认证访问
主要修改文件路径
/etc/apache2/sites-available
主配文件
/www
网站根目录
修改内容
000-default.conf
</VirtualHost *:80>
ServerAdmin 647865856@qq.com
#设置管理员邮箱
#DocumentRoot /var/www/html
#设置网站的根目录
DocumentRoot /www
DirectoryIndex in.html
#设置网站的默认文件
ErrorLog ${APACHE_LOG_DIR}/error.log
#设置错误日志文件的路径
CustomLog ${APACHE_LOG_DIR}/access.log combined
#设置访问日志文件的路径
<Directory "/www/">
Options Indexes FollowSymLinks
AllowOverride AuthConfig
#表示进行身份验证
AuthName user
#设置认证领域(user),相同领域内避免用户重复输入密码
</Directory>
</VirtualHost>
在网站根目录创建一个文件 .htaccess
AuthName "user" #需要和主配文件里的名字相同
AuthType Basic #采用Basic方法
AuthUserFile /etc/apache2/users #密码文件路径
require valid-user #限制是所有合法用户还是指定用户
创建密码文件
第一次创建用户,需要先创建密码文件
root@debian-client:~# htpasswd -c mima zhangsan
New password:
Re-type new password:
Adding password for user zhangsan
-c Create a new file.#表示创建一个新的密码文件
mima #密码文件路径和文件名
使用现有密码文件
root@debian-client:~# htpasswd mima wangwu
New password:
Re-type new password:
Adding password for user wangwu
Apache虚拟主机
基于IP地址
需要在主机上的多个网卡上配置不同的ip地址
修改主配文档
/etc/apache2/sites-available/000-defaul.conf
</VirtualHost 192.168.1.1:80>
DocumentRoot /var/www/html
DocumentRoot /www1
</VirtualHost>
</VirtualHost 192.168.1.2:80>
DocumentRoot /var/www/html
DocumentRoot /www2
</VirtualHost>
</VirtualHost 192.168.1.3:80>
DocumentRoot /var/www/html
DocumentRoot /www3
</VirtualHost>
基于端口号
修主配文件
/etc/apache2/sites-available/000-defaul.conf
</VirtualHost *:80>
DocumentRoot /var/www/html
DocumentRoot /www1
</VirtualHost>
</VirtualHost *:8080>
DocumentRoot /var/www/html
DocumentRoot /www2
</VirtualHost>
修改apache监听端口的配置文件,加入一下内容
/etc/apache/ports.conf
Listen 8080 #监听8080端口
基于域名 主机名
修主配文件
/etc/apache2/sites-available/000-defaul.conf
</VirtualHost *:80>
ServrName abc.com
DocumentRoot /var/www/html
</VirtualHost>
</VirtualHost *:80>
ServerName xyz.com
DocumentRoot /www1
</VirtualHost>
配置CA证书(https访问)
创建私钥和证书文件
自签证书
生成CA的证书
用CA的证书给apache签名
修改主配文件
/etc/apache2/sites-available/default-ssl.conf
SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
#证书路径
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
#私钥路径
启动apache-ssl模块
FTP
MAIL服务(postfix和dovecot)
先决条件
安装:
安装dns服务器
在当前域中声明当前域的邮件服务器域名和邮件服务器的A记录(正反解)
MX 3 mail.lyshark.com.
;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA adb.com. root.localhost. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS dns.adb.com.
@ IN MX 10 mail.abd.com. #声明邮件服务器域名时需写优先级,正反解都需要
mail IN A 192.168.1.50
dns IN A 192.168.1.50
安装发件服务器 apt install postfix
主配文件 /etc/postfix/main.cf
安装收件服务器 apt install dovecot-imapd dovecot-pop3d
主配文件
/etc/dovecot/dovecot.conf
/etc/dovecot/conf.d/10-ssl.conf
/etc/dovecot/conf.d/10-auth.conf
/etc/dovecot/conf.d/10-mail.conf
创建用户和用户邮件目录
mkdir -p /home/test/mail/.imap/INBOX #创建用户邮件目录
useradd test #创建用户
password test #设置用户密码
SMTP 简单邮件传输协议(发邮件)TCP 25端口,加密时使用TCP 465端口
POP3 第三版邮局协议(收邮件)TCP 110 端口,加密时使用 TCP 995端口
IMAP4 第四版互联网邮件访问协议(收邮件)TCP 143端口,加密时使用TCP 993端口
修改配置文档
/etc/postfix/main.cf
/etc/dovecot/dovecot.conf
login_trusted_networks = 0.0.0.0/0 ------设置那些主机可以访问本机
/etc/dovecot/conf.d/10-ssl.conf
配置是否需要CA
/etc/dovecot/conf.d/10-auth.conf
/etc/dovecot/conf.d/10-mail.conf
Chrony(提供时间同步服务器)
服务端
安装chrony
apt install -y chrony
修改配置文档
server 时钟服务器ip,可以是外部的
allow 允许连接的ip
local stratum 10 连接不到ntp服务器时,用本地时间同步时间
开启ntp同步
timedatectl set-ntp yes
打开服务
systemctl start chrony
客户端
安装chrony和ntpdate
apt install -y chrony ntpdate
修改配置
nano /etc/chrony/chrony.conf
server chrony服务器ip iburst
server 192.168.1.112 iburst
开启ntp同步
timedatectl set-net yes
手动ntp同步命令
netdate 192.168.1.112
添加定时任务,1分钟同步一次
nano /etc/crontab
0**** [netdate 192.168.1.112]
测试
服务端查看客户端连接情况
root@Debian:~# chronyc clients
Hostname NTP Drop Int IntL Last Cmd Drop Int
Lastlocalhost 16 0 5 - 23 0 0 - -
服务端修改时间
root@Debian:~# date -s 12
2021年 10月 12日 星期二 12:00:00 CST
客户端查看与服务器的连接情况
root@mail:~# chronyc sources -v210 Number of sources = 1.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| / '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| \ | | zzzz = estimated error.
|| | | MS Name/IP address Stratum Poll Reach LastRx Last sample
^* 192.168.1.112 10 6 17 47 +498ns[+3892ns] +/- 43us
客户端手动更新时间
root@mail:# ntpdate 192.168.1.112
12 Oct 12:00:34 ntpdate[2890]: step time server 192.168.1.112 offset -13111.957299 sec
root@mail:# date
Tue 12 Oct 2021 12:00:38 PM CST
Openvpn
定时执行命令 Crontab
基本用法
第一次使用初始化,编辑配置
crontab -e
查看当前运行的配置
crontab -l
重启服务
systemctl restart cron
or
/etc/init.d/cron restart
说明:(/,表示,单位时间执行一次)
*/1 * * * *一分钟执行一次
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
*/3 * * * * /home/debian/web.bash #web监控脚本每三分钟执行一下
举例:
编辑脚本
crontab -e
每分钟执行一次 脚本
* * * * * date >> /home/debian/date.date
每3分钟自行一次脚本
*/3 * * * * date >> /home/debian/date.date
重启cron
phpMyAdmin 管理面板
准备phpMyAdmin包,可以 apt install phpmyadmin
将解压包放至 /var/www/html
解压zip包
uzip filename.zip解压gz包
tar zxvf FileName.tar.gz
$cfg['Servers'][$i]['controluser'] = 'root'; #添加sql的账户
$cfg['Servers'][$i]['controlpass'] = 'chinaskills20'; #添加sql的密码
安装php包和php的扩展包(安装 php 、php-mysql、php-xml)
root@debian:~# apt install php php-xml php-mysql
php需要依赖扩展进行工作
DBMS(MariaDB)
安装MaiaDB
root@debian:~# apt install mariadb-client mariadb-serverapt install MariaDB
MariaDB初始化设置
mysql_secure_installation #直接执行初始化命令,会弹出交互配置信息
Enter current password for root (enter for none):#初次进入密码为空,直接回车
New password: #输入要为root用户设置的数据库密码。
Re-enter new password: #重复再输入一次密码。
Remove anonymous users? [Y/n] y #删除匿名帐号
Disallow root login remotely? [Y/n] n #是否禁止root用户从远程登录,安全起见应禁止,这里为做实验方便这里不禁止。
Remove test database and access to it? [Y/n] y #是否删除test数据库,想留着也随意
Reload privilege tables now? [Y/n] y #刷新授权表,让初始化后的设定立即生效
apt包管理
aptitude是功能极其强大的包管理工具
apt-get install aptitude
aptitude的使用
aptitude install phpmyadmin
bash 脚本
自动监控网站运行状态,异常尝试3次,如果无法访问返回网站正在维护,
#!/bin/sh
status=`curl -sIL -w "%{http_code}" -o /deb/null 127.0.0.1` #返回状态码
echo "$status" #显示状态码,不影响使用,可以注释掉
num=0
if [ "$status" != 200 ] #判断状态码是否不是200,200代表可以正常访问
then #!200 条件成立,执行以下内容
if [ "$num" == 3 ]
then
cp /var/www/html/phpMyAdmin-5.1.1-all-languages/index.html /var/www/html/phpMyAdmin-5.1.1-all-languages/index.html.bak
echo "is no " >> /var/www/html/phpMyAdmin-5.1.1-all-languages/index.html #在web的根目录下创建新的主业文件
else
num=`expr $num + 1`
echo "$num"
sleep 3
fi
fi
定时执行命令 Crontab
基本用法
第一次使用初始化,编辑配置
crontab -e
查看当前运行的配置
crontab -l
重启服务
systemctl restart cronor
or
/etc/init.d/cron restart
举例:
编辑脚本
crontab -e
每分钟执行一次 脚本
* * * * * date >> /home/debian/date.date
每3分钟自行一次脚本
*/3 * * * * date >> /home/debian/date.date
重启cron
网络服务
设置静态IP地址
root@server2:~# cat /etc/network/interfacesThis file describes the network interfaces available on your systemand how to activate them. For more information, see interfaces(5).source /etc/network/interfaces.d/*The loopback network interfaceauto lo
iface lo inet loopbackauto ens33
iface ens33 inet static
address 192.168.175.128
netmask 255.255.255.0
gateway 192.168.175.2
设置dns
root@server2:~# cat /etc/resolv.conf
search localdomain server2.com #设置当前域
nameserver 192.168.175.2
nameserver 114.114.114.114
修改host文件
root@server2:~# cat /etc/host.conf
multi on
20.181.38.149 baidu.com
samba
配置文档结构
[global] #全局配置
[public] #共享文件夹
[print] #共享打印机配置
匿名访问
[global]
allow_writeable_chroot=YES #开启文件共享
[public]
comment = public #共享名称
writable = yes #允许写入
path = /share/public #共享路径
guest ok = yes #允许匿名登录
browseable = yes #允许浏览目录
create mask = 0600 #修改创建文件后的mask值
directory mask = 0700 #创建目录的mask值
本地用户登录(用户账号映射)
security=user //第101行,以user验证方式访问
[students] //自定义共享名称
comment=this is student directory! //共享描述
path=/opt/students //共享目录路径
browseable=yes //yes/no,设置共享是否可浏览,如果no则表示隐藏,需要通过“//ip/共享目录"进行访问
create mask=0644 //创建的文件权限为644
directory mask=0755 //创建的文件目录为755
valid users=zhangsan,lisi //设置允许访问共享的用户,zhangsan、lisi
write list=zhangsan //设置该共享具有写入权限的用户,
mkdir /opt/students #创建目录
chmod 777 /opt/students #修改目录权限
创建本地用户\创建smb系统用户
useradd -s /sbin/nologin zhangsan
passwd zhangsan //121212
smbpasswd -a zhangsan
smbpasswd -a lisi
pdbedit -L #查看samba用户
虚拟用户访问
创建smbuser用户文件,增加用户
vim /etc/samba/smbusers
//新增以下信息
zhangsan =stu01 stu02 stu03
修改配置文档
vim /etc/samba/smb.conf
security=user
username map=/etc/samba/smbusers //虚拟用户文件的映射
创建虚拟用户
smbpasswd -a zhangsan