Saturday, 1 December 2018

Configure NFS Collaborative Share in RHEL 7

Configure NFS Collaborative Share in RHEL 7A Collaborative share is a directory that has been shared across the network and a specific group of users have permissions to access, create and modify files on that directory. Usually, a collaborative directory is specific to a Project and rights have been given to the working users.

We have already configured NFS shares and Kerberized NFS shares in our previous posts. Now, we will create an NFS share for group collaboration.

 

Configure NFS Server:

To configure NFS Service, we have to install nfs-utils package. Usually, this package is automatically installed during installation of Red Hat Enterprise Linux (RHEL) 7. However, you can install it anytime from yumspan> repository.

[root@ipaserver ~]# yum install -y nfs-utils Loaded plugins: langpacks, product-id, subscription-manager This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register. Package 1:nfs-utils-1.3.0-0.el7.x86_64 already installed and latest version Nothing to do [root@ipaserver ~]#

nfs-utils is already installed on our system.

Create a directory to share with other clients.

[root@ipaserver ~]# mkdir /nfsshare [root@ipaserver ~]# chgrp dba /nfsshare/ [root@ipaserver ~]# chmod 2770 /nfsshare/

We have created a directory /nfsshare, change its user-group to dba and 2770 rights has been given to user-group. So, the group-members can create files on this shared directory.

Adjust SELinux type of the /nfsshare directory.

[root@ipaserver ~]# semanage fcontext -a -t nfs_t "/nfsshare(/.*)?" [root@ipaserver ~]# restorecon -Rv /nfsshare/ restorecon reset /nfsshare context unconfined_u:object_r:default_t:s0->unconfined_u:object_r:nfs_t:s0

If semanage command does not available on your system then install policycoreutils-python package.

Now export/share this directory to specific clients.

[root@ipaserver ~]# echo '/nfsshare *.example.com(rw,sync)' >> /etc/exports [root@ipaserver ~]# exportfs -r

Enable and start the nfs-server service.

[root@ipaserver ~]# systemctl start nfs-server ; systemctl enable nfs-server ln -s '/usr/lib/systemd/system/nfs-server.service' '/etc/systemd/system/nfs.target.wants/nfs-server.service'

Allow nfs and other required services through firewall.

[root@ipaserver ~]# firewall-cmd --permanent --add-service={mountd,nfs,rpc-bind} success [root@ipaserver ~]# firewall-cmd --reload success

 

Configure NFS Client:

Connect to the client2.example.com and install nfs-utils package.

[root@client2 ~]# yum install -y nfs-utils Loaded plugins: langpacks, product-id, subscription-manager This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register. localyum | 4.1 kB 00:00 Resolving Dependencies --> Running transaction check ---> Package nfs-utils.x86_64 1:1.3.0-0.el7 will be installed --> Processing Dependency: libtirpc >= 0.2.3-1 for package: 1:nfs-utils-1.3.0-0.el7.x86_64 --> Processing Dependency: keyutils for package: 1:nfs-utils-1.3.0-0.el7.x86_64 --> Processing Dependency: libevent for package: 1:nfs-utils-1.3.0-0.el7.x86_64 --> Processing Dependency: libnfsidmap for package: 1:nfs-utils-1.3.0-0.el7.x86_64 --> Processing Dependency: rpcbind for package: 1:nfs-utils-1.3.0-0.el7.x86_64 --> Processing Dependency: libevent-2.0.so.5()(64bit) for package: 1:nfs-utils-1.3.0-0.el7.x86_64 --> Processing Dependency: libnfsidmap.so.0()(64bit) for package: 1:nfs-utils-1.3.0-0.el7.x86_64 --> Processing Dependency: libtirpc.so.1()(64bit) for package: 1:nfs-utils-1.3.0-0.el7.x86_64 --> Running transaction check ---> Package keyutils.x86_64 0:1.5.8-3.el7 will be installed ---> Package libevent.x86_64 0:2.0.21-4.el7 will be installed ---> Package libnfsidmap.x86_64 0:0.25-9.el7 will be installed ---> Package libtirpc.x86_64 0:0.2.4-0.3.el7 will be installed ---> Package rpcbind.x86_64 0:0.2.0-23.el7 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: nfs-utils x86_64 1:1.3.0-0.el7 localyum 357 k Installing for dependencies: keyutils x86_64 1.5.8-3.el7 localyum 54 k libevent x86_64 2.0.21-4.el7 localyum 214 k libnfsidmap x86_64 0.25-9.el7 localyum 45 k libtirpc x86_64 0.2.4-0.3.el7 localyum 85 k rpcbind x86_64 0.2.0-23.el7 localyum 55 k Transaction Summary ================================================================================ Install 1 Package (+5 Dependent packages) Total download size: 810 k Installed size: 2.2 M Downloading packages: -------------------------------------------------------------------------------- Total 1.0 MB/s | 810 kB 00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : libtirpc-0.2.4-0.3.el7.x86_64 1/6 Installing : rpcbind-0.2.0-23.el7.x86_64 2/6 Installing : keyutils-1.5.8-3.el7.x86_64 3/6 Installing : libevent-2.0.21-4.el7.x86_64 4/6 Installing : libnfsidmap-0.25-9.el7.x86_64 5/6 Installing : 1:nfs-utils-1.3.0-0.el7.x86_64 6/6 Verifying : 1:nfs-utils-1.3.0-0.el7.x86_64 1/6 Verifying : libtirpc-0.2.4-0.3.el7.x86_64 2/6 Verifying : libnfsidmap-0.25-9.el7.x86_64 3/6 Verifying : libevent-2.0.21-4.el7.x86_64 4/6 Verifying : keyutils-1.5.8-3.el7.x86_64 5/6 Verifying : rpcbind-0.2.0-23.el7.x86_64 6/6 Installed: nfs-utils.x86_64 1:1.3.0-0.el7 Dependency Installed: keyutils.x86_64 0:1.5.8-3.el7 libevent.x86_64 0:2.0.21-4.el7 libnfsidmap.x86_64 0:0.25-9.el7 libtirpc.x86_64 0:0.2.4-0.3.el7 rpcbind.x86_64 0:0.2.0-23.el7 Complete! [root@client2 ~]#

Create a directory, to mount the shared directory from ipaserver.example.com.

[root@client2 ~]# mkdir /mnt/nfsshare

Check the shared directories from ipaserver.example.com.

[root@client2 ~]# showmount -e ipaserver.example.com Export list for ipaserver.example.com: /nfsshare *.example.com [root@client2 ~]#

Persistently mount this shared directory by adding following entry in /etc/fstab.

[root@client2 ~]# echo 'ipaserver.example.com:/nfsshare /mnt/nfsshare nfs defaults,_netdev 0 0' >> /etc/fstab [root@client2 ~]# mount -a [root@client2 ~]#

Check the status of mounted directory.

[root@client2 mnt]# mount | grep nfsshare ipaserver.example.com:/nfsshare on /mnt/nfsshare type nfs4 (rw,relatime,vers=4.0,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.116.202,local_lock=none,addr=192.168.116.200,_netdev)

Login with user which is member of the dba group. and create a file in this shared directory, to verify the file permissions.

[root@client2 ~]# su - imran Last login: Wed Aug 1 08:29:23 PDT 2018 on pts/0 [imran@client2 ~]$ cd /mnt/nfsshare/ [imran@client2 nfsshare]$ touch test2 [imran@client2 nfsshare]$ ls -al total 0 drwxrws---. 2 root dba 30 Aug 1 08:34 . drwxr-xr-x. 4 root root 31 Jul 31 07:23 .. -rw-rw-r--. 1 imran dba 0 Aug 1 08:34 test2 [imran@client2 nfsshare]$

We have successfully provided a network share for group collaboration and persistently mount it on one client.

Configure NFS Collaborative Share in RHEL 7


YOU MIGHT ALSO LIKE:

No comments:

Post a Comment