Skip to Content
Skip to Table of Contents

← Previous Article Next Article →

ATPM 8.12
December 2002

Columns

Segments

Extras

Reviews

Download ATPM 8.12

Choose a format:

Networks in Action

by Matthew Glidden, mglidden@atpm.com

Serving Files Using FTP in Mac OS X

Introduction

File Transfer Protocol, or FTP for short, is an IP-based method of moving files from one computer to another. “IP-based” means that it uses the same underlying communication methods as the Internet, so if your computer can connect to the Net, it can use FTP to transfer files.

In the past, FTP relied on separate client and server programs. You’d set up an FTP server on the computer that had files to share, then use an FTP client program on the computer that wanted to access said files. Mac OS X integrates the FTP server into the operating system, making it easy to share your files without needing a separate server. I previously wrote an article about sharing files between Macs and PCs via FTP that used a server on the PC and a client on the Mac (Basic FTP File Sharing Between Macs and PCs from ATPM 7.11). This article switches places, as Mac OS X serves files to Windows via the built-in FTP server.

Step One: Hardware Hookup

My own network consists of a Mac Cube and a Windows 2000 laptop. The two computers share a DHCP router, which provides Internet access and enables the two computers to “talk” to each other over the network.

If I didn’t have a router or existing network, I’d connect the laptop to the Mac using a crossover cable. Crossover cables create a network for two (and only two) computers. Connect each end of the crossover cable to the computers’ Ethernet ports and you’re done with the hardware setup. Find a crossover cable in the network section of your favorite (in a pinch, your second favorite) computer store.

ethernet_crossover

Two-Computer Crossover Connection

Step Two: Check Your IP Address

Open the System Preferences application and select Network from the View menu or toolbar. This displays your active network connection (you could have more than one). Select Built-in Ethernet from the Show pop-up menu and note your IP address (192.168.123.160, in my case). We’ll use it later to make the FTP client connection.

nia-network-info

Checking your IP address in the network view.

If you don’t have an IP address in the Network window, change the Configure pop-up menu to Manually and enter an address like 192.168.1.1. You can use any group of four numbers from 0 to 255 separated by periods, but the 192.168 prefix is reserved for private networks. Then enter a subnet mask of 255.255.255.0.

Step Three: Start the Mac OS X FTP Server

In the System Preferences application, select Sharing from the View menu. Check the “Allow FTP access” checkbox and confirm that your IP address appears in the “IP address” field.

Your Mac now shares the files in your home folder. To examine this directory, select Finder from the Dock, open your startup disk, and open the Users folder. The folder named after your user name is your home folder. When you log into the FTP server using your user name and password, you’ll see the files in that folder.

nia-allow-ftp-access

Start the Mac OS X FTP server.

nia-home-directory

Contents of my home directory

Step Four: Check the Laptop’s IP Address

Configuring the Windows laptop (mine runs Windows 2000) is similar to the Mac. To check its IP address, click the Start Button > Settings > Networks option, then open “Local Area Connection.” Select Properties, then select the TCP/IP protocol and select Properties again. This displays your IP address.

If you obtain your IP address automatically (my router uses DHCP, which handles the address automatically), you don’t need to do anything. You can assign an address manually as described for the Mac, just make sure the IP address is different (192.168.1.2, for example). The subnet mask is the same, 255.255.255.0. Choose OK to close the Properties windows.

Step Five: Access Your Shared Files

Since the Mac is our FTP server, we’ll access the files from the Windows laptop. Open Internet Explorer (which includes an FTP client) and enter this in the Address field:

ftp://[user name]:[password]@[Mac IP address]

The user name is your full Mac login name, including any spaces. Follow it with a colon and your login password, then the @ sign and your Mac’s IP address. This logs in to the Mac’s FTP server and you’ll see the following window.

nia-ftp-login

FTP via Internet Explorer

The list of folders and files matches your home directory, except that you also see files like “.Trash” and “.DS_Store,” which are invisible on the Mac. Ignore these files, or at least don’t delete them.

Transfer files to or from the Mac by dragging and dropping them in the Internet Explorer window. Once you have the FTP connection, moving files between computers is just like moving them around the same computer. When you’re finished, close the window to log out of the FTP server.

Conclusion

An integrated FTP server is another bonus from Mac OS X’s bag of tricks. FTP makes file transfer easy for users of mixed platforms, like Macs, Windows PCs, or any other Internet-friendly operating system. FTP doesn’t overcome the file format differences, but people who work with platform-neutral formats like text and images or have the appropriate file translators should find FTP a very convenient way to move files around.

Also in This Series

Reader Comments (26)

Dood DanK · December 4, 2002 - 23:31 EST #1
Great article. Well written (usually not the case in the tech world).

Two problems:

We use Windows in other languages. I tried uploading file names written in Korean but got errors (from Win 98 Korean). Files with English (Roman characters) names worked fine (from Win 98 Korean). Is the problem with Windows or OS X? Does anyone have any ideas on a solution?

I can't upload via Explorer from Mac OS 9 or Mac OS X. Is there a general problem with this? Is there a browser that can?

True, Macs can share via file sharing, but most users here are complete novices and having to teach them two ways to share files is too hard.

We are using 10.1.5 and Win 98 Korean Second Edition.

Thanks,

DanK
Lee Bennett (ATPM Staff) · December 5, 2002 - 10:07 EST #2
DanK - generally, when displaying an FTP directory in a browser window, you can upload by dragging a file icon to the browser window. But a web browser is not and ideal FTP client. You should consider a standard FTP application if you're going to do a lot of FTP transfers. Panic Software's Transmit (available for both OS 9 and OS X) is a nice client.
Tom E.M. · January 5, 2003 - 11:53 EST #3
This is the way files should be shared between computers, using standard internet protocols instead of having one computer emulate another's proprietary file sharing system. That's what standards are for and this article is a good introduction to how it can work.

But the article points to a unfortunate deficiency in Mac OS X that needs repair. While the underlying Unix system supports FTP transfers (and more secure SSH/SCP transfers as well) so you can upload files using the command line (or even a browser), the Finder doesn't provide a GUI equivalent. If you mount a remote FTP volume in the Finder, it will be read-only. It shouldn't be necessary to use third party software to get a GUI for this very fundamental aspect of computing. Apple should phase out Appleshare and use FTP/SCP in its place, if it is really committed to internet standards (IMHO).
anonymous · July 21, 2003 - 20:46 EST #4
I was curious as to how a parent can access their childrens' Macs using FTP from a PC, or if this is something that is done through telnet once an offending file has been identified and possibly other issues.
Andrew Peace · April 2, 2004 - 01:25 EST #5
Hello. Excellent article on the Mac/PC file sharing. I am curious. Is it posssible to connect to the OS X's FTP server remotely via the internet from a P.C. at a different location? The article describes what seems to be a direct ethernet connection. I am a PC musician and i share music files with my Mac-using bandmates. We have traditionally been required to burn a data CD to share Reason 2.5 files (which are equally compatible on both Mac and PC.) In a perfect world I dream of just zipping files to and fro from the comfort of our respective homes. Is it possible to cut out all of the leg work, or is my dream just pie in the sky?
Thanks
Andrew Peace
Lee Bennett (ATPM Staff) · April 2, 2004 - 02:02 EST #6
Andrew - FTP is a platform-independent protocol, thus it will work perfectly. That's the whole point of the FTP server.

Just remember that the built-in FTP server only permits connecting as an existing user on that OS X machine, which also means that you have the same access to the hard drive as you would if you logged into the machine while sitting at it normally. If you want to create a permissions-based server with limited access, you would have to use a third-party utility.

Also, many people still don't realize that the FTP protocol is not secure. If someone happened to be watching your internet traffic at your location, they would be able to ascertain the password you used if they knew what they were doing. This can be combated with Secure FTP (SFTP) and rlogin protocols instead of standard FTP.
Anne Werle · July 5, 2005 - 19:41 EST #7
Hi Lee,

This article has been very helpful, but can you offer further instructions in regards to Andrew's last post? The Mac I'm trying to remotely log into is a server on a network that connects through an airport. What do I have to do differently to access this machine?

Thanks.
Gim · September 2, 2005 - 16:19 EST #8
How can you put other drives that are in the same mac to be able to access them over ftp? the default start ftp lets you see only the home directory.

Thank you
Gim
ATPM Staff · September 2, 2005 - 20:54 EST #9
Gim - other mounted volumes accessible by navigating all the way to the top level of the directory structure, then opening the Volumes folder.

So the path to a mounted volume is:

/Volumes/name-of-drive/
JA · November 10, 2005 - 12:40 EST #10
Sorry but I don't think that is correct. To my knowledge, there is no way to navigate up a level when using FTP. You are dropped in that particular user's directory and have no way to go "up" a level to get to the /Volumes/name directory.

I'm also looking for the solution to this issue.
ATPM Staff · November 10, 2005 - 12:54 EST #11
JA - Sorry, but it is correct. Try it. As long as you are logged in as a user and not as a guest, yes, by default you are dropped in the user's home folder, but you can navigate all the way to the top.

Keep in mind that user may have to have administrative rights to navigate outside of their home folder—I'm not perfectly clear on that—but if the user can access the entire hard drive locally, then they can access the entire hard drive when connected via FTP.
AndyW · November 12, 2005 - 10:29 EST #12
I'm pretty new to the whole Mac World, but I like what I see so far - it's nice having services such as web and ftp built in, but the FTP server seems to be lacking configuration (atleast to my novice eyes). Is there anyway you can change the home directory?
ATPM Staff · November 12, 2005 - 20:45 EST #13
Andy - no, the FTP server function built into OS X will only operate in conjunction with existing users on your computer. A login will, by default, point them to their own home directory. From there, they can navigate the hard drive via FTP with the same permissions they have if they were logged in physically to the computer. If you wish to set up a specific dedicated FTP space, you must look for other FTP server software to run instead.
Stuart Rennie · January 9, 2006 - 04:57 EST #14
Article seemed really useful however i'm having problems authenticating. I've tried using the mac's administrator account, other user accounts that are setup on the mac, i've also tried domain accounts as the mac is connected to Windows 2003 based network.

On the mac i have disabled the firewall incase this was the problem, have checked that FTP is enabled which it is. I know the mac username/password combination I am using is correct becuase I can log into the mac locally with it.

Any suggestions welcome.

Thanks
Simon Bailey · January 31, 2006 - 13:09 EST #15
Hi I have a wireless router (draytek vidor 2800g) attached to my power book g4 with tiger installed.

I am trying to set up a site in my sites folder in the HOME part of the hard drive utilising the apache server software built in.

I am however trying to build and impliment the site remotely so deem it necessary to load the files into the sites folder using ftp.

How do I access this folder from my work computer (xp) and transfer and test the new site, I have enabled ftp in the settings.

Simon
ATPM Staff · January 31, 2006 - 13:43 EST #16
Simon - FTP is indeed the least problematic way of doing the networking.

You'll need to open service ports 20-21 in your wireless router and direct them to the local IP address your PowerBook is using. You've already indicated you've enabled FTP on your PowerBook, so just make sure the ports are open to allow the outside connection.

Then, from your work computer, launch your FTP program and connect to the external IP address your internet provider assigned to you at home. You can determine this by opening a web browser from home and opening www.ipchicken.com

When you connect from work, use the same username and password for the FTP login as you use when you log in at home. Once connected, you'll have similar access/permissions to the hard drive as you do when you are local.
Simon Bailey · February 1, 2006 - 07:21 EST #17
Thanks for your help there.

Username and password, this is a tad confusing as I cannot fathom where I would have created this as I don't log in using ftp at home???

Simon
ATPM Staff · February 1, 2006 - 09:28 EST #18
No, but you did create a user account when you installed OS X. The short version (which is what you want for the FTP login) of your username is the same as the name of your Home folder. The password you would have assigned when you first set up your Mac, although you may have chosen to not have to enter it every time you boot up. Regardless, I hope you didn't chose to not even have a password. Even if you use the option to auto-log in when you boot your computer, a password should still be set for the account. It is this user name and password that you would also use when connecting via FTP from remote.
Garry S · February 2, 2006 - 10:40 EST #19
I think the information using the Volumes/ directory is bang on!

It seems that Volumes doesn't necessarily allow you to move up levels as some are contending (JA), but instead allows you to see what network and other mounts there are on the system. More like a hidden file that unless you know the name, wouldn't be able to access.

The Volume I was after was a second hard drive with all my files on it. This tidbit of information allowed me to set up the FTP to access it just fine.

Thanks!
ATPM Staff · February 2, 2006 - 11:43 EST #20
Garry - yes, what I was getting at is that the directory you're normally dropped into if you connect via FTP is your home folder, which is ~/username or, to be precise, /Users/username

If you navigate up one level from your home folder, you'd be in the /Users folder. One more still and you're at the computer's root, in which you'd see the /Volumes directory.
Gus Richardson · April 12, 2006 - 04:50 EST #21
Other than this, is there a way to sync 2 macs that both have access to high speed, but are 25 miles away from one another? Like if I start by putting the entire contents of #1 into #2, and then work on both computers doing differnt things... is there a way to sync them so they are always exactly the same, with the ssame info? Does .Mac have this ability?
Joseph Vasquez II · May 25, 2006 - 09:47 EST #22
Very helpful! Thanks!
Shelley · July 30, 2006 - 04:24 EST #23
Hi, does the FTP server have to be located on the Mac hard drive to function? Is it possible to set it up on an external RAID? We have a new Lacie "Biggest S2S", 2.5tb, configured Safe+Fast for archiving our graphic files (graphic designers) and would like to locate the FTP server on the same external device.

Thanks in advance for any advice, instructions.
ATPM Staff · July 30, 2006 - 12:12 EST #24
Shelley - if you're using the built-in Mac OS X FTP server, anyone who connects to it will _always_ have the same permissions as if they had physically come to that Mac and logged in with the same user name.

But, if you're setting up a true FTP daemon/server, then you can configure anywhere you wish to be the root directory and only give access there.
Pablo Gallastegui · September 19, 2006 - 16:36 EST #25
Great Article. Now, I have a problem, i Have many folder actions programmed to react whenever new items are added to those folders, but they seem to not work whenever there is no user logged in. Is there a way to activate folder actions even when noone is logged in??
Thanks a lot, keep up the good work!
sup · March 3, 2009 - 04:56 EST #26
@Gim and Ja: I had the same question as you, but found out that I *can* browse out of the user's home directory, but not by using Windows' build-in FTP client (i.e. typing in the FTP server's address into a explorer window/using explorer to navigate). I had to switch to using a dedicated FTP client (Filezilla worked for me) to be able to browse out of the OSX user's home folder. Hope that helps and clarifes things!

Add A Comment





 E-mail me new comments on this article