logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 16-11-2020 18:50:43

Caille
Membre
Distrib. : Debian SID
Noyau : 5.9.0-1 amd64
(G)UI : Gnome
Inscription : 24-06-2017

Vous exécutez Synaptic sur Wayland avec l'autorisation root [Résolu]

Bonjour,

J'ai un problème de lancement de Synaptic sous Buster, voir ci-dessous.

caille@Buster:~$ sudo synaptic
[sudo] Mot de passe de caille : 
No protocol specified
Unable to init server: Impossible de se connecter : Connexion refusée
Failed to initialize GTK.

Probably you're running Synaptic on Wayland with root permission.
Please restart your session without Wayland, or run Synaptic without root permission
caille@Buster:~$
 

J'ai trouvé une solution incomplète, car il faut toujours lancer cette commande avant et toujours en ligne de commande.
Un peu mieux comme ça, mais toujours en ligne de commande, pas directement via le raccourci du dock !
https://www.youtube.com/watch?v=oAk7wBRt0uU

xhost +si:localuser:root
sudo synaptic

Comme j'ai créé un favoris dans le dock, j'aimerais pouvoir démarrer Synaptic directement.
Par contre je désire rester sous Gnome et ne pas passer sous Gnome Classic !

Cordialement.
.

Dernière modification par Caille (17-11-2020 17:53:33)

Hors ligne

#2 16-11-2020 19:25:00

enicar
Membre
Lieu : pas ici
Distrib. : sid
Noyau : Linux 6.5.3
(G)UI : openbox
Inscription : 26-08-2010

Re : Vous exécutez Synaptic sur Wayland avec l'autorisation root [Résolu]

Bonjour,
En bref, sous wayland, ce n'est pas possible de lancer des logiciels graphiques avec les droits root
dans une session utilisateur. C'est voulu.

Si le xhost fonctionne, c'est que tu utilises une session Xorg et pas wayland. Sauf si les choses
ont changé depuis la dernière fois que j'ai regardé. Mais bon peut-être que je me trompe.

Et si ça marche, il suffit de créer un petit shell script :


#! /bin/sh
xhost +si:localuser:root
sudo synaptic
 



Et mettre ce script dans ~/.local/bin/. On peut l'appeler start-synaptic. Au lieu de taper
juste synaptic tu devras taper start-synaptic.

PS: J'avais expliqué dans un fil de discussion il y a longtemps comment lancer
en root une application graphique et pourquoi il ne faut pas le faire. Il faut que
je le retrouve…

Dernière modification par enicar (16-11-2020 19:32:56)

Hors ligne

#3 16-11-2020 19:36:56

enicar
Membre
Lieu : pas ici
Distrib. : sid
Noyau : Linux 6.5.3
(G)UI : openbox
Inscription : 26-08-2010

Re : Vous exécutez Synaptic sur Wayland avec l'autorisation root [Résolu]

Hors ligne

#4 17-11-2020 10:03:33

Caille
Membre
Distrib. : Debian SID
Noyau : 5.9.0-1 amd64
(G)UI : Gnome
Inscription : 24-06-2017

Re : Vous exécutez Synaptic sur Wayland avec l'autorisation root [Résolu]

Bonjour,

Merci pour tes réponses !

En fait ce qui m'a surpris, c'est que Ubuntu 20.04 permet de démarrer "Synaptic" après demande du mot de passe.
Je possède également la version SID de Debian, Synaptic démarre en mode graphique.
J'ai donc vérifié que je suis en "wayland" avec cette ligne :

echo $WAYLAND_DISPLAY

Il n'y a que sous Debian Buster que je suis en "wayland"

Réponse sous Buster :

caille@Buster:~$ echo $WAYLAND_DISPLAY
wayland-0
caille@Buster:~$


Réponse sous SID :

caille@SID:~$ echo $WAYLAND_DISPLAY

caille@SID:~$

Si je désire que Debian buster ce comporte comme SID ou Ubuntu, il faut que j'utilise la session gnome.xorg disponible après l'installation.

L'utilisation de wayland est uniquement prévu pour renforcer la sécurité, il est donc préférable de ne rien changer ?

Que risque-t-on d'utiliser Debian en session gnome.xorg ?

Cordialement.

Hors ligne

#5 17-11-2020 16:25:14

Caille
Membre
Distrib. : Debian SID
Noyau : 5.9.0-1 amd64
(G)UI : Gnome
Inscription : 24-06-2017

Re : Vous exécutez Synaptic sur Wayland avec l'autorisation root [Résolu]

Bonjour,

Je n'arrive même pas à modifier le fichier comme dans la vidéo Youtube ?

vi .bashrc

Pour ajouter la ligne :

- Qui donne les droits
- Qui lance Synaptic
- Qui enlève les droits

En fait j'ai été perturbé par la commande vi

alias synaptic=xhost +si:localuser:root ; sudo /usr/sbin/synaptic ; xhost -si:localuser:root"



J'ai essayé de le sauvegarder, mais ça ne fonctionne pas comme prévu ?

Maintenant lorsque je lance le terminal à chaque fois, j'ai cet affichage ?

bash: C : commande introuvable
bash: alias: +si:localuser:root : non trouvé
[sudo] Mot de passe de caille : 
 


Je pense donc que ma modification est incomplète ?

Après avoir donné mon mot de passe, j'ai cet affichage ?

bash: C : commande introuvable
bash: alias: +si:localuser:root : non trouvé
[sudo] Mot de passe de caille : 
Désolé, essayez de nouveau.
[sudo] Mot de passe de caille : 
No protocol specified
Unable to init server: Impossible de se connecter : Connexion refusée
Failed to initialize GTK.

Probably you're running Synaptic on Wayland with root permission.
Please restart your session without Wayland, or run Synaptic without root permission
localuser:root


wq
:wq

alias synaptic=si:localuser:root: being removed from access control list
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  109 (X_ChangeHosts)
  Value in failed request:  0x3a
  Serial number of failed request:  7
  Current serial number in output stream:  9
No protocol specified
Unable to init server: Impossible de se connecter : Connexion refusée
Failed to initialize GTK.

Probably you're running Synaptic on Wayland with root permission.
Please restart your session without Wayland, or run Synaptic without root permission
bash: D : commande introuvable
caille@Buster:~$
 

Le fichier que j'ai essayé de modifier :

# ~/.bashrc: executed by bash(2) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac

# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth

# append to the history file, don't overwrite it
shopt -s histappend

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar

# make less more friendly for non-text input files, see lesspipe(1)
#[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"

# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)
fi

# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
    xterm-color|*-256color) color_prompt=yes;;
esac


# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes

if [ -n "$force_color_prompt" ]; then
    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
        # We have color support; assume it's compliant with Ecma-48
        # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
        # a case would tend to support setf rather than setaf.)
        color_prompt=yes
    else
        color_prompt=
    fi
fi

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt

# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
    ;;
*)
    ;;
esac

# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    alias ls='ls --color=auto'
    #alias dir='dir --color=auto'
    #alias vdir='vdir --color=auto'

    #alias grep='grep --color=auto'

    #alias fgrep='fgrep --color=auto'
    #alias egrep='egrep --color=auto'
fi

# colored GCC warnings and errors
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'

# some more ls aliases
#alias ll='ls -l'
#alias la='ls -A'
#alias l='ls -CF'

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
C

alias synaptic=xhost +si:localuser:root ; sudo /usr/sbin/synaptic ; xhost -si:localuser:root"


wq
:wq

alias synaptic="si:localuser:root: ;sudo /usr/sbin/synaptic ;
D

fi



Pour simplifier, j'ai essayé de suivre la vidéo, mais ne sachant pas ce que je faisais, ça a partiellement fonctionné.

Je trouve un fichier : .bash_history

Dans lequel je retrouve mes modifications :

nano /etc/apt/sources.list
exit
apt install chromium-browser
nano /etc/apt/sources.list
exit
adduser caille sudo
exit
synaptic
exit
alias synaptic='xhost +si:localuser:root ; sudo /usr/sbin/synaptic ; -si:localuser:root'
exit
sudo synaptic
synaptic
exit



Cordialement.

Dernière modification par Caille (17-11-2020 18:48:03)

Hors ligne

#6 17-11-2020 17:53:03

Caille
Membre
Distrib. : Debian SID
Noyau : 5.9.0-1 amd64
(G)UI : Gnome
Inscription : 24-06-2017

Re : Vous exécutez Synaptic sur Wayland avec l'autorisation root [Résolu]

Suite...[Résolu]

# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac

# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth

# append to the history file, don't overwrite it
shopt -s histappend

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar

# make less more friendly for non-text input files, see lesspipe(1)
#[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"

# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)
fi

# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
    xterm-color|*-256color) color_prompt=yes;;
esac

# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes

if [ -n "$force_color_prompt" ]; then
    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
  # We have color support; assume it's compliant with Ecma-48
  # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
  # a case would tend to support setf rather than setaf.)
  color_prompt=yes
    else
  color_prompt=
    fi
fi

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt

# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
    ;;
*)
    ;;
esac

# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    alias ls='ls --color=auto'
    #alias dir='dir --color=auto'
    #alias vdir='vdir --color=auto'

    #alias grep='grep --color=auto'
    #alias fgrep='fgrep --color=auto'
    #alias egrep='egrep --color=auto'
fi

# colored GCC warnings and errors
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'

# some more ls aliases
#alias ll='ls -l'
#alias la='ls -A'
#alias l='ls -CF'

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi

alias synaptic="xhost +si:localuser:root ; sudo /usr/sbin/synaptic ; xhost -si:localuser:root"

 

Ligne ajoutée : alias synaptic="xhost +si:localuser:root ; sudo /usr/sbin/synaptic ; xhost -si:localuser:root"

C'est bon j'ai réussi à modifier le fichier .bashrc

caille@Buster:~$ alias
alias ls='ls --color=auto'
alias synaptic='xhost +si:localuser:root ; sudo /usr/sbin/synaptic ; xhost -si:localuser:root'
caille@Buster:~$
 



caille@Buster:~$ synaptic
localuser:root being added to access control list
[sudo] Mot de passe de caille : 
localuser:root being removed from access control list
caille@Buster:~$
 

Maintenant lorsque je tape "synaptic" en ligne de commande :

- J'ai bien la demande du mot de passe.
- synaptic démarre.
- Lorsque je ferme synaptic les droits sont bien supprimés !

Par contre si je tape "sudo synaptic" en ligne de commande ça ne marche toujours pas, c'est donc résolu. tongue tongue tongue

caille@Buster:~$ sudo synaptic
[sudo] Mot de passe de caille : 
No protocol specified
Unable to init server: Impossible de se connecter : Connexion refusée
Failed to initialize GTK.

Probably you're running Synaptic on Wayland with root permission.
Please restart your session without Wayland, or run Synaptic without root permission
caille@Buster:~$
 



.

Dernière modification par Caille (17-11-2020 18:27:29)

Hors ligne

#7 18-11-2020 19:16:33

enicar
Membre
Lieu : pas ici
Distrib. : sid
Noyau : Linux 6.5.3
(G)UI : openbox
Inscription : 26-08-2010

Re : Vous exécutez Synaptic sur Wayland avec l'autorisation root [Résolu]

Bon je n'ai pas trop suivi la suite de ce que tu as fait. Mais plutôt que d'utiliser un alias
tu peux créer une fonction. Ça revient presque au même, sauf que c'est plus souple.
Les fonctions peuvent recevoir des arguments qu'on peut traiter séparément. Avec les alias
c'est juste une bête substitution de texte. Dans ce cas un alias peut suffire. Voici comment faire une
fonction à mettre dans ~/.bashrc :


synaptic () {
  xhost +si:localuser:root
  sudo /usr/sbin/synaptic
  xhost -si:localuser:root
}
 


C'est aussi plus facile à lire que quand les 3 commandes sont sur la même ligne…

Hors ligne

#8 19-11-2020 16:31:21

Caille
Membre
Distrib. : Debian SID
Noyau : 5.9.0-1 amd64
(G)UI : Gnome
Inscription : 24-06-2017

Re : Vous exécutez Synaptic sur Wayland avec l'autorisation root [Résolu]

Bonjour,

Merci !

Dans ce cas il n'est pas indispensable de donner le chemin de synaptic ?

Simplement :

synaptic () {
  xhost +si:localuser:root
  sudo synaptic
  xhost -si:localuser:root
}

Fonctionne également.

Hors ligne

Pied de page des forums