NFS服务的权限和用户映射问题

NFS(network file system)是linux系统用来进行文件共享的服务(通常是局域网内使用)

简单说一下过程

  • 服务器端需要安装两个服务:
    ①、rpcbind服务(RPC:Remote Procedure Call---远程过程调用),因为nfs服务在运行过程中会提供多种服务,开启多个端口,而客户端无从知晓,所以rpcbind就起到一个中介的作用(当然rpc不只可以为nfs服务提供这种功能),来帮助其注册管理其启用的端口。这样客户机访问时,只需要访问rpcbind的端口(默认111)就可以了。rpcbind和nfs都安装好后,先启用rpcbind(该服务器,好多系统都是默认安装好并启用了的),然后启用nfs服务,这样nfs服务启用的端口才会被rpcbind托管,可以通过rpcinfo -p localhost,来查看它代为管理了哪些端口。
    ②、nfs服务
  • 客户端也需要安装rpcbind服务的(有的系统已经默认是安装启用的)。
  • 服务端配置文件:
    1、 共享文件的配置文件/etc/exports(设置共享目录),以行为单位,一行为一条配置,比如
    /data 192.168.1.0/24(ro,root_squash) 192.168.0.6(rw,all_squash)
    将/data目录共享给192.168.1.0网段主机(拥有只读权限)和192.168.0.6主机(拥有读写权限),若是*,代表所有主机都可以。
    root_squash:表示客户机使用root访问时,将被压缩(映射)为匿名用户
    no_root_squash:与root_squash相反
    all_squash:表示客户机所有用户访问时,都被压缩(映射)为匿名用户
    no_all_squash(默认值):与all_squash相反

    (注:该匿名用户默认是nfsnobody(65534),可以手动设置,比如anonuid=555等。)
    image.png

    2、默认的权限值配置在/var/lib/nfs/etab文件内
    image.png

配置好后,可以通过“showmount -e 服务器地址” 来查看可供挂载的目录,服务器端查看可以将服务器地址写成localhost,客户端查看要写对应的服务器ip地址等。
image.png
  • 设置好配置文件后重启nfs服务:
    service nfs reload 或者
    exportfs -rv ---------- r是重载的意思,v显示详细信息

  • 客户机访问服务器共享目录
    通过挂载的方式:
    首先在客户机上创建一个空目录,比如/rhome(名字任意取),然后将服务器共享目录挂载到该目录上,比如:
    mount.nfs 192.168.0.110:/share /rhome (服务器及其共享目录写在前面,客户机本地目录写在后面),挂载的命令还可以使用mount -t nfs .....


这里着重讲一下用户映射的原理

  NFS服务虽然不具备用户身份验证的功能,但是NFS提供了一种身份映射的机制来对用户身份进行管理。当客户端访问NFS服务时,服务器会根据情况将客户端用户的身份映射成NFS匿名用户nfsnobody。nfsnobody是由NFS服务在系统中自动创建的一个程序用户账号,该账号不能用于登录系统,专门用作NFS服务的匿名用户账号。

  所谓用户身份映射,是指当客户端访问NFS服务器时,会自动被视作服务器中的nfsnobody用户,并按照该用户的权限设置去执行操作。但是并非所有的客户端都会被映射为nfsnobody用户,在/etc/exports配置文件中提供了以下选项,以决定是否将NFS客户端映射为nfsnobody用户:

root_squash,当NFS客户端以root用户身份访问时,映射为NFS服务器的nfsnobody用户。
no_root_squash,当NFS客户端以root身份访问时,映射为NFS服务器的root用户,也就是要为超级用户保留权限。这个选项会留下严重的安全隐患,一般不建议采用。
all_squash,无论NFS客户端以哪种用户身份访问,均映射为NFS服务器的nfsnobody用户。
其中默认值是root_squash,即当客户端以root用户的身份访问NFS共享时,在服务器端会自动被映射为匿名账号nfsnobody。

  一般情况下,系统中除了为nfs创建的nfsnobdy用户外,还有系统创建的nobody用户(供大多数服务使用)。这两个用户在服务端和客户端都有。
  我们将客户端访问nfs服务器端的用户映射简化分为两种情况,一种是用户被压缩,一种不被压缩。(这里讲的压缩,有点映射的意思)

  当客户端使用用户zhangsan(666)连接服务端时(比如创建文件),实际传递的是其uid,当服务端接收到这个uid时,两种情况:

①、用户不被压缩:如果服务器端有这个uid,则显示该uid对应的(登录)名称,否则直接显示该用户uid(但该用户uid并不存在,所以在当再次请求查看该文件信息时,服务器在给用户返回信息之前,会检测到该uid并不存在,所以传给客户端时变成nobody的uid,所以在客户端查看文件时,其实显示所属主是nobody,而在服务器端显示的却是zhangsan的uid,因为文件毕竟是存在服务器上的)。也就是说当用户不被压缩的情况下,要想服务端和客户端显示相同的zhangsan,则必须服务端和客户端要同时拥有相同的zhangsan用户,且uid也要相同。
②、用户被压缩:那么客户端访问服务端时,不管客户端是以哪个用户的身份,最后都被压缩成指定的anonuid用户(默认是nfsnobody,当然可以修改配置的)。因为nfsnobody用户在服务端和客户端都有,压缩成该用户就一致起来了。当然我们可以修改配置指定要压缩成的用户id,但是同样要在两端都建立相同的该用户,否则,就会出现情况①中的,一边显示用户uid,一边显示nobody的现象。
所以,在实际应用中,如果nfs服务器当做数据服务器使用(比如存放图片视频等)的话,为了方便使用,使各个客户端都能简单存取数据,一般采用将用户压缩成指定用户的方式,并且在服务器上将共享目录的所属主和所属组都设置成该用户及其主组。

image.png
image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,444评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,421评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,363评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,460评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,502评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,511评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,280评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,736评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,014评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,190评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,848评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,531评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,159评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,411评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,067评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,078评论 2 352

推荐阅读更多精彩内容

  • 一、服务器配置: 安装软件: yum -y install nfs-utils rpcbind 更改配置文件: v...
    济夏阅读 2,853评论 0 51
  • 上图所示问题在新版nfs 已经不存在 ,服务器端软件:安装nfs-utils和portmap(rpcbind)nf...
    不排版阅读 786评论 1 0
  • # rpcinfo -p //查看rpc服务信息 启动NFS服务器 为了使NFS服务器能正常工作,需要启动...
    Java_Evan阅读 3,604评论 0 0
  • 1.感恩闹钟,准时叫我起床。 2.感恩白天和黑夜,让生命有了奔波和安宁。 3.感恩妈妈,又是辛苦的一天,给全家人准...
    song_d807阅读 237评论 0 0
  • 程程_6424阅读 51评论 0 0