Skip to content
Skillpedia
Misc48k · #3690

nfs-storage

Helps your agent configure NFS servers and clients for network file sharing on Linux.

What it does

This tool helps set up computers to share files over a network. It allows one computer to act as a 'server' storing files, and other computers ('clients') can access these files as if they were on their own disks.

When to use it

  • ✓When you need multiple Linux computers to access the same files.
  • ✓To create a central storage space for application data or user home directories.
  • ✓When setting up systems using containers (like Kubernetes) that need shared storage.

Example of what to ask your AI

“Set up an NFS server to share the /data folder with read-write access for the 192.168.1.0/24 network.”

Want more? Open the sections below.

How to use

The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.

Skill link

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/nfs-storage/SKILL.md

Ready-to-paste message

Use this skill to help me: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/nfs-storage/SKILL.md Read the SKILL.md file at that link and follow its instructions for my task.
How it works

You install the NFS software on the server and clients. Then, you configure which folders on the server will be shared and how clients can access them, defining permissions.

Installation

Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.

In the terminal (Claude Code, Codex, Cursor), in your project folder:

npx skills add sickn33/agentic-awesome-skills --skill nfs-storage

Or download just the file:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/nfs-storage/SKILL.md -o SKILL.md
Technical content (original SKILL.md)

Original text by the author, straight from GitHub.

NFS Storage

Configure NFS servers and clients for network file sharing across Linux systems. Covers NFSv4 server setup, export options, client mounting, autofs for on-demand mounts, Kerberos security, performance tuning, and Kubernetes integration.

When to Use

  • Sharing directories between multiple Linux servers (web farms, build clusters)
  • Providing shared storage for containerized workloads (Kubernetes ReadWriteMany)
  • Centralizing home directories or application data across a fleet
  • Setting up a development environment with shared project files
  • Migrating from local storage to network-attached storage

Prerequisites

  • NFS server: nfs-kernel-server (Debian/Ubuntu) or nfs-utils (RHEL/CentOS)
  • NFS client: nfs-common (Debian/Ubuntu) or nfs-utils (RHEL/CentOS)
  • Network connectivity between server and clients (TCP/UDP 2049 for NFSv4)
  • Firewall rules allowing NFS traffic
  • For NFSv4 Kerberos: krb5-user and a functioning KDC

NFS Server Setup

Installation

# Debian / Ubuntu
apt update && apt install -y nfs-kernel-server

# RHEL / CentOS
dnf install -y nfs-utils

# Enable and start the NFS server
systemctl enable --now nfs-server

# Verify NFS is running
systemctl status nfs-server
rpcinfo -p | grep nfs

Export Configuration (/etc/exports)

# /etc/exports
# Syntax: <directory> <client-spec>(options)

# Share /data to a specific subnet with read-write access
/data 10.0.0.0/24(rw,sync,no_subtree_check,no_root_squash)

# Share /shared read-only to everyone
/shared *(ro,sync,no_subtree_check)

# Share /home to specific hosts
/home server01.example.com(rw,sync,no_subtree_check)
/home server02.example.com(rw,sync,no_subtree_check)

# Share /var/nfs/projects with root squash (default, map root to nobody)
/var/nfs/projects 10.0.0.0/24(rw,sync,no_subtree_check,root_squash)

# NFSv4 pseudo-root export (recommended for NFSv4)
/srv/nfs 10.0.0.0/24(rw,sync,fsid=0,crossmnt,no_subtree_check)
/srv/nfs/data 10.0.0.0/24(rw,sync,no_subtree_check,no_root_squash)
/srv/nfs/shared 10.0.0.0/24(ro,sync,no_subtree_check)

Export Options Explained

Option Description
rw Read-write access
ro Read-only access
sync Write data to disk before replying (safe, slower)
async Reply before data is written to disk (fast, risk of corruption)
no_subtree_check Disable subtree checking (improves reliability)
root_squash Map remote root (UID 0) to nobody (default, more secure)
no_root_squash Allow remote root to act as root on the server (use cautiously)
all_squash Map all remote UIDs/GIDs to nobody
anonuid=1000 Map anonymous users to a specific UID
anongid=1000 Map anonymous groups to a specific GID
crossmnt Allow clients to traverse into sub-mounts
fsid=0 Mark as the NFSv4 pseudo-root

Applying Export Changes

# Apply changes to exports (no server restart needed)
exportfs -ra

# Show current exports
exportfs -v

# Export a new directory on the fly (temporary, not persistent)
exportfs -o rw,sync,no_subtree_check 10.0.0.0/24:/tmp/share

# Unexport a directory
exportfs -u 10.0.0.0/24:/tmp/share

Server Firewall Configuration

# UFW (Ubuntu)
ufw allow from 10.0.0.0/24 to any port nfs
ufw allow from 10.0.0.0/24 to any port 111   # rpcbind (NFSv3)

# firewalld (RHEL/CentOS)
firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --permanent --add-service=mountd
firewall-cmd --reload

# NFSv4 only needs TCP 2049 (no rpcbind or mountd)
firewall-cmd --permanent --add-port=2049/tcp
firewall-cmd --reload

NFS Client Configuration

Manual Mounting

# Install NFS client
apt install -y nfs-common        # Debian/Ubuntu
dnf install -y nfs-utils         # RHEL/CentOS

# Discover exports from the server
showmount -e nfs-server.example.com

# Mount an NFS share manually
mkdir -p /mnt/data
mount -t nfs nfs-server.example.com:/data /mnt/data

# Mount with specific NFS version and options
mount -t nfs -o vers=4.2,tcp,hard,intr nfs-server.example.com:/data /mnt/data

# Verify the mount
mount | grep nfs
df -hT /mnt/data

# Unmount
umount /mnt/data

Persistent Mounts via /etc/fstab

# /etc/fstab entries for NFS

# Basic NFSv4 mount
nfs-server.example.com:/data  /mnt/data  nfs4  defaults,_netdev  0  0

# Mount with performance and reliability options

…
FAQ

What is NFS?

NFS stands for Network File System. It's a protocol that allows one computer to access files on another computer over the network as if they were local.

What's the difference between an NFS server and client?

The server is the computer that stores and shares the files. The client is the computer that accesses the files shared by the server.

Can I share folders for read-only access?

Yes, you can configure folders to be accessed only for reading, ensuring files are not modified by clients.

Details

Original description by the author

Configure NFS servers and clients. Implement network file sharing for Linux systems. Use when setting up shared storage.

repo: sickn33/agentic-awesome-skills

Popularity

GitHub stars
48k
Ranking position
#3690
License
MIT
Updated
10/15/2026

Is this skill useful?

0

Sign in to vote.

Comments

  • …

More skills from this repository

Similar skills