Samba is certainly one way to go and allows Windows clients to browse as well.
You can also setup AFP (Apple File Protocol) on your Linux box. OSX supports this natively so you get the same experience as connecting to another Mac on your network. My "experience" (highly subjective) is that AFP seems faster than SMB especially since Mountain Lion/Mavericks.
Here's a simple walk through on setting up AFP on your linux box, from http://straightedgelinux.com/blog/howto/afp.html:
As root, install netatalk
aptitude install netatalk
Setup afpd.conf
emacs -nw /etc/netatalk/afpd.conf
Most of this file consists of comments about how to configure AFP. The line that matters is this:
- -tcp -noddp -uamlist uams_dhx.so,uams_dhx2.so -nosavepassword
Create a directory that will be the shared location
useradd -m macshare
Next, modify /etc/netatalk/AppleVolumes.default
emacs -nw /etc/netatalk/AppleVolumes.default
And make it look pretty much exactly like this:
:DEFAULT: options:upriv,usedots /home/macshare macshare
allow:instructor,student,admin,staff,klaatu,bob,carol,alice
options:upriv,usedots dperm:0777 fperm:0220
I habitually commandeer the floppy group and make it the group that has a more admin-y access to the shared directory. You do not have to do that; you can make your own group.
usermod -G floppy macshare
usermod -G floppy admin
Now chown the /home/macshare folder and also set its UNIX permissions
chown -R macshare:floppy /home/machshare
chmod 775 /home/macshare
Now set some defaults, which debian places in /etc/defaults. The important part is what netatalk runs when it is started up:
ATALKD_RUN=no
PAPD_RUN=no TIMELORD_RUN=no
A2BOOT_RUN=no
CNID_METAD_RUN=yes
AFPD_RUN=yes
Restart netatalk to instantiate the changes.
/etc/init.d/netatalk restart
Your users should now be able to log in remotely.