here is my solution;
add a new udev rules file for permissions:
sudoedit /etc/udev/rules.d/50-usb-permissions.rules
paste the following in our new rules file:
(it gives all permission to any USB* and ACM* devices)
KERNEL=="ttyUSB[0-9]*",MODE="0666"
KERNEL=="ttyACM[0-9]*",MODE="0666"
that's it. this will give you all the permissions to all usb devices on every boot. also you can reload udev instead of rebooting.
udevadm control --reload-rules
*** please note that this gives permissions to all USB* and ACM* devices.
if you're concerned about security you can add the following so that only the mentioned device will be accessable:
ATTRS{idVendor}=="XXXX", ATTRS{idProduct}=="YYYY"
for example, in my case (output from dmesg):
[ 2654.037338] usb 1-1: New USB device found, idVendor=1a86, idProduct=7523
[ 2654.037344] usb 1-1: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[ 2654.037347] usb 1-1: Product: USB2.0-Serial
[ 2654.038531] usb 1-1: ch341-uart converter now attached to ttyUSB0
so, for me it's:
ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523"