nfs和samba服务
  0C74k909wmgc 2023年11月13日 26 0

文件共享服务:

nfs、samba:一般用于局域网中的文件共享

ftp、http:一般用于互联网中的文件共享


nfs服务:network file share 一般用于类unix平台文件共享,该协议没有用户认证的机制,而且数据传输是明文传输,相对不安全。


nfs服务包含组件:

rpcbind:rpc协议,远程过程调用的一个协议。tcp 111

nfs-utils:控制共享哪个目录 及权限控制


步骤:

1、关闭防火墙和selinux

2、配置yum源

3、软件三步曲(查看|安装|查看软件列表)

# rpm -q rpcbind

rpcbind-0.2.0-11.el6.x86_64

# rpm -aq|grep ^nfs

nfs4-acl-tools-0.3.3-6.el6.x86_64  acl工具包

nfs-utils-1.2.3-39.el6.x86_64 工具包

nfs-utils-lib-1.1.5-6.el6.x86_64 库文件


# rpm -ql rpcbind

/etc/rc.d/init.d/rpcbind 启动脚本

/sbin/rpcbind 二进制命令

# rpm -ql nfs-utils

/etc/rc.d/init.d/nfs  启动脚本

/sbin/mount.nfs 挂载nfs文件命令  mount -t nfs

/sbin/umount.nfs 卸载

/usr/sbin/exportfs  重新加载配置文件(减少nfs服务重启的次数)

/usr/sbin/showmount 发现共享资源

/usr/share/man/man5/exports.5.gz 配置文件man文档


man 5 exports

/etc/exports 发布共享目录的配置文件

4、了解配置文件

man 5 exports

第1列:需要共享的目录

第2列:共享的主机及共享方式

共享主机:

*:所有人

192.168.1.3(ro) 10.1.1.10(rw)

192.168.1.0/24(选项)

*.uplooking.com(选项) vm1.abc.cc(选项)


共享选项:

ro:

rw:

sync:实时同步

async:异步

root_squash:

默认选项,root用户所创建的文件的属主和属组都是nfsnobody;普通用户所创建的文件在server端查看是它自己本身(uid/gid);在client端查看是nobody

no_root_squash:

root用户所创建的文件的属主和属组还是root;普通用户所创建的文件在server端查看是它自己本身(uid/gid);在client端查看是nobody

all_squash:

不管是root还是普通用户所创建的文件的属主和属组都是nfsnobody

anonuid and anongid:设置访问nfs服务的文件的uid(必须/etc/passwd)和gid


5、

需求1:共享本地/nfs/share共享给所有人,以只读方式共享

server:192.168.1.4

1>创建共享目录

mkdir /nfs/share -p

cp /etc/hosts /nfs/share


2>发布共享目录

# vim /etc/exports

/nfs/share *(ro)


6、启动服务,开机自启动

[root@vm01 ~]# service rpcbind restart

Stopping rpcbind:                                          [  OK  ]

Starting rpcbind:                                          [  OK  ]

[root@vm01 ~]# service nfs restart

Shutting down NFS daemon:                                  [FAILED]

Shutting down NFS mountd:                                  [FAILED]

Shutting down NFS quotas:                                  [FAILED]

Shutting down RPC idmapd:                                  [FAILED]

Starting NFS services:                                     [  OK  ]

Starting NFS quotas:                                       [  OK  ]

Starting NFS mountd:                                       [  OK  ]

Starting NFS daemon:                                       [  OK  ]

Starting RPC idmapd:                                       [  OK  ]

注意:先启动rpcbind再启动nfs服务


# chkconfig nfs on


7、测试验证

client:192.168.1.3


# showmount -e 192.168.1.4

Export list for 192.168.1.4:

/nfs/share *

[root@node1 Desktop]# mkdir /u01

[root@node1 Desktop]# mount.nfs 192.168.1.4:/nfs/share /u01


需求2:以rw方式共享给192.168.1.3


vim /etc/exports

/nfs/share 192.168.1.3(rw)


exportfs -rv

service nfs restart


# touch file1

touch: cannot touch `file1': Permission denied


chmod 1777 /nfs/share


实例:实现家目录的自动挂载

server:192.168.1.4  /rhome/user01~user03

client:192.168.1.3  user01~user03


步骤:

server:发布共享家目录

1、创建家目录

# mkdir /rhome/user{1..3} -p

# chmod 1777 -R /rhome/

2、发布家目录

# vim /etc/exports

/nfs/share 192.168.1.3(rw)

/rhome  192.168.1.3(rw)

3、重启服务

# service nfs restart

4、家目录环境变量文件准备

# cp -a /etc/skel/. /rhome/user1

# cp -a /etc/skel/. /rhome/user2

# cp -a /etc/skel/. /rhome/user3


client:

1、创建3个用户,不创建家目录

[root@node1 ~]# useradd -M -d /nfs/user1 user1

[root@node1 ~]# useradd -M -d /nfs/user2 user2

[root@node1 ~]# useradd -M -d /nfs/user3 user3


2、自动挂载server端的家目录

vim /etc/auto.master

/nfs /etc/auto.nfs


vim /etc/auto.nfs

user1  -rw,nfs  192.168.1.4:/rhome/user1

或者

*  -rw,nfs  192.168.1.4:/rhome/&


重启服务:

service autofs restart


3、测试验证

root@node1 ~]# su - user1

[user1@node1 ~]$ df -h

df: `/root/.gvfs': Permission denied

Filesystem                                     Size  Used Avail Use% Mounted on

/dev/mapper/vg_node1-lv_root                    18G  3.5G   13G  22% /

tmpfs                                          996M  224K  996M   1% /dev/shm

/dev/sda1                                      485M   40M  421M   9% /boot

.host:/                                        407G   83G  325G  21% /mnt/hgfs

/mnt/hgfs/soft/rhel-server-6.5-x86_64-dvd.iso  3.6G  3.6G     0 100% /iso

192.168.1.4:/nfs/share                          15G  3.4G   11G  25% /u01

192.168.1.4:/rhome/user2                        15G  3.4G   11G  25% /nfs/user2

192.168.1.4:/rhome/user3                        15G  3.4G   11G  25% /nfs/user3

192.168.1.4:/rhome/user1                        15G  3.4G   11G  25% /nfs/user


课堂练习:

1、搭建nfs服务,发布共享目录/share/zhangsan,发布给192.168.1.0/24网段所有人,以ro方式发布

2、实现家目录的自动挂载

3、练习手动挂载、开机自动挂载、autofs自动挂载远程服务的共享目录


smb(samba):

1、用于linux和windows之间的文件共享,可以实现匿名用户和本地用户之间的文件共享

2、工作原理:smb进程 控制发布共享目录与权限  tcp 139 445

          nmb进程 主要用于名称解析 udp 137 138


步骤:

1、关闭防火墙和selinux

2、配置yum源

3、软件三步曲(查看|安装|查看软件列表)

# rpm -aq|grep samba

samba-winbind-clients-3.6.9-164.el6.x86_64  客户端工具

samba-3.6.9-164.el6.x86_64  服务端

samba-client-3.6.9-164.el6.x86_64  客户端工具

samba4-libs-4.0.0-58.el6.rc4.x86_64 库文件

samba-common-3.6.9-164.el6.x86_64  工具包

samba-winbind-3.6.9-164.el6.x86_64 客户端工具


# rpm -ql samba|grep etc

/etc/logrotate.d/samba  日志轮转文件

/etc/pam.d/samba 验证机制

/etc/rc.d/init.d/nmb 启动脚本

/etc/rc.d/init.d/smb

/etc/samba/smbusers  用户别名文件

二进制命令

/usr/sbin/nmbd

/usr/sbin/smbd

# rpm -ql samba-client

/usr/bin/smbclient  客户端工具

# rpm -ql samba-common

/etc/samba  主目录

/etc/samba/smb.conf 主配置文件

/usr/bin/pdbedit 查看smb数据库用户

/usr/bin/smbpasswd 设置用户密码

/usr/bin/testparm 检测语法


4、了解主配置文件


# cat /etc/samba/smb.conf |grep -v ^#|grep -v '^;'|grep [a-z]

[global] 全局标签

workgroup = MYGROUP 工作组

server string = Samba Server Version %v  samba服务器版本描述

# logs split per machine

log file = /var/log/samba/log.%m 日志文件

# max 50KB per log file, then rotate

max log size = 50 日志大小kb

security = user 认证模式:user用户名密码;share匿名;server

passdb backend = tdbsam smb数据库 /var/lib/samba/private/

# the login script name depends on the machine name

# the login script name depends on the unix user used

# disables profiles support by specifing an empty path

load printers = yes 加载打印机

cups options = raw 打印机选项

#obtain list of printers automatically on SystemV

[homes] 局部标签  共享本地用户的家目录

comment = Home Directories  描述

browseable = no  隐藏标签

writable = yes 可写

[printers]

comment = All Printers

path = /var/spool/samba

browseable = no

guest ok = no 等于 public = yes

writable = no 等于 read only = yes

printable = yes


5、需求:无

测试验证默认情况下的共享文件

6、启动服务,开机自启动

[root@vm01 ~]# service nmb restart

Shutting down NMB services:                                [FAILED]

Starting NMB services:                                     [  OK  ]

[root@vm01 ~]# service smb restart

Shutting down SMB services:                                [FAILED]

Starting SMB services:                                     [  OK  ]

[root@vm01 ~]# chkconfig --list|grep smb

smb             0:off 1:off 2:off 3:off 4:off 5:off 6:off

[root@vm01 ~]# chkconfig --list|grep nmb

nmb             0:off 1:off 2:off 3:off 4:off 5:off 6:off

[root@vm01 ~]# chkconfig nmb on

[root@vm01 ~]# chkconfig smb on


7、测试验证

client:192.168.1.3

匿名用户查看:

# smbclient -L 192.168.1.4

Enter root's password:

Anonymous login successful

Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.9-164.el6]

匿名用户访问共享资源:

# smbclient //192.168.1.4/stu1

Enter root's password:

Anonymous login successful

Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.9-164.el6]

tree connect failed: NT_STATUS_ACCESS_DENIED


本地用户查看:

将本地用户加入到smb数据库里


# smbpasswd -a stu1

New SMB password:

Retype new SMB password:

Added user stu1.


# pdbedit -L

stu1:500:


# smbclient -L 192.168.1.4 -U stu1


本地用户访问:

# smbclient //192.168.1.4/stu1 -U stu1

Enter stu1's password:

Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.9-164.el6]

smb: \> ?



总结:

1、默认情况下,匿名用户不可以访问server端共享出来的本地用户的家目录

2、本地用户需要通过用户名和密码访问本地用户的家目录(需要将本地用户加入到smb数据库里)


需求1:匿名用户访问本地用户的家目录

vim /etc/samba/smb.conf

[homes]

       comment = Home Directories

       browseable = no

       writable = yes

       guest ok = yes  允许匿名用户访问


测试:


smb: \> ls

NT_STATUS_ACCESS_DENIED listing \*   家目录没有权限


server端:

[stu1@vm01 ~]$ ll -d

drwx------. 5 stu1 stu1 4096 Jul 29 14:45 .

[stu1@vm01 ~]$ chmod o+rx .

[stu1@vm01 ~]$ ll -d

drwx---r-x. 5 stu1 stu1 4096 Jul 29 14:45 .


smb: \> ls

 .                                   D        0  Fri Jul 29 14:45:26 2016

 ..                                  D        0  Thu Jul 28 16:29:28 2016

 .bashrc                             H      124  Tue Jul  9 21:24:50 2013

 嘿嘿                              D        0  Fri Jul 29 14:45:22 2016

 .bash_logout                        H       18  Tue Jul  9 21:24:50 2013

 .bash_profile                       H      176  Tue Jul  9 21:24:50 2013



需求2:认证模式更改为share


security = share


结果:

匿名用户可以访问查看;本地用户不可以访问查看


需求3:共享本地目录/samba/share


vim /etc/samba/smb.conf

....

[share]

       comment = share dir

       path    = /samba/share

       public  = no

       read only = yes

       browseable = yes


客户端挂载使用:

# mount.cifs -o username=stu1,password=stu1 //192.168.1.4/share /u02

开机自动挂载和autofs自动挂载  自己完成



控制读写访问:

writable = yes/no

read only = yes/no


write list = tom,@admin

read list = tom,@admin


对象的访问控制:

valid users = tom,@admin 指定可用用户

invalid users = tom,@admin 指定不可用用户

两个参数不要同时存在


网络访问控制:

hosts allow = 150.203. EXCEPT 150.203.6.66

hosts allow = 150.203.15.0/255.255.255.0

hosts allow = *.uplooking.com

hosts deny = 192.168.1.3 vm01.example.com


如果deny和allow冲突,allow优先


基于用户名密码的综合访问:

需求:

公司:uplooking

1、财务部门 /samba/upl_cw  cw01财务总监有可读可写权限,财务部门员工可读,boss01对其有管理权限。

2、市场部门 /samba/upl_sc  市场部门员工可读可写,公司员工可以查询资料,boss02对其有管理权限。

3、HR部门  /samba/upl_rs  rs01HR总监可读写,HR部门员工可以对财务部查询,vip用户可以查询

4、休息区  /samba/upl_pub  自己管理自己的文件


步骤:

1、创建相应的共享目录

mkdir /samba/upl_{cw,sc,rs,pub} -p

2、创建相应的用户组

groupadd uplooking

groupadd cw

groupadd rs

groupadd sc

useradd -g cw -G uplooking cw01

useradd -g cw -G uplooking cw02

useradd -g rs -G uplooking rs01

useradd -g rs -G uplooking rs02

useradd -g sc -G uplooking sc01

useradd -g sc -G uplooking sc02

useradd -g uplooking boss01

useradd -g uplooking boss02

useradd vip


3、更改目录相应的权限

chown root.uplooking /samba -R

chmod 770 /samba -R

chown root.cw /samba/upl_cw

chown root.rs /samba/upl_rs

chown root.sc /samba/upl_sc

chown root.uplooking /samba/upl_pub

chmod 1777 /samba/upl_pub


4、发布共享目录

[share_cw]

comment = cw01财务总监有可读可写权限,财务部门员工可读,boss01对其有管理权限

path = /samba/upl_cw

valid users = @uplooking

read list = @cw,@rs

write list = cw01,boss01


[share_rs]


comment =  HR总监可以读写,vip用户可以查询

path = /samba/upl_rs

valid users = @rs,vip

read list = @rs,vip

       write list  = rs01


[share_sc]

comment = 市场部门员工可以读写,公司员工可以查询资源,boss02对其部门管理

path = /samba/upl_sc

valid users = @uplooking

read list = @uplooking

write list = @sc,boss02


[share_pub]

comment =  自己的文件自己管理

public = yes

path = /samba/upl_pub

writable = yes

hosts allow = 192.168.1.0/24



5、语法检测

# testparm

6、将用户加入到smb数据里

# smbpasswd -a rs01

# smbpasswd -a rs02

# smbpasswd -a cw01

# smbpasswd -a cw02

# smbpasswd -a sc01

# smbpasswd -a sc02

# smbpasswd -a vip

# smbpasswd -a boss01

# smbpasswd -a boss02


7、重启服务测试验证



建议清空环境 再次操作<恢复快照>

综合练习 <lvm+acl+smb(user)>


配置samba要求如下

     1)工作组名为RHCE

     2)认证类型为user

     3) 使用lvm  建立 /dev/mapper/UPL-smb 20G  固定挂载到 /upl

     4)

       1.财务部门(/upl/cw),只有财务总监(cw01)可以修改文件,财务成员(cw02)审核文件,boss01 汇总公司财务

2.人事部门(/upl/rs),人事部门可以修改文件,公司所有员工都可以查看文件,boss02 也可以修改文件

3.市场部门(/upl/sc),只有市场总监可以修改文件,市场成员可以查询,boss03 也可以修改文件

4.vip  可以访问rs部门,sc部门

6.在公共目录(/upl/pub)自己文件自己管理

     5) 拒绝用户在192.168.1.0/24除了192.168.1.2访问该共享目录  

     6) 定义vip的别名为赵二

     7) smb密码自行定义












【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  7BPBXg9HtzBk   2023年11月19日   23   0   0 yum源vimcentos
  vxoexqgjyiCS   2023年11月19日   23   0   0 linuxvim数据
  YKMEHzdP8aoh   2023年11月30日   28   0   0 vimUDP
  xIUntf9oR6GI   2023年11月28日   27   0   0 sedvim基础命令
  jnZtF7Co41Wg   2023年11月19日   24   0   0 nginxvim
  L83A5jZvvg3Q   2023年11月19日   44   0   0 vim
  vxoexqgjyiCS   2023年11月19日   24   0   0 服务器vim字符串
  vxoexqgjyiCS   2023年11月22日   22   0   0 linuxvimbash
  L83A5jZvvg3Q   2023年11月19日   25   0   0 vimpython