I had Windows XP on this box and it failed. Thinking it was corrupted OS I tried to reinstall, and it failed. But then I tried to install Ubuntu, and I could not run it from the USB or from the HD.

Did the mem test and found out one of my 512MB sticks (had 2) failed. I removed the bad one and was able to install Ubuntu but it was sluggish.

I was trying to quickly setup my packet radio for Hurricane Sandy. Downloaded the Serial Port Terminal and was able to get some use but the system kept locking up. So Installed Xubuntu next to it, planning on running out the next day to get RAM for the box. Put Xubuntu on and now I am getting the following error with serial port terminal.:

Cannot open /dev/ttyS0: Permission denied

I would like to be able to use serial port terminal, or equivalent with Xubuntu so I can use my kpc3 packet terminal, connect to the com port on the back of my computer.

Any ideas?

The tty devices belong to the "dialout" group, I suspect you are not a member of this group and hence are denied access to /dev/ttyS0, so you need to add yourself to that group.

First check if you are a member of that group:

groups ${USER}

..this will list all the groups you belong to. If you don't belong to the dialout grup then add yourself to it, for example:

sudo gpasswd --add ${USER} dialout

You then need to log out and log back in again for it to be effective. Then see if it fixes your problem.

  • Even being in dialout group user with id 1000 can't open serial port to read. After reboot. But, when I use sudo for the same executable, then it able to open /dev/ttyS0. What the possible reason? – Orient Aug 2 '17 at 12:31
  • @Orient I had the same problem and it was because the group dialout wasn't defined. Running newgrp dialout fixed the problem. – TheGr8_Nik Dec 11 at 10:17

The only solution that works for me is to: (every time I boot the machine)

sudo chmod 666 /dev/ttys0

It really needs to be fixed at time of installation. I'm on 15.10 and have tried 16.04 LTS, still the same there. Seems like such a simple fix.

The older versions 10.04LTS did not have this problem.

  • 1
    this work with raspberry pi 3 but when I reboot lost the permissions. – J261 Sep 14 '16 at 21:25
  • 1
    Adding permissions to my username for dialout worked fine, pretty simple fix. – DRJ101 Sep 16 '16 at 16:57

Had a look around various forums and it looks to be a bug related to permissions. Here's how I got around the problem (long version). You WILL need BOTH cu and setserial packages installed.

In three terminal tabs, monitored output from # tail -f /var/log/messages That's how we know if we have a /dev/ttyUSB0 or not.

In the second tab, simply ran a loop to ls -l this device to see it's permissions and it's group ID is 'dialout'. THIS is the critical bit. For some reason, your user MUST use this GID to do the cu, so...

In the third tab, as root, did # newgrp dialout (to correspond with the GID of dialout). Tested with # touch /tmp/anything ... doing ls -l on this file shows it is created by root with a dialout group, so we're ready to ... # cu -l /dev/ttyUSB0 In my case I needed to hit return again to see the expected prompt, in other cases speed may need to be specified.

  • This was the actual piece that helped me: For some reason, your user MUST use this GID to do the cu, so... . Thanks a million. – ΤΖΩΤΖΙΟΥ Jun 15 '15 at 8:46

You can just use this command:

sudo adduser $USER dialout

This will add the current user to the dialout group. Login and out it to take effect.

In my case the problem still exist, even when I add my user to group using:

So when I use :

sudo gpasswd --add ${USER} dialout

and when I type: groups I got this result:

ilyahoo adm cdrom sudo dip plugdev lpadmin sambashare

But when I type id -Gn ilyahoo the putput is:

ilyahoo adm tty dialout cdrom sudo dip plugdev lpadmin sambashare 

I know that there is a problem that I don't know what is it honestly.

To get a solution I just typed

newgrp ilyahoo

and the problem was fixed.

  • Welcome ilyahoo to askubuntu! Please try to format post according to our guide line. Try to format the output in a more readable manner. Thanks – abu_bua Jun 28 at 0:06
  • 1
    @abu_bua please use code formatting for command output, not quote formatting. – muru Jun 28 at 6:05

Here is the solution:

I had just updated my operating system to Ubuntu 18. normally I would install arduino IDE through the Arduino web sight because the one provided via Ubuntu Software portal was always an older version, and I wanted the newest features and board support. However, since I just installed the newest operating system, I figured that the official software center from ubuntu would have the newest version of the IDE listed, and it did.

Now to the juicy part! Both my laptop and my desktop had the same problems accessing the serial ports. i had done the make user part of the dial-up group, and set permissions for the serial port, but always had to log out then back in, do it all again every time i rebooted! NOT FUN!.

This time, it didn't work. Even in the software center the permissions option for the software shows the serial port "disconnected". no option to allow permission to the port even after all the permissions were granted manually through the terminal window using sudo.

I decided to uninstall the Arduino IDE from the software center, and install it from the web sight, so i did. This time I read the install files, just to see if it mentions permissions for the serial port or not, *****of course it did! ****** all the ports are set with full access permissions, user access across the board. Turns out this was the answer. after running the arduino-linux-setup.sh file provided by arduino, all serial port problems were solved. the following is an excerpt from the arduino-linux-setup.sh file;

echo ""
echo "******* Add User to dialout,tty, uucp, plugdev groups *******"
echo ""

sudo usermod -a -G tty $1
sudo usermod -a -G dialout $1
sudo usermod -a -G uucp $1
sudo groupadd plugdev
sudo usermod -a -G plugdev $1


acmrules () {

    echo ""
    echo "# Setting serial port rules"
    echo ""

    cat <<EOF
    "KERNEL="ttyUSB[0-9]*", TAG+="udev-acl", TAG+="uaccess", OWNER="$1"
   "KERNEL="ttyACM[0-9]*", TAG+="udev-acl", TAG+="uaccess", OWNER="$1"
   EOF

}

so you see even the KERNEL is effected. My suggestion:

install from the arduino ide web site. ignore the software center at this time, until it is repaired. Yes the SOFTWARE CENTER is not allowing permmisions to the serial port during install, and forever after.

Problem Solved!

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.