Yep, My arduino uno rev3 appears as ttyACM0
Watch out for things which are /nominally/ Unos but also appear on /dev/ttyUSB0. It all depends on whether whoever made it uses a second AVR chip to provide the TTY/serial -> USB interface, or a knockoff FTDI chip.
I'm not sure how it started working....I'm guessing it was somewhere with me adding me to "dialout" and/or setting the file permissions on /dev/ttyACM0 and/or rebooting for these to take affect.
Anywho, the next challenge is the get the arduino to output the right thing to program an at89s51 thru its ISP pins......Always problems to solve. 
I thought it indelicate to remind you that I'd specifically said you'd need to logout after adding yourself to the dialout group :-) You probably aren't able to make permissions/ownership of serial ports stick, since they're set from defaults when the device is plugged in (or a plugin is simulated when the computer boots)... there's a way round that described in the installation notes for things like Teensies.
I've not tried writing code to program an AVR chip, but at one point I was modifying the boot loader to work on a card I'd "upcycled" from a scrap washing machine and found it useful to write something to check what speed the target device was running at and what DTRt state reset it
https://github.com/MarkMLl/ping-arduino-loaderThere's a couple of demo programs at
https://github.com/MarkMLl/serialcomms which might be useful, one of them simply echoes serial stuff and the other is a simple terminal emulator. However note that the second is somewhat topheavy on all the stuff needed to get a standard Linux console to work as expected (i.e. "raw" rather than "cooked").
Also the locateports.pas has SerOpenLocked() and SerAvailable(), the latter tries to accommodate various kernel quirks that I've learnt about the hard way. Apart from that, the serial.pp stuff has stood up fairly well.
MarkMLl