[Udev] Mauvaises permissions sur /dev/tty (Résolu)

Applications, problèmes de configuration réseau
Avatar de l’utilisateur
Xorg
Maître du Kyudo
Messages : 1933
Inscription : dim. 22 janv. 2012, 19:25
Localisation : Entre le clavier et la chaise.

[Udev] Mauvaises permissions sur /dev/tty (Résolu)

Message par Xorg »

Bonjour.

Je suis un peu embêté par mon problème car je ne vois absolument pas d'où vient le problème. En fait, en fonction des logiciels (j'en ai deux ou trois qui me font ça, dont par exemple agetty), ils ont souvent un problème avec mon /dev/tty, alors j'ai regardé ses permissions de plus près :

Code : Tout sélectionner

% ls -l /dev/tty                                       
crw--w---- 1 root tty 5, 0  8 mai   10:43 /dev/tty
Puis j'ai comparé avec mon ArchLinux 32 bits en machine virtuelle, et j'ai vu ceci :

Code : Tout sélectionner

$ ls -l /dev/tty
crw-rw-rw- 1 root tty 5, 0  8 mai   13:16 /dev/tty
J'ai donc vérifié le fichier /usr/lib/udev/rules.d/50-udev-default.rules :

Code : Tout sélectionner

# do not edit this file, it will be overwritten on update

SUBSYSTEM=="rtc", ATTR{hctosys}=="1", SYMLINK+="rtc"
SUBSYSTEM=="virtio-ports", KERNEL=="vport*", ATTR{name}=="?*", SYMLINK+="virtio-ports/$attr{name}"

SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", IMPORT{builtin}="usb_id", IMPORT{builtin}="hwdb --subsystem=usb"
SUBSYSTEM=="input", ENV{ID_INPUT}=="", IMPORT{builtin}="input_id"
ENV{MODALIAS}!="", IMPORT{builtin}="hwdb --subsystem=$env{SUBSYSTEM}"

ACTION!="add", GOTO="default_permissions_end"

SUBSYSTEM=="tty", KERNEL=="ptmx", GROUP="tty", MODE="0666"
SUBSYSTEM=="tty", KERNEL=="tty", GROUP="tty", MODE="0666"
SUBSYSTEM=="tty", KERNEL=="tty[0-9]*", GROUP="tty", MODE="0620"
SUBSYSTEM=="vc", KERNEL=="vcs*|vcsa*", GROUP="tty"
KERNEL=="tty[A-Z]*[0-9]|pppox[0-9]*|ircomm[0-9]*|noz[0-9]*|rfcomm[0-9]*", GROUP="uucp"

SUBSYSTEM=="rtc", ATTR{hctosys}=="1", MODE="0644"

SUBSYSTEM=="mem", KERNEL=="mem|kmem|port", GROUP="kmem", MODE="0640"

SUBSYSTEM=="input", KERNEL=="mouse*|mice|event*", MODE="0640"
SUBSYSTEM=="input", KERNEL=="ts[0-9]*|uinput", MODE="0640"
SUBSYSTEM=="input", KERNEL=="js[0-9]*", MODE="0644"

SUBSYSTEM=="video4linux", GROUP="video"
SUBSYSTEM=="misc", KERNEL=="agpgart", GROUP="video"
SUBSYSTEM=="graphics", GROUP="video"
SUBSYSTEM=="drm", GROUP="video"
SUBSYSTEM=="dvb", GROUP="video"

SUBSYSTEM=="sound", GROUP="audio", \
  OPTIONS+="static_node=snd/seq", OPTIONS+="static_node=snd/timer"

SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0664"

SUBSYSTEM=="firewire", ATTR{units}=="*0x00a02d:0x00010*", GROUP="video"
SUBSYSTEM=="firewire", ATTR{units}=="*0x00b09d:0x00010*", GROUP="video"
SUBSYSTEM=="firewire", ATTR{units}=="*0x00a02d:0x010001*", GROUP="video"
SUBSYSTEM=="firewire", ATTR{units}=="*0x00a02d:0x014001*", GROUP="video"

KERNEL=="parport[0-9]*", GROUP="lp"
SUBSYSTEM=="printer", KERNEL=="lp*", GROUP="lp"
SUBSYSTEM=="ppdev", GROUP="lp"
KERNEL=="lp[0-9]*", GROUP="lp"
KERNEL=="irlpt[0-9]*", GROUP="lp"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_USB_INTERFACES}=="*:0701??:*", GROUP="lp"

SUBSYSTEM=="block", GROUP="disk"
SUBSYSTEM=="block", KERNEL=="fd[0-9]", GROUP="floppy"
SUBSYSTEM=="block", KERNEL=="sr[0-9]*", GROUP="optical"
SUBSYSTEM=="scsi_generic", SUBSYSTEMS=="scsi", ATTRS{type}=="4|5", GROUP="optical"
KERNEL=="sch[0-9]*", GROUP="optical"
KERNEL=="pktcdvd[0-9]*", GROUP="optical"
KERNEL=="pktcdvd", GROUP="optical"

SUBSYSTEM=="scsi_generic|scsi_tape", SUBSYSTEMS=="scsi", ATTRS{type}=="1|8", GROUP="storage"
SUBSYSTEM=="scsi_generic", SUBSYSTEMS=="scsi", ATTRS{type}=="0", GROUP="disk"
KERNEL=="qft[0-9]*|nqft[0-9]*|zqft[0-9]*|nzqft[0-9]*|rawqft[0-9]*|nrawqft[0-9]*", GROUP="disk"
KERNEL=="rawctl", GROUP="disk"
SUBSYSTEM=="raw", KERNEL=="raw[0-9]*", GROUP="disk"
SUBSYSTEM=="aoe", GROUP="disk", MODE="0220"
SUBSYSTEM=="aoe", KERNEL=="err", MODE="0440"

KERNEL=="rfkill", MODE="0644"
KERNEL=="tun", MODE="0666", OPTIONS+="static_node=net/tun"

KERNEL=="fuse", MODE="0666", OPTIONS+="static_node=fuse"

LABEL="default_permissions_end"
SUBSYSTEM=="tty", KERNEL=="tty", GROUP="tty", MODE="0666"
Certes, ça devrait être bon...

J'ai essayé d'en rajouter une couche en créant le fichier /etc/udev/rules.d/50-tty.rules avec :

Code : Tout sélectionner

SUBSYSTEM=="tty", KERNEL=="tty", GROUP="tty", MODE="0666"
Mais au reboot, les permissions sont toujours fausses sur /dev/tty.

Le plus curieux, c'est quand je regarde le Wiki. J'ai essayé de faire ceci :

Code : Tout sélectionner

# udevadm info -a -n /dev/tty

Code : Tout sélectionner

% sudo udevadm test $(udevadm info -q path -n /dev/tty) 2>&1
calling: test
version 202
This program is for debugging only, it does not run any program
specified by a RUN key. It may show incorrect results, because
some values may be different, or not available at a simulation run.

=== trie on-disk ===
tool version:          202
file size:         5615641 bytes
header size             80 bytes
strings            1258089 bytes
nodes              4357472 bytes
load module index
read rules file: /usr/lib/udev/rules.d/10-dm.rules
read rules file: /etc/udev/rules.d/10-esata.rules
read rules file: /etc/udev/rules.d/10-network.rules
read rules file: /usr/lib/udev/rules.d/10-vboxdrv.rules
read rules file: /usr/lib/udev/rules.d/13-dm-disk.rules
read rules file: /usr/lib/udev/rules.d/40-hpet-permissions.rules
read rules file: /usr/lib/udev/rules.d/40-usb-media-players.rules
read rules file: /usr/lib/udev/rules.d/42-usb-hid-pm.rules
read rules file: /usr/lib/udev/rules.d/50-firmware.rules
read rules file: /etc/udev/rules.d/50-tty.rules
read rules file: /usr/lib/udev/rules.d/50-udev-default.rules
read rules file: /etc/udev/rules.d/51-android.rules
read rules file: /usr/lib/udev/rules.d/60-cdrom_id.rules
read rules file: /usr/lib/udev/rules.d/60-pcmcia.rules
read rules file: /usr/lib/udev/rules.d/60-persistent-alsa.rules
read rules file: /usr/lib/udev/rules.d/60-persistent-input.rules
read rules file: /usr/lib/udev/rules.d/60-persistent-serial.rules
read rules file: /usr/lib/udev/rules.d/60-persistent-storage-tape.rules
read rules file: /usr/lib/udev/rules.d/60-persistent-storage.rules
read rules file: /usr/lib/udev/rules.d/60-persistent-v4l.rules
read rules file: /usr/lib/udev/rules.d/61-accelerometer.rules
read rules file: /usr/lib/udev/rules.d/63-md-raid-arrays.rules
read rules file: /usr/lib/udev/rules.d/64-btrfs.rules
read rules file: /usr/lib/udev/rules.d/64-md-raid-assembly.rules
read rules file: /usr/lib/udev/rules.d/69-cd-sensors.rules
IMPORT found builtin 'usb_id --export %p', replacing /usr/lib/udev/rules.d/69-cd-sensors.rules:89
read rules file: /usr/lib/udev/rules.d/69-libmtp.rules
read rules file: /etc/udev/rules.d/69-libticables.rules
read rules file: /usr/lib/udev/rules.d/70-infrared.rules
read rules file: /usr/lib/udev/rules.d/70-power-switch.rules
read rules file: /usr/lib/udev/rules.d/70-uaccess.rules
read rules file: /usr/lib/udev/rules.d/71-seat.rules
read rules file: /usr/lib/udev/rules.d/73-seat-late.rules
read rules file: /usr/lib/udev/rules.d/75-net-description.rules
read rules file: /usr/lib/udev/rules.d/75-probe_mtd.rules
read rules file: /usr/lib/udev/rules.d/75-tty-description.rules
read rules file: /usr/lib/udev/rules.d/78-sound-card.rules
read rules file: /usr/lib/udev/rules.d/80-drivers.rules
read rules file: /usr/lib/udev/rules.d/80-net-name-slot.rules
read rules file: /usr/lib/udev/rules.d/80-udisks.rules
read rules file: /usr/lib/udev/rules.d/80-udisks2.rules
read rules file: /usr/lib/udev/rules.d/85-usbmuxd.rules
read rules file: /usr/lib/udev/rules.d/90-alsa-restore.rules
read rules file: /usr/lib/udev/rules.d/95-cd-devices.rules
read rules file: /usr/lib/udev/rules.d/95-dm-notify.rules
read rules file: /usr/lib/udev/rules.d/95-keyboard-force-release.rules
read rules file: /usr/lib/udev/rules.d/95-keymap.rules
read rules file: /usr/lib/udev/rules.d/95-udev-late.rules
read rules file: /usr/lib/udev/rules.d/95-upower-battery-recall-dell.rules
read rules file: /usr/lib/udev/rules.d/95-upower-battery-recall-fujitsu.rules
read rules file: /usr/lib/udev/rules.d/95-upower-battery-recall-gateway.rules
read rules file: /usr/lib/udev/rules.d/95-upower-battery-recall-ibm.rules
read rules file: /usr/lib/udev/rules.d/95-upower-battery-recall-lenovo.rules
read rules file: /usr/lib/udev/rules.d/95-upower-battery-recall-toshiba.rules
read rules file: /usr/lib/udev/rules.d/95-upower-csr.rules
read rules file: /usr/lib/udev/rules.d/95-upower-hid.rules
read rules file: /usr/lib/udev/rules.d/95-upower-wup.rules
read rules file: /usr/lib/udev/rules.d/97-bluetooth-hid2hci.rules
read rules file: /usr/lib/udev/rules.d/99-systemd.rules
read rules file: /etc/udev/rules.d/disable_wol.rules
read rules file: /etc/udev/rules.d/pci_pm.rules
read rules file: /etc/udev/rules.d/usb_power_save.rules
rules contain 98304 bytes tokens (8192 * 12 bytes), 33125 bytes strings
10917 strings (104068 bytes), 8567 de-duplicated (73294 bytes), 2351 trie nodes used
GROUP 5 /etc/udev/rules.d/50-tty.rules:1
MODE 0666 /etc/udev/rules.d/50-tty.rules:1
GROUP 5 /usr/lib/udev/rules.d/50-udev-default.rules:13
MODE 0666 /usr/lib/udev/rules.d/50-udev-default.rules:13
IMPORT builtin 'hwdb' /usr/lib/udev/rules.d/75-tty-description.rules:11
handling device node '/dev/tty', devnum=c5:0, mode=0666, uid=0, gid=5
set permissions /dev/tty, 020666, uid=0, gid=5
preserve already existing symlink '/dev/char/5:0' to '../tty'
ACTION=add
DEVMODE=0666
DEVNAME=/dev/tty
DEVPATH=/devices/virtual/tty/tty
MAJOR=5
MINOR=0
SUBSYSTEM=tty
USEC_INITIALIZED=307342403
unload module index
Et bien entendu, ça a marché :

Code : Tout sélectionner

% ls -l /dev/tty                                           
crw-rw-rw- 1 root tty 5, 0  8 mai   11:00 /dev/tty
Mais 'set permissions' ? Car si je le fais une deuxième fois, j'ai un 'preserve permissions', ce qui prouve que ça n'a pas été fait au démarrage. :?

J'espère que mon problème est juste un oublis quelque part...

Merci d'avance. :)
Dernière modification par Xorg le dim. 19 mai 2013, 11:04, modifié 1 fois.
Arch Linux x86_64 - Sway
AMD Ryzen 5 3600X - 32 Go de DDR4 - SSD NVMe 1 To + SSD SATA 250 Go - Sapphire NITRO+ Radeon RX 580
Image AUR___Image Wiki___Image GitHub
Avatar de l’utilisateur
Xorg
Maître du Kyudo
Messages : 1933
Inscription : dim. 22 janv. 2012, 19:25
Localisation : Entre le clavier et la chaise.

Re: [Udev] Mauvaises permissions sur /dev/tty

Message par Xorg »

Bon, j'ai voulu contourner le problème en lançant la commande "miracle" avec Systemd en écrivant le service /etc/systemd/system/udev-tty.service :

Code : Tout sélectionner

[Unit]
Description=Force Udev tty's rules to load
Wants=systemd-udevd.service
After=multi-user.target

[Service]
Type=oneshot
ExecStart=/sbin/udevadm test /devices/virtual/tty/tty

[Install]
WantedBy=multi-user.target
Je le lance manuellement, ça marche super. Je l'active au boot, il se lance, mais de nouveau ça ne marche pas !

Code : Tout sélectionner

% systemctl status udev-tty.service
udev-tty.service - Force Udev tty's rules to load
   Loaded: loaded (/etc/systemd/system/udev-tty.service; enabled)
   Active: inactive (dead) since sam. 2013-05-11 10:10:15 CEST; 16min ago
 Main PID: 659 (code=exited, status=0/SUCCESS)
   CGroup: name=systemd:/system/udev-tty.service

mai 11 10:10:15 localhost udevadm[659]: read rules file: /usr/lib/udev/rules.d/80-udisks.rules
mai 11 10:10:15 localhost udevadm[659]: read rules file: /usr/lib/udev/rules.d/80-udisks2.rules
mai 11 10:10:15 localhost udevadm[659]: read rules file: /usr/lib/udev/rules.d/85-usbmuxd.rules
mai 11 10:10:15 localhost udevadm[659]: read rules file: /usr/lib/udev/rules.d/90-alsa-restore.rules
mai 11 10:10:15 localhost udevadm[659]: read rules file: /usr/lib/udev/rules.d/95-cd-devices.rules
mai 11 10:10:15 localhost udevadm[659]: read rules file: /usr/lib/udev/rules.d/95-dm-notify.rules
mai 11 10:10:15 localhost udevadm[659]: read rules file: /usr/lib/udev/rules.d/95-keyboard-force-release.rules
mai 11 10:10:15 localhost udevadm[659]: read rules file: /usr/lib/udev/rules.d/95-keymap.rules
mai 11 10:10:15 localhost udevadm[659]: read rules file: /usr/lib/udev/rules.d/95-udev-late.rules
mai 11 10:10:15 localhost systemd[1]: Started Force Udev tty's rules to load.
La preuve :

Code : Tout sélectionner

% ls -l /dev/tty
crw--w---- 1 root tty 5, 0 11 mai   10:17 /dev/tty
Arch Linux x86_64 - Sway
AMD Ryzen 5 3600X - 32 Go de DDR4 - SSD NVMe 1 To + SSD SATA 250 Go - Sapphire NITRO+ Radeon RX 580
Image AUR___Image Wiki___Image GitHub
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17629
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Udev] Mauvaises permissions sur /dev/tty

Message par benjarobin »

En faite cela doit très bien fonctionner (ton service) mais il y a un autre programme qui doit changer les droits : ton interface graphique / gestionnaire de connexion ?
Essaye de démarrer sans le graphique et regarde les permissions

Personnellement je suis sous KDM/KDE et j'ai ceci

Code : Tout sélectionner

ls -l /dev/tty0
crw--w---- 1 root tty 4, 0 11 mai   10:32 /dev/tty0
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
Xorg
Maître du Kyudo
Messages : 1933
Inscription : dim. 22 janv. 2012, 19:25
Localisation : Entre le clavier et la chaise.

Re: [Udev] Mauvaises permissions sur /dev/tty

Message par Xorg »

En fait, par défaut après le boot, je suis en console, donc j'ai modifié le service de telle façon :

Code : Tout sélectionner

[Unit]
Description=Force Udev tty's rules to load
Wants=systemd-udevd.service
After=multi-user.target
 
[Service]
Type=simple
ExecStart=/usr/bin/udevadm test $(udevadm info -q path -n /dev/tty) 2>&1
 
[Install]
WantedBy=multi-user.target
Pour moi, c'est la dernière chose qui devrait être lancée, et pourtant, il y a un soucis. Si je lance manuellement ça marche.

Attention, tu me parles de /dev/tty0, dont les permissions chez toi et moi sont les mêmes et normales. Moi je parle de /dev/tty, sans nombre derrière. :)
Arch Linux x86_64 - Sway
AMD Ryzen 5 3600X - 32 Go de DDR4 - SSD NVMe 1 To + SSD SATA 250 Go - Sapphire NITRO+ Radeon RX 580
Image AUR___Image Wiki___Image GitHub
Avatar de l’utilisateur
Xorg
Maître du Kyudo
Messages : 1933
Inscription : dim. 22 janv. 2012, 19:25
Localisation : Entre le clavier et la chaise.

Re: [Udev] Mauvaises permissions sur /dev/tty (Résolu)

Message par Xorg »

Ah, j'ai résolu mon problème un peu par hasard. Je crois bien que c'était dans mon dossier /etc/systemd/system/getty.target.wants qu'il y avait problème, car j'avais les fichiers :

Code : Tout sélectionner

autologin@tty.service
getty@tty.service
Certainement une erreur de ma part le jour où j'avais configuré l'autologin.

Code : Tout sélectionner

# systemctl disable autologin@tty.service
# systemctl disable getty@tty.service
Et c'est tout bon :

Code : Tout sélectionner

% ls -l /dev/tty                                
crw-rw-rw- 1 root tty 5, 0 19 mai   09:20 /dev/tty
Je précise quand même, mon service /etc/systemd/system/udev-tty.service n'a donc plus lieu d'exister, vu que les règles par défaut d'Udev sont correctes.

Merci quand même Benjarobin pour ton aide, au fond tu avais raison, c'était le gestionnaire de connexion de Systemd que j'avais mal configuré. :)
Arch Linux x86_64 - Sway
AMD Ryzen 5 3600X - 32 Go de DDR4 - SSD NVMe 1 To + SSD SATA 250 Go - Sapphire NITRO+ Radeon RX 580
Image AUR___Image Wiki___Image GitHub
Répondre