网络文件共享

1 存储方式

DAS: Direct Attach Storage 直接附件存储
SAN: Storage Area Network 存储区域网络
NAS: Network Attach Storage 网络附件存储

2 文件共享服务

应用层 ftp 可以实现跨平台
内核级 nfs 不能实现跨平台
window linux 共享服务 samba
在linux实现CIFS(SMB)协议 通用网络文件系统

3 FTP

File Transfer Protocol 早期的三个应用程序之一

ftp是C/S架构的文件共享服务
  连接的方式:
    命令连接 文件管理类命令 持久性的连接
    数据连接 ftp数据传输 按照需求创建及关闭连接
       数据传输的格式
         文本: 在传输的过程可能进行格式转换
         二进制传输: 不进行格式转换(尽量使用此方法)
      主动 有服务器发起数据连接
         命令
           client: port --> server:21
         数据连接
           server 20/tcp --> client port
      被动 由客户端创建连接
         命令
           client: port --> server:21
           服务器传过来两个数字 n,m 让客户端连接服务器n*256+m的端口,进行数据连接
         数据连接
           client port --> server n*256+m
  • FTP用户认证
虚拟用户: 仅用于特定服务的资源,也是转化为系统用户
  nsswitch: network server switch 名称解析框架
    配置文件 /etc/nsswitch.conf
    模块: /lib64/libnss*,/usr/lib64/libnss*
  pam pluggable authentication module 可插拔认证模块 /lib64/security
    配置文件 /etc/pam.conf  /etc/pam.d/*
系统用户: 默认使用系统账号进行认证,不可以修改,以虚拟用户进行认证,需要开启
    guest_enable=yes
    guest_username=username #系统账号
匿名用户: 也是映射为系统用户ftp
  • 实现将虚拟用户存于MySQL数据库中
1 因为在centos7中不直接提供pam_mysql的rpm包,所以需要编译安装pam_mysql的包,如果是在centos6,可以直接安装 pam_mysql
  yum install mysql_server mysql_devel pam_devel
  yum groupinstall "Development tools"
  编译安装pam_mysql
    a tar xf pam_mysql-0.7RC1.tar.gz
    b cd pam_mysql-0.7RC1
    c ./configure --with-mysql=/usr --with-pam=/usr --with-openssl --with-pam-mods-dir=/lib64/security
    d make && make install
2 创建数据库,授权,创建表,插入用户
  a: create database vsftpd;
  b: grant select on vsftpd.* to vsftpd@'172.18.%.%' identified by 'vsftpd'
  c: create table users(id int unsigned not null auto_increment primary key,
name varchar(50) binary not null,password char(48) binary not null);
  d: insert into users values ('tom',password('tom')),('jerry',password('jerry'));
3 创建编辑pam的配置 /etc/pam.d/vsftpd.mysql
  auth required /lib64/security/pam_mysql.so user=vsftpd passwd=vsftpd host=IP db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
  account required /lib64/security/pam_mysql.so user=vsftpd passwd=vsftpd host=IP db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
4 创建虚拟用户对应的系统账户
  useradd -r -s /sbin/nologin -d /ftpserver/pub vuser 可以设置vuser的家目录
5 编辑vsftp的配置文件/etc/vsftpd/vsftpd.conf
  anonymous_enable =yes  虚拟用户是通过匿名用户登陆的
  local_enable=yes   # 即便开启系统用户也不能登录
  write_enable=yes 本地用户可以上传,删除目录或文件
  anon_upload_enable=no 全局设置匿名用户是否可以上传文件
  anon_mkdir_write_enable=no 全局设置匿名用户不能创建目录
  guest_enable=yes
  guest_username=vuser
  pam_service_name=vsftpd.mysql
6 可以设置不同的用户有不同的权限
  1 在/etc/vsftpd/vsftpd.conf 文件添加
    user_config_dir=/etc/vsftpd/vuser_config/
  2 创建vuser_config 文件夹
    mkdir /etc/vsftpd/vuser_config/
    touch tom jerry
  3 在每个文件中自己定义权限访问控制
    anon_upload_enable=yes|not允许匿名用户上传文件
    anon_mkdir_write_enable=yes|no 具有创建文件夹的权限
    anon_other_write_enable=yes|no 具有删除权限

2 NFS

NFS: Network File System,在linux的内核实现

RPC: Remote Process Call 远程过程调用,函数调用
  一部分功能由本地完成,一部分功能由远程主机完成,返回给本机
CentOS 6 NFS的配置
  NFS的进程:
    nfsd nfs的守护进程,监听在2049/tcp,2049/dup
    mount 验证远程的有效性 随机端口
    idmapd 用户的请求 文件 属主 属组的映射关系 也监听在随机端口上
    portmapper 需要启动 不是nfs自带的,系统所有,报告rpc的信息 111/tcp,111/udp,可以使用此服务,进行端口的访问
   quota 磁盘配额的相关进程
   注意可以在nfs的配置文件设置nfs的一些工作特性/etc/sysconfig/nfs
CentOS6和CentOS7
  CentOS6 的安装
    a yum install nfs-utils
    b 编辑/etc/exports 文件
    c 启动服务,需要先启动rpcbind,然后再启动nfs
       注意,在/etc/sysconfig/network中需要有NETWORKING=yes的配置,否则nfs不能启动
  CentOS7 的安装
    a yum install nfs-server
    b 编辑/etc/exports 文件
    c 直接可以启动nfs,因为systemd的特性,会将依赖到的服务启动
/etc/exports 的格式:
  directory  client1(option...) client2(option)
  client: IP FQDN Domain Network
  options
   secure 安全
    rw 读写
    async 异步
    root_squash 挤压管理员权限
    no_root_squash 不挤压管理员的权限
    all_squash 全部挤压
    no_all_squash 全部不压榨
    anonuid=id_num 将用户压榨成某个用户
    anongid=id_num 将组压榨成某个组
    anonuid和anongid 这两个匿名uid和gid修改特定用户和组账号
    fsid: 定义根
    crossmnt: 允许跨主机挂载
showmount 查看nfs文件共享的工具
  -e host 查看对应主机的所有共享的nfs文件系统  本机或非本机都可以使用
  -a host 查看哪个文件系统被别人挂载
  -d host 查看哪个文件系统被共享
exports
  -a 所有
  -r 重新读取配置文件
  -u 关闭所有的共享

3 samba

smb Service Message Blocl 基于CIFS(common internet file system)协议
监听端口 137/udp 138/udp 139/tcp 445/tcp
1 安装 yum install samba
2 启动脚本/etc/init.d/nmb(名称解析),/etc/init.d/smb(smaba的主服务)
3 编辑配置文件/etc/samba/smb.conf
4 添加系统账号到samba的账号 smbpasswd -a username
smbclient的客户端工具:
  smbclient -L IP
  smbclient -L IP -U username%password
基于挂载的方式访问
  mount -t cifs //server/share_name /mount_point -o username=USERNAME,password=PASSWORD
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,723评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,485评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,998评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,323评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,355评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,079评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,389评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,019评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,519评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,971评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,100评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,738评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,293评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,289评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,517评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,547评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,834评论 2 345

推荐阅读更多精彩内容