惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
CXSECURITY Database RSS Feed - CXSecurity.com
K
Kaspersky official blog
A
Arctic Wolf
Attack and Defense Labs
Attack and Defense Labs
L
LINUX DO - 热门话题
N
News | PayPal Newsroom
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
L
Lohrmann on Cybersecurity
PCI Perspectives
PCI Perspectives
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
The Last Watchdog
The Last Watchdog
B
Blog RSS Feed
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
W
WeLiveSecurity
Know Your Adversary
Know Your Adversary
博客园 - Franky
T
Tenable Blog
T
Tailwind CSS Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Help Net Security
Help Net Security
WordPress大学
WordPress大学
T
The Exploit Database - CXSecurity.com
www.infosecurity-magazine.com
www.infosecurity-magazine.com
博客园 - 司徒正美
阮一峰的网络日志
阮一峰的网络日志
D
Darknet – Hacking Tools, Hacker News & Cyber Security
H
Heimdal Security Blog
TaoSecurity Blog
TaoSecurity Blog
S
Security Affairs
J
Java Code Geeks
小众软件
小众软件
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Apple Machine Learning Research
Apple Machine Learning Research
NISL@THU
NISL@THU
O
OpenAI News
The Cloudflare Blog
月光博客
月光博客
Google Online Security Blog
Google Online Security Blog
V
V2EX
罗磊的独立博客
美团技术团队
博客园 - 三生石上(FineUI控件)
Security Latest
Security Latest
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
C
Cyber Attacks, Cyber Crime and Cyber Security
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Cyberwarzone
Cyberwarzone
L
LINUX DO - 最新话题
Hacker News - Newest:
Hacker News - Newest: "LLM"
大猫的无限游戏
大猫的无限游戏

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant Common SOC 2 Failures (Real World) Stop Vibe-Checking Your AI App: A Practical Guide to Evals How to Use SonarQube and SonarScanner Locally to Level Up Your Code Quality Your Next To-Do App Is Dead — I Replaced Mine with an OpenClaw AI Sign a Nostr event in 60 lines of Python using coincurve — no nostr-sdk, no nbxplorer, no rust toolchain ITGC Audit Explained Like You’re in Big 4 Patch Tuesday abril 2026: Microsoft parcha 163 vulnerabilidades y un zero-day en SharePoint Stop scraping everything: a better way to track competitor price changes Listing on MCPize + the Official MCP Registry while routing payments OUTSIDE the marketplace — how I kept 100% of my x402 revenue Building an AI-Powered Risk Intelligence System Using Serverless Architecture Why We Ripped Function Overloading Out of Our AI Toolchain Testing AI-Generated Code: How to Actually Know If It Works SaaS Churn Is Killing Your Business. Here Is What to Do About It (Without a Support Team) The Speed of AI Is No Longer Linear - And Self-Improving Models Are Why How to Implement RBAC for MCP Tools: A Practical Guide for Engineering Teams From Standard Quote to Persuasive Proposal: AI Automation for Arborists I built a CLI that scaffolds complete multi-tenant SaaS apps Axios CVE-2025–62718: The Silent SSRF Bug That Could Be Hiding in Your Node.js App Right Now The dashboard that ended our friendship Data Pipelines Explained Simply (and How to Build Them with Python) The Hidden Cost of AI Systems Nobody Talks About. undefined vs undeclared, and how typeof behaves Switching from file-based jobs to NATS/Kafka in Rust without changing code io_uring Adventures: Rust Servers That Love Syscalls Why Agentic AI is Killing the Traditional Database The POUR principles of web accessibility for developers and designers Quantum Neural Network 3D — A Deep Dive into Interactive WebGL Visualization How To Install Caveman In Codex On macOS And Windows Automation Pipeline Reliability: Why Your Workflow Breaks When Nobody Is Watching I Built an 'Open World' AI Coding Agent — It Works From ANY Folder From Freelancing to Product: A Tech Service Company's SaaS Transformation China's AI Giants: Adding Tencent Hunyuan & ByteDance Doubao to AI University (74 Providers) On the Vibe Coders and Their Lies clerk: Auto-Summarize Your Claude Code Sessions AI Weekly — 2026/04/10–04/17 | The Model Lockdown Is Here, but the Toolchain Is the Real Battleground AI 週報 — 2026/04/10–2026/04/17 模型封鎖潮來了,但工具鏈才是真戰場 Maybe this is how Open-Source apps are born... 🚀 Fine-Tune LLMs with LoRA and QLoRA: 2026 Guide tRPC v11 + Next.js App Router: End-to-End Type Safety Without the Boilerplate ShadCN UI in 2026: Why I Stopped Installing Component Libraries and Started Owning My Components SaaS Billing in React Server Components: Stripe + Supabase Without a Single `useEffect` Join our DEV Weekend Challenge — $1,000 in Prizes Across TEN winners! Submissions Due April 20 at 6:59 AM UTC. Implementing FSRS Spaced Repetition in Flutter + Supabase — Adding Memory Science to an AI Learning App "I Texted My Localhost From the Train — Claude Code Fixed the Bug Before I Got Home" I Built a Sales Prep AI and It Went Deeper Than Expected Design to Code #2: One JSON, Eleven Outputs Solving the 100M-Row Problem: A Summary Table Pattern for High-Volume Push Notification Logs Flutter Web With Wasm: What Actually Changes For Developers I Built 50 Royalty-Free Soundtracks for My Side Project in a Weekend Using AI Music Generation The Vibe Coding Security Checklist: 7 Things to Check Before You Ship Stop Letting Googlebot Guess Fix Your React App's SEO Right Desconstruindo o Streaming do LinkedIn: Como Criar um Engine de Extração de Vídeo de Alta Performance com HLS e FFmpeg (EDA Part-1) EDA (Exploratory Data Analysis) Explained With Real Life — Why Looking at Your Data Is the Most Important Step in Machine Learning Brand Relationship Management at Scale: Our 4-Touch Outreach System for 200+ Brands Why String.fromEnvironment() Might Return an Empty String in Dart JGuardrails 1.0.0 — Hardening Java LLM Apps Against Jailbreaks, Toxicity, and Prompt Injection Plan and Schedule a Full Week of Threads Content From One Claude Conversation Coding Cat Oran Ep3, Five Tables Changed Everything Updated: BFF Pattern I'm done watching freelancers get buried by 200 proposals. So I'm building the alternative. This is my first post BFS Algorithm in Java Step by Step Tutorial with Examples Tracking LLM Pricing Monthly: An Open Dataset for 22 AI Models How We Measure Content ROI on a Comparison Site: Revenue Attribution Without Perfect Data Introducing Nova AI Ops: The AI-Native Operating System for SRE Teams I built a free desktop video downloader for Windows — Grabbit How Talkie OCR Helps Vision-Impaired & Dyslexic Users Read the World Around Them VRCFaceTracking安装和iPhone面捕配置教程,有bug Even CrowdStrike Can't See Your Agents The Automation Gold Rush: What n8n Workflows and Claude Are Opening Up for Developers Right Now
A Complete Guide to Networking on Linux Systems for File and Data Sharing
Hishantik Sa · 2026-05-07 · via DEV Community

Network file sharing between Linux systems forms the backbone of efficient data management in modern IT environments. Whether you are managing a home lab, administering enterprise servers, or simply transferring files between personal machines, understanding how to configure file sharing across Linux distributions like Ubuntu and Arch Linux is an essential skill. This guide walks you through the most effective methods for establishing secure, reliable file sharing between Linux systems, complete with step-by-step instructions and command-line examples.

Understanding Linux File Sharing Technologies

Before diving into configuration, it is important to understand the primary technologies available for Linux-to-Linux file sharing. Each approach offers distinct advantages depending on your specific use case, security requirements, and performance needs.

The Network File System, or NFS, represents the most native and efficient solution for Linux-to-Linux sharing. Developed originally by Sun Microsystems, NFS has been a staple of Unix and Linux networking for decades. It operates on a client-server model where the server exports directories that clients mount as if they were local filesystems. NFS performs exceptionally well within trusted networks due to its lightweight protocol and minimal overhead.

Samba, despite its origins as a compatibility layer for Windows file sharing, also serves Linux-to-Linux environments effectively. When you need to share files across heterogeneous environments or maintain compatibility with Windows systems that might join your network later, Samba provides a robust solution. Modern Samba configurations offer strong security features and excellent performance.

Secure Shell-based solutions, including SCP and SFTP, provide encrypted file transfer capabilities without requiring complex server configuration. These methods prove ideal for one-time transfers, automated scripts, or situations where mounting remote filesystems seems excessive.

Setting Up NFS File Sharing Between Linux Systems

NFS offers the most straightforward path to seamless file sharing between Linux machines. The following sections detail how to configure both Ubuntu and Arch Linux systems as NFS servers and clients.

Configuring the NFS Server

Begin by installing the necessary NFS server software on the machine that will host the shared directories. On Ubuntu, execute the following commands with root privileges to install the NFS kernel server and related utilities. The installation process automatically creates the necessary system groups and user mappings that NFS requires for operation.

sudo apt update
sudo apt install nfs-kernel-server

Enter fullscreen mode Exit fullscreen mode

On Arch Linux, the process requires installing the nfs-utils package, which provides both client and server functionality. Arch follows a minimal installation philosophy, so you may need to enable and start theRPC bind service before configuring NFS.

sudo pacman -Syu
sudo pacman -S nfs-utils
sudo systemctl enable --now rpcbind.service

Enter fullscreen mode Exit fullscreen mode

With the software installed, you must now define which directories the server will share and which clients may access them. This configuration lives in the /etc/exports file, where each line specifies a directory path, client access parameters, and export options. Consider a configuration that shares the /data directory with two specific machines on your local network, configuring appropriate permissions and squash settings to prevent privilege escalation.

sudo mkdir -p /data/shared
sudo chown nobody:nogroup /data/shared
sudo chmod 755 /data/shared

Enter fullscreen mode Exit fullscreen mode

Edit the exports file using your preferred text editor, adding a line that specifies the shared directory and client machines. The following example grants read-write access to two specific IP addresses while using the rw and sync options to ensure data integrity.

sudo nano /etc/exports

Enter fullscreen mode Exit fullscreen mode

Add the following line to /etc/exports, adjusting the IP addresses to match your network configuration:

/data/shared 192.168.1.10(rw,sync,no_subtree_check) 192.168.1.11(rw,sync,no_subtree_check)

After saving the configuration, export the shared directories and restart the NFS server to apply the changes. The exportfs command with the -a flag processes all entries in /etc/exports, while the -r option resynchronizes the current export table.

sudo exportfs -a
sudo systemctl restart nfs-kernel-server  # Ubuntu
sudo systemctl restart nfs-server.service  # Arch Linux

Enter fullscreen mode Exit fullscreen mode

Configuring the NFS Client

On the machine that will access the shared directories, install the NFS client utilities and create a mount point directory. The client side requires far less configuration than the server, as most settings are determined by the server's export options.

Ubuntu

sudo apt install nfs-common

Enter fullscreen mode Exit fullscreen mode

Arch Linux

sudo pacman -S nfs-utils

Enter fullscreen mode Exit fullscreen mode

Create the mount point directory and mount the remote filesystem. The mount command connects to the NFS server and makes the remote directory accessible through the local mount point. For permanent mounting, add an entry to the /etc/fstab file, which instructs the system to establish the connection automatically during boot.

sudo mkdir -p /mnt/nfs/shared
sudo mount 192.168.1.100:/data/shared /mnt/nfs/shared

Enter fullscreen mode Exit fullscreen mode

For permanent mounting, add this line to /etc/fstab:

192.168.1.100:/data/shared /mnt/nfs/shared nfs defaults,timeo=900,retrans=5,_netdev 0 0

Implementing Samba for Linux-to-Linux File Sharing

While NFS excels in pure Linux environments, Samba provides additional flexibility and compatibility benefits. Modern Samba versions offer excellent performance and robust security features that make them suitable for Linux-only networks as well.

Installing and Configuring Samba on Ubuntu

Begin by installing the Samba package along with its associated utilities. The installation process on Ubuntu automatically configures basic services and creates the necessary system users, though significant configuration remains necessary.

sudo apt update
sudo apt install samba samba-common-bin

Enter fullscreen mode Exit fullscreen mode

Create a dedicated directory for sharing and set appropriate ownership permissions. It is good practice to create a specific system user for Samba access, separating Samba authentication from regular system login credentials.

sudo mkdir -p /samba/shared
sudo groupadd sambashare
sudo useradd -s /s/bin/false -G sambashare sambauser
sudo chown -R sambauser:sambashare /samba/shared
sudo chmod 0770 /samba/shared

Enter fullscreen mode Exit fullscreen mode

Configure Samba by editing the /etc/samba/smb.conf file. This configuration file uses a simple ini-style format where square brackets define share names and the remaining lines specify parameters for each share. The following configuration creates a share named shared with valid user access and appropriate permission settings.

sudo nano /etc/samba/smb.conf

Enter fullscreen mode Exit fullscreen mode

Add the following configuration section to the end of the file:

[shared]
comment = Shared Directory
path = /samba/shared
read only = no
browsable = yes
valid users = sambauser
create mask = 0660
directory mask = 0770

Set a password for the Samba user, which must exist as a system user but uses a separate password database for Samba authentication. This dual-password system provides an additional layer of security by preventing regular system login through Samba access.

sudo smbpasswd -a sambauser

Enter fullscreen mode Exit fullscreen mode

Restart the Samba services to load the new configuration. Ubuntu uses the smbd and nmbd daemons for CIFS/SMB functionality, with nmbd handling NetBIOS name resolution.

sudo systemctl restart smbd nmbd
sudo systemctl enable smbd nmbd

Enter fullscreen mode Exit fullscreen mode

Installing and Configuring Samba on Arch Linux

The Arch Linux installation follows a similar pattern, though package management and service handling differ slightly. Arch typically requires more manual configuration but offers greater flexibility.

sudo pacman -Syu
sudo pacman -S samba

Enter fullscreen mode Exit fullscreen mode

Create the required directories and user accounts using the same principles as the Ubuntu configuration. Arch Linux does not enable services by default, so explicit enablement steps are necessary.

sudo mkdir -p /samba/shared
sudo groupadd sambashare
sudo useradd -s /s/bin/false -G sambashare sambauser
sudo chown -R sambauser:sambashare /samba/shared
sudo chmod 0770 /samba/shared

Enter fullscreen mode Exit fullscreen mode

Configure Samba identically to the Ubuntu setup by editing /etc/samba/smb.conf. The configuration file format remains consistent across distributions. Create a basic configuration file if the default one does not suit your needs.

sudo nano /etc/samba/smb.conf

Enter fullscreen mode Exit fullscreen mode

Add the same share configuration section described in the Ubuntu instructions. Then, set the Samba password and enable the required services.

sudo smbpasswd -a sambauser
sudo systemctl enable --now smbd nmbd

Enter fullscreen mode Exit fullscreen mode

Accessing Samba Shares from Linux Clients

From any Linux machine on the network, you can access Samba shares using the smbclient utility or by mounting the share directly. Installing cifs-utils enables direct mounting behavior similar to NFS mounts.

Install client utilities

sudo apt install cifs-utils  #### Ubuntu
sudo pacman -S cifs-utils    #### Arch Linux

Enter fullscreen mode Exit fullscreen mode

Create mount point and mount the share

sudo mkdir -p /mnt/samba
sudo mount -t cifs //192.168.1.100/shared /mnt/samba -o user=sambauser,password=your_password

Enter fullscreen mode Exit fullscreen mode

Securing Your Linux File Sharing Environment

Security must remain paramount when configuring network file sharing. Both NFS and Samba offer various security mechanisms that you should understand and implement appropriately.

For NFS, the /etc/exports file controls client access at the network level. Never export directories to the entire internet or untrusted networks. The rw and ro options control read-write access, while root_squash and all_squash options map privileged user requests to unprivileged accounts, preventing clients from accessing files as root. Consider using specific IP addresses or network ranges rather than hostnames, which can be spoofed in certain circumstances.

Secure export example

/data/shared 192.168.1.0/24(rw,sync,root_squash,no_subtree_check)

Samba security operates primarily through user authentication and share-level permissions. The valid users parameter restricts access to specific accounts, while read only and writable parameters control access mode. For enhanced security, consider implementing Samba with TLS encryption, which requires additional certificates but protects credentials and data from network sniffing.

Both solutions require appropriate firewall configuration. Ubuntu uses UFW by default, while Arch often relies on iptables or nftables. Allow only the necessary ports for your configuration.

UFW for Ubuntu

sudo ufw allow from 192.168.1.0/24 to any port 2049  # NFS
sudo ufw allow from 192.168.1.0/24 to any port 445   # Samba

Enter fullscreen mode Exit fullscreen mode

Arch Linux using firewalld

sudo firewall-cmd --permanent --add-service=nfs
sudo firewall-cmd --permanent --add-service=samba
sudo firewall-cmd --reload

Enter fullscreen mode Exit fullscreen mode

Testing and Troubleshooting Your Configuration

After configuration, thorough testing ensures everything functions correctly before relying on the setup for production use. Begin by verifying that the server correctly advertises its shares using the appropriate discovery commands.

For NFS, use the showmount utility to query the server's exported directories. From the client machine, execute the following command against your NFS server's IP address to display available shares.

showmount -e 192.168.1.100

Enter fullscreen mode Exit fullscreen mode

For Samba, the smbclient utility provides an interactive browsing capability that tests both connectivity and authentication. This command logs in to the specified share using the configured username, prompting for a password that should match your Samba password.

smbclient -U sambauser //192.168.1.100/shared

Enter fullscreen mode Exit fullscreen mode

Common issues typically involve permission mismatches, firewall blocking, or service status problems. Verify that all required services are running using systemctl status commands, and check logs in /var/log/ directories when authentication or mounting failures occur. Ensure that both server and client time settings are synchronized, as authentication failures sometimes result from time drift between machines.

Conclusion

Establishing file sharing between Linux systems need not be intimidating, regardless of whether you work with Ubuntu, Arch Linux, or a mixture of distributions. NFS provides the most efficient solution for Linux-native environments, while Samba offers broader compatibility and familiar configuration patterns. Both technologies, when properly secured, provide robust foundations for networked file sharing that rival or exceed Windows file sharing capabilities.

Begin with NFS for pure Linux environments where simplicity and performance are priorities. Consider Samba when Windows compatibility might become necessary or when you prefer its authentication model. Implement firewall rules and appropriate export options to maintain security throughout your configuration. With the steps outlined in this guide, you now possess the knowledge to configure reliable, secure file sharing across your Linux infrastructure.