/System/Library/LaunchDaemons/tftp.plist controls the Trivial File Transfer Protocol service, which is distinct from and unrelated to standard FTP. Attempting to edit this plist will not enable FTP functionality and may break existing TFTP configurations.
Why the tftp.plist File Is Irrelevant for FTP
The confusion often arises because both protocols use port-based services and share similar naming conventions in system directories. However, tftp stands for Trivial File Transfer Protocol, a simple, lockstep protocol used primarily for booting diskless workstations or transferring firmware images. It does not support user authentication, directory listings, or the complex command set of standard FTP.
Modern macOS releases, including those running Catalina, Big Sur, Monterey, Ventura, and Sonoma, do not include an FTP server component by default. The absence of FTP-related launch daemons in /System/Library/LaunchDaemons/ is intentional. Security best practices discourage the use of unencrypted FTP because credentials are transmitted in plain text. Therefore, no official Apple configuration exists to "enable" FTP via system plists.
Verifying Your Current System State
Before attempting any manual configurations, verify whether any FTP processes are running. Open Terminal and execute the following command to list all listening ports:
sudo lsof -i -P | grep LISTEN
If you see no entries for port 21 (the standard FTP control port), your system is not currently serving FTP traffic. Checking for tftp specifically might show activity if you have enabled file sharing over network boot, but this will never respond to standard FTP clients like FileZilla or Cyberduck when they request port 21.
Recommended Alternatives for File Sharing
Since editing system files to force an FTP server is neither supported nor secure, consider these native or third-party alternatives that provide similar functionality with better security profiles.
Using SFTP via Built-in Remote Login
macOS includes OpenSSH, which provides SFTP (SSH File Transfer Protocol). This is the most secure and native way to transfer files between Macs or from remote machines. To enable it:
- Go to System Settings (or System Preferences on older versions).
- Navigate to General > Sharing.
- Toggle Remote Login to On.
Once enabled, you can connect using any SFTP client. For example, in Terminal, you would run: sftp username@your-mac-ip-address. This method encrypts all data, including passwords, preventing eavesdropping.
Third-Party FTP Servers
If you strictly require legacy FTP compatibility for specific hardware or software that cannot use SFTP, you must install third-party software. Applications such as FileZilla Server (for Windows/Linux) or macOS-specific tools like FTPServer from the Mac App Store can be installed. These applications manage their own configuration files outside of /System/Library/LaunchDaemons/, avoiding conflicts with macOS system integrity protection (SIP).
Network Attached Storage (NAS)
For permanent file sharing solutions, using a dedicated NAS device is often more reliable than configuring a computer as a server. Most NAS devices support FTP, SFTP, SMB, and AFP out of the box. This offloads the processing burden from your Mac and ensures that the service remains available even when the Mac is in sleep mode, provided the NAS is connected to power and network.
Security Considerations
Enabling any form of file transfer service exposes your machine to network vulnerabilities. If you choose to use third-party FTP software, ensure that:
- You disable anonymous access unless explicitly required.
- You restrict user permissions to specific directories only.
- You monitor logs for failed login attempts.
Because FTP sends usernames and passwords in cleartext, it should never be used over untrusted networks such as public Wi-Fi. Always prefer SFTP or SCP for remote administration tasks.
Conclusion
Editing tftp.plist will not solve FTP setup issues because the two protocols are fundamentally different. Apple has deprecated FTP in favor of more secure methods. Use the built-in Remote Login feature for SFTP access, or install reputable third-party FTP servers if legacy compatibility is absolutely necessary. Avoid modifying system launch daemons for unsupported services, as this can lead to system instability or security breaches.
Frequently Asked Questions
Can I manually create an FTP launch daemon in LaunchDaemons?
No, creating custom launch daemons for FTP is not recommended and often fails due to System Integrity Protection (SIP). Even if you bypass SIP, you would need to compile and configure an FTP server binary yourself, which is significantly more complex and insecure than using existing tools. Stick to SFTP or approved third-party applications.
Is TFTP safer than FTP for local transfers?
TFTP is simpler but not necessarily safer. Like FTP, TFTP typically lacks robust authentication mechanisms and operates without encryption. It is designed for trusted local networks where convenience outweighs security concerns. For general file transfer, SFTP remains the superior choice due to its encrypted channel.
Why does my Mac not show FTP in Sharing settings?
Apple removed FTP support from macOS several major versions ago due to security risks. The Sharing pane now only offers Screen Sharing, Remote Login (SSH/SFTP), and File Sharing (SMB/AFP). This reflects industry standards that prioritize encrypted connections for remote access.
How do I check if SFTP is working?
After enabling Remote Login, try connecting from another terminal window using sftp localhost. If the connection succeeds and prompts for a password, the service is active. You can then use an SFTP-capable client to upload or download files securely.
What happens if I edit tftp.plist incorrectly?
Incorrect edits can prevent the TFTP service from starting, which may affect network boot processes if you rely on them. In worst-case scenarios, syntax errors in plist files can cause launchd to fail, potentially impacting other system services. Always back up original plist files before making changes.