[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: user perms



On 6/15/22 14:45, David Wright wrote:
[...]

   /lib/udev/rules.d/ unsurprisingly contains examples of
almost every sort of device.
But not once does is specifically mention /dev/ttyUSB. Its a bit
hard to find the rule for a serial adapter when its not mention
any place it the whole directory tree.
It is there but apparently my use of grep was defective.

> Well, there might not be, if you don't install anything that requires
those sorts of devices to be configured. Debian doesn't see the need
to include hundreds of configuration files for no particular reason.

You could try installing a few serial-ish packages to see what turns
up, or you could google for any mention of these files.
nut and heyu are both serial port users who have long since learned
how to speak serial thru USB shaped holes in back panels.
As it happens, I find I have (but don't use):

$ grep -i ttyusb /lib/udev/rules.d/*
/lib/udev/rules.d/40-usb_modeswitch.rules:# Adds a symlink "gsmmodem[n]" to the lowest ttyUSB port with interrupt
/lib/udev/rules.d/40-usb_modeswitch.rules:KERNEL=="ttyUSB*", ATTRS{bNumConfigurations}=="*", PROGRAM="usb_modeswitch --symlink-name %p %s{idVendor} %s{idProduct} %E{PRODUCT}", SYMLINK+="%c"
/lib/udev/rules.d/60-serial.rules:KERNEL!="ttyUSB[0-9]*|ttyACM[0-9]*", GOTO="serial_end"
/lib/udev/rules.d/77-mm-fibocom-port-types.rules:#  ttyUSB0 (if #0): QCDM port
/lib/udev/rules.d/77-mm-fibocom-port-types.rules:#  ttyUSB1 (if #1): AT port
/lib/udev/rules.d/77-mm-fibocom-port-types.rules:#  ttyUSB2 (if #2): AT port
/lib/udev/rules.d/77-mm-fibocom-port-types.rules:#  ttyUSB2 (if #3): Ignore
/lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB0 (if #0): QCDM/DIAG port
/lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB1 (if #1): GPS data port
/lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB2 (if #2): AT primary port
/lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB3 (if #3): AT secondary port
/lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB0 (if #0): QCDM/DIAG port
/lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB1 (if #1): GPS data port
/lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB2 (if #2): AT primary port
/lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB3 (if #3): AT secondary port
/lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB0 (if #0): QCDM/DIAG port
/lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB1 (if #1): GPS data port
/lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB2 (if #2): AT primary port
/lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB3 (if #3): AT secondary port
/lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB0 (if #0): QCDM/DIAG port
/lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB1 (if #1): GPS data port
/lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB2 (if #2): AT primary port
/lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB3 (if #3): AT secondary port
/lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB0 (if #0): QCDM/DIAG port
/lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB1 (if #1): GPS data port
/lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB2 (if #2): AT primary port
/lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB3 (if #3): AT secondary port
/lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB0 (if #0): QCDM/DIAG port
/lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB1 (if #1): GPS data port
/lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB2 (if #2): AT primary port
/lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB3 (if #3): AT secondary port
$
And so do I
ene@coyote:/lib/udev/rules.d$ grep -i ttyusb /lib/udev/rules.d/*
/lib/udev/rules.d/40-usb_modeswitch.rules:# Adds a symlink "gsmmodem[n]" to the lowest ttyUSB port with interrupt /lib/udev/rules.d/40-usb_modeswitch.rules:KERNEL=="ttyUSB*", ATTRS{bNumConfigurations}=="*", PROGRAM="usb_modeswitch --symlink-name %p %s{idVendor} %s{idProduct} %E{PRODUCT}", SYMLINK+="%c" /lib/udev/rules.d/60-serial.rules:KERNEL!="ttyUSB[0-9]*|ttyACM[0-9]*", GOTO="serial_end" /lib/udev/rules.d/77-mm-fibocom-port-types.rules:#  ttyUSB0 (if #0): QCDM port
/lib/udev/rules.d/77-mm-fibocom-port-types.rules:#  ttyUSB1 (if #1): AT port
/lib/udev/rules.d/77-mm-fibocom-port-types.rules:#  ttyUSB2 (if #2): AT port
/lib/udev/rules.d/77-mm-fibocom-port-types.rules:#  ttyUSB2 (if #3): Ignore
/lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB0 (if #0): QCDM/DIAG port /lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB1 (if #1): GPS data port /lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB2 (if #2): AT primary port /lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB3 (if #3): AT secondary port /lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB0 (if #0): QCDM/DIAG port /lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB1 (if #1): GPS data port /lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB2 (if #2): AT primary port /lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB3 (if #3): AT secondary port /lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB0 (if #0): QCDM/DIAG port /lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB1 (if #1): GPS data port /lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB2 (if #2): AT primary port /lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB3 (if #3): AT secondary port /lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB0 (if #0): QCDM/DIAG port /lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB1 (if #1): GPS data port /lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB2 (if #2): AT primary port /lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB3 (if #3): AT secondary port /lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB0 (if #0): QCDM/DIAG port /lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB1 (if #1): GPS data port /lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB2 (if #2): AT primary port /lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB3 (if #3): AT secondary port /lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB0 (if #0): QCDM/DIAG port /lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB1 (if #1): GPS data port /lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB2 (if #2): AT primary port /lib/udev/rules.d/77-mm-quectel-port-types.rules:#  ttyUSB3 (if #3): AT secondary port
looks the same to me.
And an ls -l /dev/ttyUSB* gives this:
gene@coyote:~/.heyu$ ls -l /dev/ttyUSB*
crw-rw---- 1 root dialout 188, 0 Jun 15 15:17 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 1 Jun 15 12:22 /dev/ttyUSB1

 heyu's x10config has TTY=/dev/ttyUSB0,
 gene@coyote:~/.heyu$ grep -i ttyusb x10config
TTY    /dev/ttyUSB0

but heyu runs as me since I compiled it and root installed it

And:
gene@coyote:~/.heyu$ but a "heyu info" (which should
return a list of the 16 house A addresses, their state,
and the cm11a clock time ad battery status)

but "heyu info" returns:
HEYU: Can't open tty line.  Check the permissions.

Nut was installed from the bullseye repo, and it is
in the next boat over, using /dev/ttyUSB1, AND
saying Check the permissions.

I just changed those 2 devices to gene:gene, and
0777 which should have fixed heyu, but it didn't
so I put it back to original. So the problem after the 32nd install,
and 2 reboots because I downloaded the memtest86, v9.4 free
version put it on a sd card in a card reader, and ran it one pass
with zero errors, and the perms problem now seems to have
escalated. AppArmor is installed, is it now a 2nd cause for a
perms denial?
I think the packages they belong to are installed just as Recommends.

[ … snipped stuff about solder and email ?fonts … ]

Cheers,
David.
Take care and stay well, David.

Cheers, Gene Heskett.
--
"There are four boxes to be used in defense of liberty:
 soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author, 1940)
If we desire respect for the law, we must first make the law respectable.
 - Louis D. Brandeis


Reply to: