网络文件共享服务

FTP服务 NFS服务 SAMBA服务

文件传输协议(FTP)

数据传输格式:二进制(默认)和文本

vsftp的端口分为两种:

命令端口:传输指令的端口,此端口为固定的端口号21

传输端口:传输数据的端口:又分为主动模式和被动模式:(主动模式为利用tcp/ip的20端口来发起请求,数据端口只有在通讯的时候才会打开,被动模式为随机端口)

两种模式:(从服务器角度去看)

主动模式::服务器主动连接 客户端(使用的是固定端口)

命令(控制):客户端:随机port — 服务器:tcp21 数据:客户端:

随机port —服务器:tcp20

被动模式:客户端主动连接服务器:(使用的是随机端口,有一定的计算公式)

227   Entering Passive Mode (192,168,175,138,224,59)

服务器数据端口为:224*256+59

ftp -A 192.168.60.4(服务器IP地址)        -A以主动模式 登陆               –p 以被动模式登陆

FTP软件介绍

服务器端软件:Wu-ftpd,Proftpd,Pureftpd,ServU,IIS

vsftpd:Very Secure FTP Daemon,CentOS默认FTP服务器

高速,稳定,下载速度是WU-FTP的两倍

ftp.redhat.com数据:单机最多可支持15000个并发

客户端访问软件:ftp,lftp,lftpget,wget,curl (其中lftpget为非交互式的下载,要安装lftp)

ftp -A ftpserver port -A主动模式 –p 被动模式

状态码:

1XX:信息                                    125:数据连接打开

2XX:成功类状态                       200:命令OK 230:登录成功

3XX:补充类                               331:用户名OK

4XX:客户端错误                       425:不能打开数据连接

5XX:服务器错误                       530:不能登录

用户认证:

匿名用户:ftp,   anonymous (在连接ftp是输入这两个其中的一个匿名帐户就可以了。linux账户里默认在安装vsftp服务时会创建一个系统用户ftp)

系统用户:Linux用户,     用户在/etc/passwd,密码/etc/shadow

虚拟用户:特定服务的专用用户,独立的用户/密码文件

 

vsftpd服务

在服务器端安装yum install vsftpd

启动服务:service vsftpd start(在centos6上)systemctl start vsftpd

查看端口是否打开21:ss -nult

在客户端安装:yum install ftp

任何账户登陆如果自己的根目录有写权限则无法登陆:(需要修改权限)

例如匿名账号登陆自己的根目录对应的服务器的目录为/var/ftp/,若ftp对other用户有写权限则无法登陆

例如系统账号登陆自己的根目录对应的服务器的目录为 /home/lv, 若lv目录对lv用户有写权限则无法登陆

匿名用户登陆:输入用户名;密码可以为空。

在浏览器上里也可以查看:ftp://192.168.60.2

QQ截图20180625200852

默认的共享文件位置:/var/ftp /pub/

ftp> ?   (可以查看ftp使用的命令)

QQ截图20180625202056

ftp> !cat /etc/passwd  (加上!可以使用linux的命令查看操作linux系统里的各种操作)

ftp> !ls /data/

ftp> ls  (不添加!则只执行查看共享目录的操作)
get:下载数据:默认下载的路径为自在哪里登陆ftp服务器时自己所在的路径

put:上传数据  :默认上传的文件路径为自在哪里登陆ftp服务器时自己所在的路径下的文件

lcd  /data/  切换自己当前所在的linux的目录

由vsftpd包提供

不再由xinetd管理 

用户认证配置文件:/etc/pam.d/vsftpd

服务脚本: /usr/lib/systemd/system/vsftpd.service

/etc/rc.d/init.d/vsftpd

主配置文件:/etc/vsftpd/vsftpd.conf (修改配置文件注意:= 前后不要有空格 )

man 5 vsftpd.conf (查看帮助文档)

登陆查看的共享文件路径:

匿名用户(映射为系统用户ftp )共享文件位置:/var/ftp

系统用户共享文件位置:用户家目录 (哪个账号登陆就对应哪个账号的家目录:/home/lv/

虚拟用户共享文件位置:为其映射的系统用户的家目录

 

使用当地时间

use_localtime=YES 使用当地时间(默认为NO,使用GMT)

listen_port=333(可以自己设定端口号;如不添加的话默认为21端口号;如果是自己设的端口号,连接服务器时,需要在后面跟上指定的端口号才可以连接上)

主动模式端口 connect_from_port_20=YES 主动模式端口为20

ftp_data_port=20 指定主动模式的端口

ftp_date_port=2020b :设定传输数据是在主动模式下的用哪个端口号来传输数据:默认使用的是tcp/ip的20端口。

 

 

匿名用户

anonymous_enable=YES 支持匿名用户 登陆(=NO不支持匿名账号的登陆)

no_anon_password=YES(默认 NO) 匿名账号登陆需要提示输入口令,口令可以为空,如果设为NO则不会提示要输入口令了。

anon_world_readable_only (默认YES)只能下载全部读 的文件(所有者;所属组;other是否都有读权限)

 

匿名用户默认是不让上传数据的。

anon_upload_enable=YES

anon_mkdir_write_enable=YES  ( 默认此两项是注释掉的,取消注释就可以了  。在32行)

通过匿名账号登陆ftp服务器对ftp服务器的默认文件夹并/var/pub/没有写全限;

还需要再服务器端的默认路径的文件夹给与访问者写的权限才可以:setfacl -m u:ftp:rwx /var/ftp/pub

但也只能再pub/下进行创建文件,再pub/的子目录又没有权限创建文件的权限的,需要的话还需重新添加权限。

anon_umask=077 指定匿名上传文件的权限umask

anon_other_write_enable=YES (添加此行可删除和修改上传的文件)

指定上传文件的默认的所有者和权限

chown_uploads=YES(默认NO)

chown_username=wang

chown_upload_mode=0644

 

Linux系统用户(默认可以上传可以下载)

guest_enable=YES 所有系统用户都映射成guest用户

useradd -d /data/ftpdir tttt     (在系统中创建一个 tttt用户并指定家目录)

guest_username=tttt   (然后将guest用户映射为自己创建的tttt用户当所有的linux里的用户登陆时系统内部都是以tttt用户登陆的且有共同的根目录/data/ftpdir/   注意ftpdir目录是有写权限的会造成用户无法登陆去掉就可以了)

local_enable=YES    是否允许linux用户登录

write_enable-YES     允许linux用户上传文件

local_umask=022      指定系统用户上传文件的默认权限

local_root=/ftproot      (指定匿名用户登录所在目录路径) 

 

禁锢所有系统用户在家目录中  (一旦禁锢例如:lv用户登陆进去,pwd显示的是“/”但本质是再“/home/lv/”路径下,禁锢之后无法lcd  /etc/…切换到其他目录上去了,但本用户对其家目录有写权限导致其无法登陆,需要将自己的根目录也就是家目录的权限去掉写权限chmod -w /home/lv)

chroot_local_user=YES(默认NO,不禁锢)禁锢系统所有用户 

禁锢或不禁锢特定的系统用户 ,与上面设置功能相反

chroot_list_enable=YES      (开启此项)

chroot_list_file=/etc/vsftpd/chroot_list   (开启此项。后面为写用户的名单列表,此文件不存在需要自己建立)

上面一项和下面两项组和使用,用法如下:

当chroot_local_user=YES时,则chroot_list中用户不禁锢

当chroot_local_user=NO时,则chroot_list中用户禁锢

 

vsftpd服务配置

wu-ftp日志:默认启用

xferlog_enable=YES (默认)启用记录上传下载日志

xferlog_std_format=YES (默认)使用wu-ftp日志格式

xferlog_file=/var/log/xferlog (默认)可自动生成 

vsftpd日志:默认不启用

dual_log_enable=YES 使用vsftpd日志格式,默认不启用

vsftpd_log_file=/var/log/vsftpd.log(默认)可自动生成 

登录提示信息

ftpd_banner=“welcome to mage ftp server”

banner_file=/etc/vsftpd/ftpbanner.txt  (当两个都存在时,此文件里的欢迎词优先级高) 

目录访问提示信息

dirmessage_enable=YES (默认)

message_file=.message(默认) 新建.message 这这文件并写上提示语句,放到你所需要登陆某个文件夹的目录下,但你打开此目录就会有.message里的提示语。

 

使用pam(Pluggable Authentication Modules)完成用户认证

pam_service_name=vsftpd

pam配置文件:/etc/pam.d/vsftpd

/etc/vsftpd/ftpusers      :  默认文件中拒绝用户登录的列表

是否启用控制用户登录的列表文件

userlist_enable=YES 默认有此设置

userlist_deny=YES(默认值)黑名单,不提示口令,NO为白名单

userlist_file=/etc/vsftpd/users_list 此为默认值

连接限制

max_clients=0 最大并发连接数 (为0 的意思是没有限制任意;要设定可以自定义设置)

max_per_ip=0 每个IP同时发起的最大连接数 (同上)

vsftpd服务指定用户身份运行 nopriv_user=nobody

传输速率:字节/秒

anon_max_rate=0 匿名用户的最大传输速率

local_max_rate=0 本地用户的最大传输速率

连接时间:秒为单位

connect_timeout=60 主动模式数据连接超时时长

accept_timeout=60 被动模式数据连接超时时长

data_connection_timeout=300 数据连接无数据输超时时长

idle_session_timeout=60 无命令操作超时时长 

 

优先以文本方式传输 (此项不需要设定,默认是以二进制方式来传输的,以文本的方式来传输容易造成对数据的损坏)

ascii_upload_enable=YES

ascii_download_enable=YES

vsftpd虚拟用户

虚拟用户: 所有虚拟用户会统一映射为一个指定的系统帐号:访问共享位置,即为此系统帐号 的家目录

(系统账号需要自己手动创建)

各虚拟用户可被赋予不同的访问权限,通过匿名用户的权限控制参数进行指定

虚拟用户帐号的存储方式:

文本的方式存储:既将用户名和密码写到文件里面(此文件还需要经过加密处理不能增删改查;如果需要增删改 则选哟重新建立文件并将原有的数据写到里面)

数据库的方式存储:既将用户名和密码写到数据库列表里(便于增删改查)

mysql库:pam要依赖于pam-mysql 包

/lib64/security/pam_mysql.so

/usr/share/doc/pam_mysql-0.7/README

 

实验:实现基于文件验证的vsftpd虚拟用户 

yum install vsftpd(服务器端)yum install ftp(客户端安装包)

1 . 创建用户数据库文件 (奇数行写用户名,偶数行写密码)

vim /etc/vsftpd/vusers.txt   (奇数行写用户名。偶数行写密码)

user1
centos
user2
centos

cd /etc/vsftpd/

db_load -T -t hash -f vusers.txt vusers.db (将新建的用户和密码的文件生成数据库类型的文件)

chmod 600 vusers.db   (更改此文件的权限,以防止其他用户查看到)

2  创建系统用户和访问的共享目录

mkdir  /data/

mkdir /data/ftp

useradd -r  -d /data/ftp -s /sbin/nologin vuser   (创建Linux账号并指定创建家目录)

chown vuser.vuser /data/ftp   (将新建的vuser的家目录的所有者和所有组都改为vuser)

chown vuser.vuser /data

chmod -w /data

chmod -w /data/ftp (如果登陆不上去查看其家目录是否是属于vuser的,而且保证根目录对vuser用户 没有写权限;此处可能重复操作了)

 

3 .创建pam配置文件

cd /etc/pam.d/

vim vsftpd.db

auth required pam_userdb.so db=/etc/vsftpd/vusers.txt
account required pam_userdb.so db=/etc/vsftpd/vusers.txt

4 . 指定pam配置文件

vim /etc/vsftpd/vsftpd.conf  (在文件最后添加如下内容)

guest_enable=YES

guest_username=vuser

pam_service_name=vsftpd.db

5、SELinux设置: 禁用SELinux 和iptables

6 .虚拟用户建立独立的配置文件 (给每个虚拟用户都创建各自的配置文件)

mkdir /etc/vsftpd/vusers.d/ 创建配置文件存放的路径

vim /etc/vsftpd/vsftpd.conf  (再次修改配置文件,将每个用户的配置文件的路径写入配置文件里)

user_config_dir=/etc/vsftpd/vusers.d/

cd /etc/vsftpd/vusers.d/ 进入此目录

vim user1创建各用户自已的配置文件(用户名要和自己的配置文件名称一样)

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES     (用户可读写,其它用户只读 )

local_root=/ftproot 登录目录改变至指定的目录

vim user2创建各用户自已的配置文件

anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES (用户可读写,其它用户只读 )
local_root=/ftproot 登录目录改变至指定的目录

systemctl restart vsftpd    (重启服务)

在客户端访问:客户端需要安装客户端软件包:yum install ftp

如果登陆不上去查看其家目录是否是属于vuser的,而且保证根目录对vuser用户 没有写权限

还有如果用户对其家目录没有写或者上传下载的权限,一方面查看其自己的单个配置文件里是否给与了其权限。另一方面去查看共享目录对虚拟用户vuser是否有其应该有的权限

 

 

 

 

NFS服务

NFS优势:节省本地存储空间,将常用的数据如:home目录,存放在一台NFS 服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使 用。

NFS服务的工作原理:将自己的共享目录共享出去,其他主机将NFS的共享目录挂载到自己本机上,不需要上传和下载数据了,

配置文件:/etc/exports,/etc/exports.d/*.exports

NFS服务主要进程:

rpc.nfsd 最主要的NFS进程,管理客户端是否可登录

rpc.mountd 挂载和卸载NFS文件系统,包括权限管理

rpc.lockd 非必要,管理文件锁,避免同时写出错

rpc.statd 非必要,检查文件一致性,可修复文件 

日志:/var/lib/nfs/

配置防火墙,开放NFS服务

• 配置NFS使用固定端口

• vim /etc/sysconfig/nfs

RQUOTAD_PORT=875

LOCKD_TCPPORT=32803

LOCKD_UDPPORT=32769

MOUNTD_PORT=892

STATD_PORT=662

STATD_OUTGOING_PORT=2020 •

防火墙除开放上述端口,还需开放TCP和UDP的111和2049共4个端口

 

NFS服务介绍   (挂在之后就可以新建文件,查看文件,不需要使用客户端登陆,也没有客户端)

软件包:nfs-utils

端口:2049(nfsd), 其它端口由portmap(111)分配 

配置文件:/etc/exports,/etc/exports.d/*.exports

相关软件包:rpcbind(必须),tcp_wrappers

NFS服务主要进程:

rpc.nfsd 最主要的NFS进程,管理客户端是否可登录

rpc.mountd 挂载和卸载NFS文件系统,包括权限管理

rpc.lockd 非必要,管理文件锁,避免同时写出错

rpc.statd 非必要,检查文件一致性,可修复文件 

日志:/var/lib/nfs/

配置防火墙

配置防火墙,开放NFS服务 •

配置NFS使用固定端口 •

vim /etc/sysconfig/nfs

RQUOTAD_PORT=875

LOCKD_TCPPORT=32803

LOCKD_UDPPORT=32769

MOUNTD_PORT=892 STATD_PORT=662

STATD_OUTGOING_PORT=2020 •

防火墙除开放上述端口,还需开放TCP和UDP的111和2049共4个端口

挂载:

mount nfsserverIP:/(共享出去的路径) /(本地要挂载的路径)

exportfs 

–v 查看本机所有NFS共享 

–r 重读配置文件,并共享目录 

–a 输出本机所有共享 

–au 停止本机所有共享 

showmount -e hostname

每个条目指定目录导出到的哪些主机,及相关的权限和选项

默认选项:(ro,sync,root_squash,no_all_squash) •

ro,rw 只读和读写 •

async 异步,数据变化后不立即写磁盘,性能高 •

sync(1.0.0后为默认)同步,数据在请求时立即写入共享 •

no_all_squash (默认)保留共享文件的UID和GID •

all_squash 所有远程用户(包括root)都变成nfsnobody •

root_squash (默认)远程root映射为nfsnobody,UID为65534,早期版本 是4294967294 (nfsnobody)

no_root_squash 远程root映射成root用户 •

anonuid和anongid 指明匿名用户映射为特定用户UID和组GID,而非 nfsnobody,可配合all_squash使用

NFS相关的挂载选项:

fg(默认)前台挂载,

bg后台挂载 hard(默认)持续请求,

soft 非持续请求 intr 和hard配合,请求可中断 r

size和wsize 一次读和写数据最大字节数,rsize=32768

_netdev 无网络不挂载

示例: mount -o rw,nosuid,fg,hard,intr 172.16.0.1:/testdir /mnt/nfs/ 

开机挂载:/etc/fstab 172.16.0.1:/public /mnt/nfs nfs defaults 0 0

 

实验:实现NFS服务(多台http服务器)

实验拓扑结构图:

新建位图图像

wordpress 博客搭建在两台http服务器主机上,均衡负载。word press的数据挂载到NFS共享服务器上,可以提高http服务器的性能节省空间。

NFS服务器又将数据存放到一台装有数据库的服务器上

 

 

具体实验过程:

1 .在第一台http服务器上装包:yum install httpd php-fpm php-mysql

在第二台http服务器上装相同的包:yum install httpd php-fpm php-mysql

mount 192.168.60.21:/data/wordpress /var/www/html/(挂载共享服务器上的wordpress到自己的http服务上:在第一台http服务器上做)

mount 192.168.60.21:/data/wordpress /var/www/html/(挂载共享服务器上的wordpress到自己的http服务上:在第二台http服务器上做)

(如果要永久保存需要写到/etc/fstab 文件里格式:如下)

(192.168.60.21:/data/wordpress /var/www/html/        nfs       default     0   0)

在两台http服务器主机创建新的配置文件:(两台服务器各做一遍)

vim /etc/httpd/conf.d/fcgi.conf

DirectoryIndex index.php 
ProxyRequests Off ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/html/$1

(因为wordpress的目录已经挂载到本机了所以地址就指定本机的地址就可以了)

systemctl start httpd php-fpm  (两台机器启动服务)

 

 

2 . 在nfs共享服务器上:(如果机器上没有此服务需要安装包:nfs-utils)

mkdir /data/ (新建文件夹供wrodpress软件使用)

将wordpress-4.9.4-zh_CN.tar.gz包上传到本机上

tar -xvf wordpress-4.9.4-zh_CN.tar.gz -C /data/  (将包解压到此目录下)

vim /etc/exports   (编辑nfs的配置文件将wordpress目录共享出去)

/data/wordpress 192.168.60.0/24(rw)  (添加此行)

systemctl start nfs-server  (启动nfs服务)

exportfs -r   (让此配置文件生效)

exportfs -v   (查看共享出去的列表)

 

3 . 在数据库主机上的操作:

yum install mariadb-server     ( 安装数据库包)

systemctl start mariadb             (启动服务)

MariaDB [(none)]> create database wpdb;(创建库给wordpress使用)

grant all on wpdb.* to wpuser@’192.168.60.%’ identified by ‘centos’;(授权并创建用户式wordpress能连接数据库)

进入到NFS服务器的主机上去修改wordpress的配置文件让其数据能够连接到数据库上。

cd /data/wordpress

cp wp-config-sample.php wp-config.php (复制配置文件)

vim wp-config.php  (修改配置文件)

QQ截图20180626201028

此时已经完成通过浏览器访问: 192.168.60.4和192.168.60.20都可以访问了

 

小结:1 .如果http服务器上没有安装nsf服务是不能够挂载到nsf服务器的共享文件目录上的

2.  在数据库授权账号时,授权的机器是装有php-fpm包的两台http服务器。本质是php-fpm包装到哪台机器就授权哪台机器从本数据库,传输内容。

3 . 先做好2和3两步再去配置1的http的服务和php-fpm服务的配置文件。

4 .可以通过在配置一台dns解析的主机达到负载均衡的目的。可参考DNS解析那一章来进行配置DNS服务

 

 

 

SAMBA服务   (yum install samba 安装服务   systemctl start smb启动服务)

服务的端口号:139;445

客户端访问:

smbclient -L 182.168.60.4   -U   lv   (查看远程smb服务器上的共享文件列表,此用户是远程smb服务器上的用户名)

smbclient     // 182.168.60.4/lv   -U  lv     (登陆远程smb服务器的共享文件目录:或者)

smbclient    //182.168.60.4/lv     -U   lv%123456   (还可以将密码写在此处,但会泄露密码如果不写回车的话会提示 你要输入密码)

在windows里的运行输入:\\192.168.60.2\就可以查看smb用户的共享文件

默认共享文件的路径为每个用户的家目录  /home/lv

 

挂载:

mount -o username=lv,password=centos //192.168.60.1/tools   /mnt/vin    (smb可以实现挂载,红色标注的地方为共享smb服务器的用户名,密码,以及共享的文件路径,以谁的名字来挂载得到的就是谁的权限)

挂载之后切换到lv用户就可以创建文件

写入到文件里永久挂载:/etc/fstab/

// 192.168.60.1/toos       /mnt/vin username=test,password=centos      0 0   (但这种挂载会暴露出密码)

还可以如下面这样写:

// 192.168.60.1/toos /mnt/vin     credentials=/etc/user.txt     0 0       (在/etc/新建文件user.txt并将用户名和密码写入到里面去也是可以的)

vim   /etc/user.txt

username=lv

password=centos

chmod 600 /etc/user.txt(为了安全可以将此文件设定权限,只限定root用户访问)

 

SAMBA的功能:

• 共享文件和打印,实现在线编辑

• 实现登录SAMBA用户的身份认证

• 可以进行NetBIOS名称解析

• 外围设备共享 

计算机网络管理模式

• 工作组WORKGROUP:计算机对等关系,帐号信息各自管理

• 域DOMAIN:C/S结构,帐号信息集中管理,DC,AD

相关包

Samba 提供服务器端的包

Samba-client 客户端访问的包

samba-common 通用软件

cifs-utils smb客户端工具

samba-winbind 和AD相关

相关服务进程:

smbd 提供smb(cifs)服务 TCP:139,445

nmbd NetBIOS名称解析 UDP:137,138

主配置文件:/etc/samba/smb.conf (此配置文件不是安装samba服务生成的,依赖此包生成samba-common-4.6.2-8.el7.noarch)

帮助参看:man smb.conf

语法检查: testparm [-v] [/etc/samba/smb.conf] 

客户端工具:smbclient,mount.cifs

每个smb用户的共享目录的路径就是其用户的家目录:/home/smb1

SAMBA服务器配置

[global] 服务器通用或全局设置的部分 

特定共享设置:

[homes] 用户的家目录共享

[printers] 定义打印机资源和服务

[sharename] 自定义的共享目录配置

宏定义:

%m 客户端主机的NetBIOS名          %M 客户端主机的FQDN

%H 当前用户家目录路径                  %U 当前用户用户名

%g 当前用户所属组                            %h samba服务器的主机名

%L samba服务器的NetBIOS名        %I 客户端主机的IP

%T 当前日期和时间                            %S 可登录的用户名

workgroup 指定工作组名称 

server string 主机注释信息 

netbios name 指定NetBIOS名 

interfaces 指定服务侦听接口和IP

hosts allow 可用“,” ,空格,或tab分隔,默认允许所有主机访问,也可在每个共享独立配置, 如在[global]设置,将应用并覆盖所有共享设置

hosts deny 拒绝指定主机访问

config file=/etc/samba/conf.d/%U 用户独立的配置文件 

Log file=/var/log/samba/log.%m 不同客户机采用不同日志 

max log size=50 日志文件达到50K,将轮循rotate,单位KB

Security三种认证方式:

share:匿名(CentOS7不再支持)

user:samba用户(采有linux用户,samba的独立口令)

domain:使用DC(DOMAIN CONTROLLER)认证

passdb backend = tdbsam 密码数据库格式

samba用户须是Linux用户,建议使用/sbin/nologin

实现samba用户: 包:samba-common-tools 工具:smbpasswd pdbedit

管理SAMBA用户

添加samba用户:(   pdbedit –L 列出本机所有的smb账号)

useradd -s /sbin/nologin smb1    (首先要创建Linux账号)

smbpasswd -a smb1         (把本机账号变成smb账号)

/var/lib/samba/private/passdb.tdb (创建的smb账号存放在此文件夹下,是数据库的文本文件无法查看)

修改用户密码

删除用户和密码

smbpasswd -x smb3

查看samba用户列表

/var/lib/samba/private/passdb.tdb

pdbedit –L –v

查看samba服务器状态

smbstatus

 

配置目录共享

comment   :注释信息 

path   :所共享的目录路径 

public   :能否被非smb用户访问共享文件目录,默认no,(public = yes   所有的用户都能访问)

browsable  : 是否允许所有用户浏览此共享,默认为yes,        no为隐藏 

writable=yes 可以被所有用户读写,默认为no (writeable = no  不可写)

read only=no 和writable=yes等价,如与以上设置冲突,放在后面的设置生 效,默认只读

 

指定某些用户可读,某些用户可写

write list 三种形式:用户,@组名,+组名,用,分隔(只有放在后面的特定用户才能写)

如writable=no,列表中用户或组可读写,不在列表中用户只读

write list  smb1   或者可以写组名:write list +staff

 

限定特别用户的访问

valid users 特定用户才能访问该共享,如为空,将允许所有用户,用户名之间 用空格分隔

valid  users=  smb1 smb2    (只允许smb1 smb2 两个用户访问共享目录)
如果用户多的话可以用组的方式来限定访问的用户:

write list= +staff   (在Linux中新建组groupadd  staff 然后将特定的用户加入到此组当中就可以了usermod -aG  staff  smb1 )

 

自定义共享的目录路径 (默认共享文件的路径为每个用户的家目录 /home/smb1)

新建自定义的共享目录:  mkdir  /data/tools/

建立smb用户:

useradd -s /sbin/nologin smb1 (首先要创建Linux账号)
smbpasswd -a smb1 (把本机账号变成smb账号)

编辑/etc/samba/smb.conf此配置文件指定共享目录的地址及权限

[share]       (共享名)

comment = smba share (描述信息)

path =  /data/tools      (定义共享的真实路径tools 为共享的文件夹)

writable = yes  (将此共享文件夹赋予写权限,smb用户就可以在里面上传文件)

(但此时还是没有写权限因为/data/tools/目录对其他用户是没有写权限的还需要更改此目录的权限

chmod 777 /data/tools/;可以添加最大权限,只通过writables 来控制用户的权限

systemctl restart smb  (重启服务)

在windows里访问://192.168.60.2/share

在centos :smbclient //192.168.60.20/share -U smb1%centos(进行访问)

现在已经可以上传和下载了。

 

实现不同用户登陆进来访问不同的共享目录  

新建 smb用户:smb1   smb2   smb3

首先定义主共享目录:新建共享目录:mkdir  /data/tools/

编辑/etc/samba/smb.conf此配置文件指定主共享目录的地址及权限

[share] (共享名)
comment = smba share (描述信息)
path = /data/tools (定义共享的真实路径tools 为共享的文件夹)

然后在主共享目录下新建两个目录

mkdir /data/tools2/   (新建目录给smb2用户访问,如果smb2用户相对其有写权限,需要更改此目录的权限设置,还要再自己的配置文件里添加允许写writable = yes 的设置)

mkdir /data/tools3/ (新建目录给smb3用户访问)

mkdir /etc/samba/conf.d/   (新建用户配置文件的文件夹)

cd /etc/samba/conf.d/

vim smb2

[share]
path=/data/tools2
writeable=yes

vim smb3
[share]
path=/data/tools3
writeable=yes

没有指定的用户默认还会访问/data/tools/目录,而限定的用户smb2 和smb3则会访问各自的共享目录。至此实现了不同用户访问不同共享目录的结果

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/101716

发表评论

登录后才能评论

This site uses Akismet to reduce spam. Learn how your comment data is processed.

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1823388528@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班