If you get the following error when uploading a program to your Arduino on Linux, it is a permissions issue:
avrdude: ser_open(): can't open device "/dev/ttyACM0": Permission denied
Solution: You can fix this by granting read/write permissions to that port using the following command:
sudo chmod a+rw /dev/ttyACM0
Note that the port the Arduino is connected to is not always ttyACM0. Check to see if that port exists by typing the following command and see if that port is shown:
ls /dev/ttyACM0