在linux里面实现资源的共享

文件传输协议ftp

ftp数据通道分为主动模式端口是20,被动模式 端口随机。命令通道的端口是21

客户端连接默认是被动连接

vsftpd 非常安全的ftp软件

ftp根目录不允许有写权限

/var/ftp/pud 共享目录 /var/ftp 根目录

yum install vstfpd -y

备份主配置文件

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd//vsftpd.conf.bak

启动ftp服务

[root@contes7 ~]# systemctl start vsftpd.service

[root@contes7 ~]# systemctl enable vsftpd.service

clip_image002

查看21端口有没有打开

ss -ntl

clip_image004

用另一台客户端打开

ftp 192.168.63.131

clip_image006

用户名是ftp

密码:随便写,也可以不写

网络共享服务_第1张图片

ftp> help 查看能用的命令

匿名用户不能上传文件,不能下载文件

!代表本机运行

clip_image010

put 上传文件

get 下载文件

lcd 切换文件夹

clip_image012

clip_image014

用主动模式,在客户端连接,服务器主动三次握手。端口是20

ftp -A 192.168.63.131

clip_image016

在服务器端

命令模式的端口是21,如果要更改21端口要在配置文件加一行。一般默认不用启用

vim /etc/vsftpd/vsftpd.conf

listen_port=2121

clip_image018

更改完成以后重启服务

systemctl restart vsftpd

clip_image020

更改完端口,在客户端连接要加端口

ftp 192.168.63.131 2121

clip_image022

主动模式的端口是20,在配置文件也可以更改端口

vim /etc/vsftpd/vsftpd.conf

ftp_data_port=2020

clip_image024

启动服务

systemctl restart vsftpd

测试在客户端用主动模式连接

ftp -A 192.168.63.131

clip_image026

这是服务器端的共享目录

cd /var/ftp/pub/

clip_image028

被动模式的端口是随机的,也可以定义一个最大和最小范围

vim /etc/vsftpd/vsftpd.conf

pasv_min_port=6000 被动模式端口最小是6000

pasv_max_port=6010 被动模式端口最大是6010

clip_image030

有一些服务器不能访问ftp访问可以更改被动模式的端口

ftp的客户端工具有时区问题

在配置文件加一行

vim /etc/vsftpd.conf

默认是no,只有ftp客户端会存在时间问题,浏览器没问题

use_localtime=NO

clip_image032

如果这样修改有些浏览器会存在一定的时间差

use_localtime=YES 使用当地时间

clip_image034

支持匿名用户

vim /etc/vsftpd/vsftpd.conf

anonymous_enable=YES 支持匿名用户

no_anon_password=YES 支持匿名用户不用输入密码

clip_image036

禁止匿名用户

anonymous_enable=NO

clip_image038

禁止匿名用户以后,可以用本地系统用户连接,支持上传下载

clip_image040

put 上传文件

get 下载文件

lcd 切换文件夹

clip_image041

匿名用户默认不能上传下载,不能创建文件夹,可以在配置文件修改

vim /etc/vsftpd.conf

anon_upload_enable=YES 匿名上传

anon_mkdir_write_enable=YES

clip_image043

授权共享目录pud目录的写权限,

setfacl -R -m u:ftp:rwx /var/ftp/pub/

clip_image045

如果想支持删除,可以找配置文件加一行

vim /etc/vsftpd/vsftpd.conf

anon_upload_enable=YES

anon_other_write_enable=YES

clip_image047

指定上传文件的默认的所有者为wang,并更改权限为644

vim /etc/vsftpd/vsftpd.conf

# recommended!

chown_uploads=YES

chown_username=wang

chown_upload_mode=0644

clip_image049

所有的系统用户都映射成guset一个用户

2018/06/25 10:05

创建一个用户,并指定家目录

useradd -r -d /data/ftpdir testftp

clip_image051

更改家目录根的写权限。ftp的根目录不允许有写权限

chmod -w /data/ftpdir/

clip_image053

给根目录加读执行权限

chmod +rx /data/ftpdir

将所有的用户,映射成testftp用户

vim /etc/vsftpd/vsftpd.conf

anon_upload_enable=YES

anon_other_write_enable=YES

guest_enable=YES

guest_username=testftp

clip_image055

默认允许用系统用户的身份登录

vim /etc/vsftpd/vsftpd.conf

local_enable=YES

clip_image057

创建一个非匿名用户登录的访问目录

mkdir /ftproot

clip_image059

vim /etc/vsftpd/vsftpd.conf

# When SELinux is enforcing

local_root=/ftproot

clip_image061

创建子文件夹

mkdir /ftproot/upload

clip_image063

根目录ftproot目录不能有写权限

创建一个子文件夹,给子文件夹权限

setfacl -m u:ftp:rwx /upload

ftp用系统账户登录,可以切换到/etc/文件夹,get下载文件,非常的不安全

将一个用户固定在一个目录,这个用户只能访问这个目录,不能切换到其他目录

禁锢目录

在配置文件启用禁锢目录,全部用户禁锢

chroot_local_user=YES

#chroot_list_enable=YES

clip_image065

要取消用户的的写权限才能访问,用户的家目录

chmod -w /home/wang

可以指定那些用户不禁锢

chroot_local_user=YES 所有人禁锢

chroot_list_enable=YES

# (default follows)

chroot_list_file=/etc/vsftpd/chroot_list 不禁锢用户的文件

clip_image067

vim /etc/vsftpd/chroot_list

wang

指定禁锢的用户

chroot_local_user=NO 所有人不禁锢

chroot_list_enable=YES

# (default follows)

chroot_list_file=/etc/vsftpd/chroot_list 禁锢用户的文件

clip_image069

wu-ftp日志功能默认启用

tail /var/log/xferlog -f

clip_image071

vsftpd日志,是vsftpd的日志,默认不启用

在配置文件修改

vim /etc/vsftpd/vsftpd.conf

在文件的末尾加

dual_log_enable=YES

clip_image073

上传下载测试

查看日志

tail /var/log/vsftpd.log

clip_image075

客户端ftp登录的时候有提示信息提示

vim /etc/vsftpd.conf

# You may fully customise the login banner string:

ftpd_banner=Welcome to blah FTP service.

clip_image077

也可以用文件方式提示信息

# You may fully customise the login banner string:

ftpd_banner=Welcome to blah FTP service.

banner_file=/etc/vsftpd/banner.txt

clip_image079

在文件中写入提示信息,也可以在提示符加颜色

vim /etc/vsftpd/banner.txt

^[[1;31mwelcome to ftp server^[[0m

^[[1;32mwww.magedu.com^[[0m

clip_image081

提示这个目录是干什么用的

[root@contes7 pub]# mkdir upload

[root@contes7 pub]# mkdir tools

[root@contes7 pub]# mkdir sources

clip_image083

可以在目录里面创建一个.message文件起到提示作用。可以加颜色

[root@contes7 upload]# cat > .message

^[[1;5;31mupload dir^[[0m

clip_image085

vsftpd调用pma模块了

pam_service_name=vsftpd

clip_image087

将用户放入这个文件就是拒绝访问,相当黑名单

vim /etc/vsftpd/ftpusers

clip_image089

root用户默认禁用,因为root的口令是明文的

网络共享服务_第2张图片

拒绝用户登录,黑名单

cat /etc/vsftpd/user_list

clip_image093

也可以将这个变成白名单,只有这个目录里面的用户才能访问

vim /etc/vsftpd/vsftpd.conf

# Make sure, that one of the listen options is commented !!

listen_ipv6=YES

userlist_deny=NO

网络共享服务_第3张图片

限制用户连接数

vim /etc/vsftpd/vsftpd.conf

最多几个人连接

max_clients=1

clip_image097

限制每个客户端最多连接几次

max_per_ip=1

clip_image099

限制下载的速度

vim /etc/vsftpd/vsftpd.conf

本地用户

anon_max_rate=1024000

clip_image101

put 上传文件

get 下载文件

lcd 切换文件夹

clip_image103

在客户端以什么方式传输数据

可以切换模式,可以互相切换

ftp 192.168.63.131

ftp> binary 建议用二进制传输数据

网络共享服务_第4张图片

binary 二进制模式。用二进制模式在windows下载linux的文件,不转换格式,还是源文件的大小

ascii 文本模式。 用文本模式在windows下载,会自动转换格式,有可能破坏文件

最好用二进制传输,不会破坏文件

抓包

tcpdump -nn port 21 -i ens33

clip_image107

FTP基于加密

查看是否支持加密库

ldd /usr/sbin/vsftpd

libssl.so.10 => /lib64/libssl.so.10 (0x00007f80d627c000) 可以看见这一行

clip_image109

创建证书

cd /etc/pki/tls/certs/

clip_image111

自签名证书

make ftp.pem

clip_image113

查看证书

openssl x509 -in ftp.pem -noout -text

clip_image115

vim /etc/vsftpd/vsftpd.conf

ssl_enable=YES

allow_anon_ssl=NO

force_local_logins_ssl=YES

force_local_data_ssl=YES

rsa_cert_file=/etc/pki/tls/certs/ftp.pem

clip_image117

重新启动服务

systemctl restart vsftpd

2018/06/25 12:03

网络共享服务_第5张图片

虚拟用户

不同的人不同的权限,不同的目录

1.把虚拟用户信息存放到文件中

建立虚拟用户文件

vim vsftpduser

clip_image121

奇数行用用户名

偶数行是口令

ftpuser1

centos

ftpuser2

centos

ftpuser3

centos

网络共享服务_第6张图片

转换成db后缀的文件,用哈希算法把文本文件转换成数据库格式

db_load -T -t hash -f vsftpusers vsftpusers.db

clip_image125

因为安全,增加权限

chmod 600 vsftpusers.db

clip_image127

删除文本文件

rm -f vsftpusers

clip_image129

创建系统账号,把虚拟用户映射成系统账户,

useradd -r -d /data/ftp -s /sbin/nologin vuser

clip_image131

mkdir /data/ftp

chown vuser.vuser /data/ftp/

chmod -w /data/ftp/ 取消根目录的读权限

clip_image133

通过pam模块创建一个文件

cd /etc/pam.d/

clip_image135

vim vsftpd.db

clip_image137

auth required pam_userdb.so db=/etc/vsftpd/vsftpusers

account required pam_userdb.so db=/etc/vsftpd/vsftpusers

clip_image139

在ftp的配置加对应的一行,这样就可以知道虚拟用户的位置

vim /etc/vsftpd/vsftpd.conf

listen_ipv6=YES

guest_enable=YES

guest_username=vuser

pam_service_name=vsftpd.db

clip_image141

关于虚拟用户的配置文件,放在什么地方

user_config_dir=/etc/vsftpd/vnsers.d

clip_image143

[root@contes7 pam.d]# mkdir /etc/vsftpd/vusers.d

[root@contes7 pam.d]# cd /etc/vsftpd/vusers.d/

clip_image145

配置文件

vim ftpuser1

clip_image147

2018/06/25 14:23

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

clip_image149

更改目录权限

setfacl -R -m u:vuser:rwx /data/ftp/upload

clip_image151

将另一个虚拟用户,存放到另一个目录

mkdir -p /data2/ftp

touch /data2/ftp/data2.txt

vim /etc/vsftpd/vusers.d/ftpuser2

local_root=/data2/ftp

clip_image153

第二种,将虚拟用户放入数据库

原来连接数据库

clip_image155

解压

tar xf pam_mysql-0.7RC1.tar.gz

clip_image157

cd pam_mysql-0.7RC1/

安装开发包组

yum groupinstall "development tools" -y

clip_image159

安装数据库的依赖包

yum install mariadb-server mariadb-devel pam-devel -y

clip_image161

2018/06/25 14:49

./configure --with-pam-mods-dir=/lib64/security

make -j 2 && make install

启动数据库服务

systemctl start mariadb

clip_image163

创建数据库

create database vsftpd;

clip_image165

切换数据库

use vsftpd;

clip_image167

创建表

create table vsftpd (id int auto_increment primary key ,name char(20),pass char(48));

clip_image169

插入数据

insert vsftpd(name,pass) values('ftp1',password('centos')),('ftp2',password('magedu'));

clip_image171

创建连接数据库的用户

grant all on vsftpd.* to vsftpd@'192.168.63.%' identified by 'centos';

clip_image173

创建虚拟用户的文件

cd /etc/pam.d/

clip_image175

2018/06/25 15:00

vim /etc/pam.d/vsftpd.mysql

auth required pam_mysql.so user=vsftpd passwd=centos host=192.168.63.131 db=vsftpd table=vsftpd usercolumn=name passwdcolumn=pass crypt=2

account required pam_mysql.so user=vsftpd passwd=centos host=192.168.63.131 db=vsftpd table=vsftpd usercolumn=name passwdcolumn=pass crypt=2

修改vsftpd的配置文件

vim /etc/vsftpd/vsftpd.conf

guest_enable=YES

guest_username=vuser

pam_service_name=vsftpd.mysql

user_config_dir=/etc/vsftpd/vnsers.d

虚拟用户的配置文件

cd /etc/vsftpd/vusers.d/

vim /etc/vsftpd/vusers.d/ftp1

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

vim /etc/vsftpd/vusers.d/ftp2

local_root=/data3/ftp

重启服务

systemctl restart vsftpd

#########################################################################################################################################################3

NFS

适合在局域网使用

网络文件系统

rpm -ql nfs-utils

nfs由于端口是动态的,经常变动,所以要依赖rpcbind,rpcbind的端口是固定的111

rpcbind 被rpc依赖,把动态端口做统一管理,但动态端口变动的时候向rpcbind报告

启动rpcbind

exportfs -r 重读配置文件,相当重启服务

exportfs -v 查看所有共享目录

exportfs -au 临时取消所有共享

exportfs -a 恢复共享

systemctl start rpcbind

clip_image177

查看rpcbind端口

ss -ntl

clip_image179

启动nfs服务

systemctl start nfs-server centos7

service nfs start centos6

查看当前nfs涉及到的端口号

rpcinfo -p

网络共享服务_第7张图片

nfs的主配置文件

vim /etc/exports

空文件

实验,将3个文件夹共享

[root@contes7 ~]# mkdir /data/nfsdir1

[root@contes7 ~]# mkdir /data/nfsdir2

[root@contes7 ~]# mkdir /data/nfsdir3

vim /etc/exports

文件夹名 共享给谁

/data/nfsdir1 * :所有人默认同步(sync)写,默认ro

/data/nfsdir2 *(rw) :所有人可读可写

clip_image183

从读配置文件

exportfs -r

查看共享文件夹

exportfs -v

clip_image185

在共享文件夹创建文件,用于分辨

[root@contes7 ~]# touch /data/nfsdir1/nfsfile1

[root@contes7 ~]# touch /data/nfsdir2/nfsfile2

[root@contes7 ~]# touch /data/nfsdir3/nfsfile3

在客户端测试

不需要安装客户端工具

查看服务器共享的目录

showmount -e 192.168.63.131

clip_image187

创建两个文件夹用来挂载

[root@zhouyafei ~]# mkdir /mnt/nfs1

[root@zhouyafei ~]# mkdir /mnt/nfs2

挂载共享目录

mount nfs服务器ip:服务器的共享目录 本机挂载的目录

挂载默认是可读可写

mount 192.168.63.131:/data/nfsdir1 /mnt/nfs1

mount 192.168.63.131:/data/nfsdir2 /mnt/nfs2

要永久挂载要挂载到文件夹vim /etc/fstab

服务器端的root也可以在客户端有相同的权限,可读可写

vim /etc/exports

/data/nfsdir1 *

/data/nfsdir2 *(rw,no_root_squash)

从读配置文件

exportfs -r

查看共享的目录

在服务器端每个用户也可以将共享放在单独的目录,单独管理

vim /etc/exports.d/nfs2.exports

/data/nfsdir2 *(rw,no_root_squash)

特定的人才能访问共享目录

vim /etc/exportfs

/data/nfsdir2 192.168.63.134(rw,no_root_squash)

从读配置文件

exportfs -r

查看共享文件夹

exportfs -v

ro 只读

rw 读写

sync 同步,发现数据立即写入,缺点性能低

async 异步,写入数据以后不会立即写入磁盘,优点性能高,缺点可能会丢数据

no_all_squash默认保留共享文件夹的UID的GID

all_squash 全压榨root权限

root_squash

压榨成自己指定的用户

vim /etc/exports.d/nfs2.exports

压榨成uid是1000的用户,1002的组

/data/nfsdir2 192.168.63.134(rw,no_root_squash,all_squash,anonuid=1000,anongid=1002)

在一个网段中,只有一个ip是读写权限,其他都是只读权限

vim /etc/exports.d/nfs2.exports

/data/nfsdir2 192.168.63.134(rw) 192.168.63.0(ro)

exportfs -au 临时取消所有共享

exportfs -a 恢复共享

****************************************************************************************************

实验利用nfs共享挂载,搭建WordPress

192.168.63.131 http1 php-fpm php-mysql mount 共享目录

192.168.63.132 http2 php-fpm php-mysql mount 共享目录

192.168.63.134 wordpress NFS共享

192.168.63.135 mysql

192.168.63.131

yum install httpd php-fpm php-mysql -y

[root@contes7 ~]# showmount -e 192.168.63.134

clnt_create: RPC: Program not registered

如果报错,在服务器端停止nfs-server和rpcbind服务在启动

挂载

mount 192.168.63.134:/data/wordpress /var/www/html/

写到配置文件

vim /etc/fstab

192.168.63.134:/data/wordpress /var/www/html/ nfs defaults 0 0

mount -a 执行挂载

vim /etc/httpd/conf.d/fcgi.conf 创建fcgi.conf文件,用来连接PHP

DirectoryIndex index.php

ProxyRequests Off

ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/html/$1

启动httpd服务和php-fpm服务

systemctl start httpd php-fpm

cd /var/www/html/

cp wp-config-sample.php wp-config.php

如果拷贝不了,更改服务器端的/data/wordpress的权限为777

define('DB_NAME', 'wpdb');

/** MySQL数据库用户名 */

define('DB_USER', 'wpuser');

/** MySQL数据库密码 */

define('DB_PASSWORD', 'centos');

/** MySQL主机 */

define('DB_HOST', '192.168.63.135');

192.168.63.132

yum install httpd php-fpm php-mysql -y

挂载

vim /etc/fstab

192.168.63.134:/data/wordpress /var/www/html/ nfs defaults 0 0

mount -a 执行挂载

vim /etc/httpd/conf.d/fcgi.conf 创建fcgi.conf文件

DirectoryIndex index.php

ProxyRequests Off

ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/html/$1

192.168.63.134

tar xf wordpress-4.9.4-zh_CN.tar.gz -C /data/ 解压到data目录下

vim /etc/exports 配置共享目录

/data/wordpress 192.168.63.0/24(rw) 共享的目录是/data/wordpress,共享的ip范围是192.168.63.0/24 权限是rw

exportfs -r 重读配置文件

exportfs -v 查看共享文件

192.168.63.135

yum install mysql

create database wpdb; 创建wpdb数据库

创建wpuser 数据库 密码是centos

grant all on wpdb.* to wpuser@'192.168.63.%' identified by 'centos';

flush privileges; 刷新权限

*************************************************************************************************

NFS挂载选项

fg 默认前台挂载 bg后台挂载

hard 如果出现网络问题,会持续的发送请求,会卡死mount命令

intr 配合hard使用,考第一断开hard

soft 如果网络出现故障,会非持续挂载,一会挂一次,不会卡死mount命令

_metdev 无网络不挂载

在客户端

自动挂载包,安装以后进入目录会自动临时挂载,过后会自动取消挂载

clip_image189

yum install autofs -y

clip_image191

挂载规则分为相对路径和绝对路径

autofs 相对路径

挂载规则 /etc/auto.master

相对路径:挂载点 /dir/subdir

分成两部分

/dir 父目录

/subdir子目录

在auto.master中只定义了父目录,不去定义具体的子目录,只写autofs子配置文件路径

子目录有一个专门的配置文件 autofs子配置文件路径

只目录完整路径

子目录相对路径

vim /etc/auto.master

/dir 子配置文件路径

实验:实现自动挂载nfs共享目录

vim /etc/auto.master

/desc /etc/ba.ca /desc指定父目录 /etc/ba.ca指定子目录所在的路径

clip_image193

vim /etc/ba.ca 配置子目录

nfs -fstype=nfs,rw 192.168.63.134:/data/wordpress

clip_image195

nfs 是子路径

-fstype=nfs 文件系统

rw 权限可读可写

192.168.63.134:/data/wordpress 要挂载的主机的共享目录

启动服务

systemctl restart autofs

测试

cd /desc/nfs

clip_image197

家目录NFS自动挂载

7 NFS服务器

17 27 客户端 nfsuser2 nfsuser1

7服务器

创建一个用户,指定家目录,指定id

useradd -d /data/nfs1 -u 2001 nfs1

useradd -d /data/nfs2 -u 2002 nfs2

共享家目录

vim /etc/exports

/data *(rw)

启动服务

systemctl start nfs-server

17客户端

useradd -u 2001 nfsuser1

useradd -u 2002 nfsuser2

挂载

clip_image199

clip_image201

只能切换到目录,才能创建文件

clip_image203

27客户端

useradd -u 2001 nfsuser1

useradd -u 2002 nfsuser2

自动挂载实现

vim /etc/auto.master

/home /etc/home.autofs

父目录 指定子目录路径

vim /etc/home.autofs

nfsuser1 -fstype=nfs 192.168.63.131:/data/nfs1

nfsuser2 -fstype=nfs 192.168.63.131:/data/nfs2

这样的话,home就会被auto接管,就会看不到家目录里面的其他用户的信息了

我们可以用绝对路径解决

绝对路径

父目录和子目录放在一起

vim /etc/auto.master

/- 子配置文件

vim 子配置文件

父目录 子目录

/- /etc/home.autofs

vim /etc/home.autofs

/home/nfsuser1 -fstype=nfs 192.168.63.131:/data/nfs1

/home/nfsuser2 -fstype=nfs 192.168.63.131:/data/nfs2

vim /etc/auto.master

clip_image205

这样就可以 cd /net 192.168.63.131

#####################################################################33

SAMBA

windwos 共享服务

windows 中 UNC路径是 \\ip\sharename 用这种方式访问共享文件夹

linux中

安装samba服务,可以和windows共享文件夹一样的功能

服务器端

yum install samba -y

在linux端访问windows共享文件

可以用Samba客户端工具

smbclient -L 192.168.63.1 windows的ip

clip_image207

访问tools共享目录

clip_image209

在linux在挂载windows网络共享文件夹

mkdir /mnt/win

clip_image211

也可以挂载到配置文件

vim /etc/fstab

clip_image213

这样密码就能被别人看见,可以将密码文件放到文件中

clip_image215

vim /etc/user.txt

username=test

password=123

为了安全,加权限

chmod 600 /etc/user.txt

在windows中

net share 查看共享

服务器端

yum install samba -y

启动服务

systemctl start smb

clip_image217

pdbedit -L 查看所有的smb账号

要想创建smb账号,要想成为linux账号

useradd -s /sbin/nologin smb1

useradd -s /sbin/nologin smb2

useradd -s /sbin/nologin smb3

clip_image219

-a 添加smb账户

smbpasswd -a smb1

smbpasswd -a smb2

smbpasswd -a smb3

不加-a 是修改现有的smb账号的密码

smbpasswd smb1

删除账号

smbpasswd -x smb3

在linux客户端

yum install samba-client -y

smbclient -L 192.168.63.131 -U smb1%123456

clip_image221

2018/06/27 11:30

起一个名字

vim /etc/samba/smb.conf

netbios name = smbsrv7

网络共享服务_第8张图片

启用服务

systemctl restart nmb

clip_image225

在windows测试

clip_image227

限制一个ip访问范围

hosts allow = 192.168.63.

clip_image229

启用日志,%I代表ip。启用日志记录级别

log file = /var/log/samba/log.%I

log level = 2

网络共享服务_第9张图片

服务器端

共享我们想共享的文件夹,默认共享的是smb的家目录

vim /etc/samba/smb.conf

[共享名]

comment=samba share dir 描述信息

path=共享的真实目录

writable = yes 可写权限,等价read only = no 如果还不可写,给共享目录加可写权限

public = no 如果是yes匿名用户可以访问,不用输入用户名密码。no 是需要验证的用户才能访问

vaild users=smb1 smb2 限定smb1和smb2用户访问,限定特定的用户访问。适合人数少的时候可以加组

vaild users=+staff 只有staff组的用户才能访问

groupadd staff 创建staff组

usermod -aG staff smb1 将smb1用户加入staff组

usermod -aG staff smb3 将smb1用户加入staff组

clip_image233

read only = yes 所有用户只有只读权限

write list=+staff 只有特定的用户才能写

不同的用户访问不同的目录,匿名用户访问在主配置文件配置的目录

mkdir /data/smb1 smb1用户访问 /data/smb1

mkdir /data/smb2 smb2用户访问 /data/smb2

mkdir /data/smb3 smb2用户访问 /data/smb3

chmod -R 777 /data

clip_image235

vim /etc/samba/smb.conf

针对特定的人指定特定的文件

config file = /etc/samba/conf.d/%U %U代表访问的用户

clip_image237

如果是smb3用户,就访问/data/smb3目录

vim /etc/samba/conf.d/smb3

[share]

path=/data/smb3

clip_image239

如果是smb2用户,就访问/data/smb2目录

vim /etc/samba/conf.d/smb2

[share]

path=/data/smb2 默认可读

如果是smb1用户,就访问/data/smb1目录

vim /etc/samba/conf.d/smb1

[share]

path=/data/smb1 默认可读

特定的用户才可写,其他只能读

clip_image241

客户端测试

smbclient -L 192.168.63.132 -U smb1%centos

smbclient -L 192.168.63.132 -U smb2%centos

特定的组才可写,其他只能读

path=/data/tools

read only = yes

write list = +staff

clip_image243

多用户挂载,挂载是一个人,访问的是不同的人

yum install samba -y

useradd smb1

useradd smb2

useradd smb3

useradd smbshare

将创建的用户加入到smb用户

smbpasswd -a smb1

smbpasswd -a smb2

smbpasswd -a smb3

smbpasswd -a smbshare

pdbedit -L 查看所有的smb账号

vim /etc/samba/smb.conf

clip_image245

stall是组 ,组里面包括smb1,smb3 smb1和smb2用户可写入,smb2只读

启动服务

systemctl start smb

systemctl start nmb

客户端查看共享的文件夹

smbclient -L 192.168.63.132

客户端创建和服务器相同的用户

useradd smb1

useradd smb2

useradd smb3

clip_image247

挂载

mount -o username=smbshare,password=centos,multiuser //192.168.63.131/share /mnt

clip_image249

访问

切换用户,切换不同的用户访问不同的权限

su - smb1

clip_image251

验证在客户端创建的用户是否是和服务器端的smb用户相同

yum install cifs-utils -y 如果提示没有cifscreds命令,安装 cifs-utils包

cifscreds add 192.168.63.131

clip_image253

测试写入

[smb1@zhouyafei ~]$ touch /mnt/f1

clip_image255

smb2用户测试

su - smb2

cifscreds add 192.168.63.131

touch /mnt/f2

clip_image257

smb3用户测试

su - smb3

cifscreds add 192.168.63.131

touch /mnt/f3

clip_image259