Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
startx dans .bashrc

Bonjour,

J'ai "collé"
[ $(tty) = /dev/tty1 ] && startx
dans .bashrc (ce qui n'est pas très loin de ce qui est donné [[color=orange]ici[/color]]), en ayant pris soin de configurer /etc/X11/xinit/xinitrc pour qu'il lance le seul WM disponible avec `startx`, mais...

C'est grosso modo ce que j'ai retrouvé sur toutes les pages sur lesquelles je suis allé.

Il ne s'agit pas de configurer un autologin (soit une connexion automatique à X à la fin du démarrage). Je voudrais simplifier la tâche à un invité pour atteindre un environnement graphique sans utiliser de *DM.

Que pensez-vous qu'il (ne) se passe (pas) ?

Poste le Thursday 31 July 2008 05:57:49
Répondre     Citer    
Re: startx dans .bashrc
Envoyé par: AlSim

Je ne comprends pas vraiment ce que tu veux faire mais comme ça je dirais que tu as oublié l'étape "connecter l'utilisateur"... J'avais écrit ça il y a longtemps, ça pourrait t'aider : [e_logguer_automatiquement_sous_X.html" rel="nofollow">lea-linux.org]#

[catwell.info]

Poste le Thursday 31 July 2008 13:21:13
Répondre     Citer    
Re: startx dans .bashrc

On pourrait faire
if [  $(tty) = /dev/tty1 ]; then
  echo lancement de X, faire CtrlC pour eviter
  sleep 3
  startx /usr/bin/icewm-session
fi

Pour d'obscures raisons, l'argument à startx doit être un chemin complet. Et je conseille de permettre à l'utilisateur de ne pas lancer X (d'où le echo et le sleep) au cas où.

Et c'est probablement à mettre dans .login ou .profile pas dans .bashrc qui est exécuté à chaque shell interactif, par exemple chaque lancement de xterm.

----

Basile STARYNKEVITCH

Membre de l'APRIL « promouvoir et défendre le logiciel libre » - adhérez vous aussi à l'APRIL!

Projet logiciel libre: RefPerSys

Poste le Thursday 31 July 2008 13:28:10
Répondre     Citer    
Re: startx dans .bashrc

Bonjour, et merci de vote aide,

Citation
AlSim
J'avais écrit ça il y a longtemps, ça pourrait t'aider
C'est (a et b) ce que je ne veux pas faire, et (c) ce que j'ai fait (sans le test sur $DISPLAY)
Citation
Basile STARYNKEVITCH
Et je conseille de permettre à l'utilisateur de ne pas lancer X (d'où le echo et le sleep) au cas où.
et
Citation

Et c'est probablement à mettre dans .login ou .profile pas dans .bashrc qui est exécuté à chaque shell interactif, par exemple chaque lancement de xterm.
Je considère l'invité comme un novice, il n'a aucun intérêt à rester dans un terminal virtuel, et il sera sans doute déjà déconcerté par ce mode de connexion. S'il n'est pas novice, il saura retrouver le chemin de la console.

et

C'est pour cela que l'on teste $(tty)...
---

Ça fonctionne bien avec mon login, mais pas avec celui de l'invité...? (lors des tests sur mon compte, j'avais omis le 1 de /dev/tty1 !!!)

J'ai créé le compte "invit" ainsi
useradd -d /home/invit -m -g invit invit
, puis je suis allé dans /etc/group, pour l'insérer dans les groupes où je suis également.

J'ai inséré d'autres commandes dans /home/invit/.bashrc, telles que tty, et fortune, dont les résultats n'apparaissent pas...
?

Poste le Thursday 31 July 2008 16:04:32
Répondre     Citer    
Re: startx dans .bashrc
Envoyé par: AlSim

Tu dis que ça ne marche pas mais :

- que veux-tu qu'il se passe ?
- que se passe-t-il ?

Si tu ne nous dis pas ça on ne pourra pas t'aider.

[catwell.info]

Poste le Thursday 31 July 2008 16:52:06
Répondre     Citer    
Re: startx dans .bashrc

Je ne dispose pas de Display Manager. Je n'en ai pas besoin, et je n'en veux pas.

Je voudrais que lorsque l'utilisateur "invit" se loggue (en mode texte, donc, puisqu'il n'y a pas de *DM), sa session de Window Manager (configurée dans .xinitrc) soit démarrée, sans qu'il ait besoin d'entrer startx.

=> démarrage -> login en mode texte (-> tty1) -> WM .

Poste le Thursday 31 July 2008 17:22:29
Répondre     Citer    
Re: startx dans .bashrc

Ah, j'oubliais !
Il ne se passe rien.

Les tty et fortune, qui sont dans .bashrc, devraient m'afficher /dev/tty1, et un augure, avant l'invite PS1.

Poste le Thursday 31 July 2008 17:33:31
Répondre     Citer    
Re: startx dans .bashrc
Envoyé par: AlSim

OK. Vérifie que .bashrc est bien sourcé dans /home/invit/.bash_profile. Il doit contenir quelque chose comme ça :

. $HOME/.bashrc

[catwell.info]

Poste le Thursday 31 July 2008 17:38:41
Répondre     Citer    
Re: startx dans .bashrc

$ less /home/guest/.bash_profile

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

# the default umask is set in /etc/login.defs
#umask 022

# include .bashrc if it exists
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

# set PATH so it includes user's private bin if it exists
if [ -d ~/bin ] ; then
    PATH=~/bin:"${PATH}"
fi
Pas de souci de ce côté

Poste le Thursday 31 July 2008 18:08:41
Répondre     Citer    
Re: startx dans .bashrc

Voyant que ~/.bashrc n'était pas du tout pris en compte (tentative de modification de PS1), je suis allé voir du côté de /etc/bash.bashrc, dans lequel il est dit qu'il doit être sourcé dans /etc/pofile, comme le disait AlSim au niveau individuel. J'ai sourcé, et depuis tout est OK !

Est-ce normal finalement ?

Pourquoi cette différence de comportement entre mon compte (créé pendant l'installation, et qui a donc quelques privilèges, puisque c'est sur ce compte que je reçois les mails destinés au root, et, apparemment, d'autres encore (mais lesquels ? [naq]*est-ce qu'il peut voler ?[/naq] ^_^ ) et un compte créé post-install ?



.* naq : not a question

Poste le Thursday 31 July 2008 19:04:11
Répondre     Citer    
Re: startx dans .bashrc

Je note une différence de comportement selon que je crée un utilisateur avec adduser ou avec useradd.
Sans doute n'utilisé-je pas toutes les bonnes options de useradd... je vais relire le man et refaire des tests.

Citation
Basile STARYNKEVITCH
Et je conseille de permettre à l'utilisateur de ne pas lancer X (d'où le echo et le sleep) au cas où.
et
Citation

Et c'est probablement à mettre dans .login ou .profile pas dans .bashrc qui est exécuté à chaque shell interactif, par exemple chaque lancement de xterm.
Effectivement, le serveur X se relance lorsque la console récupère le prompt.

et

Je n'ai pas encore réussi à lancer X depuis .login, qui en effet parait plus logique pour ne lancer qu'une seule fois un processus lors de la connexion. J'ai encore de la lecture en retard.
J'entrevois des choses sans doute un peu lourde pour si peu de choses. Je persévère d'abord...


Merci Basile, Merci AlSim.

Poste le Thursday 31 July 2008 23:43:00
Répondre     Citer    
Resolu: startx et .bashrc = startx dans .bash_profile

Pour la petite histoire, et clore ce sujet.

J'ai restauré /etc/profile dans son état original (c'est à dire sans que /etc/bash.bashrc y soit sourcé/versé).

Je n'observe plus de différences de comportement des utilisateurs créés, tant par adduser, que par useradd (j'ajoute "-s /bin/bash" en plus du reste à useradd maintenant, et ça colle).

J'ai retiré startx de /home/invit/.bashrc, pour le mettre dans /home/invit/.bash_profile (.login ne répond pas), suivi d'un logout dans les 3 secondes, afin que l'utilisateur n'ait même pas besoin de se soucier de se délogguer.

N'ayant plus de redémarrage inopiné de X, je n'ai pas remis les 3 secondes avant la connexion à X.

Rien que de très normal, quand on ne connait pas bien ses classiques. J'ai révisé, j'ai corrigé, je l'ai maté

Poste le Friday 1 August 2008 10:43:19
Répondre     Citer    
Re: Resolu: startx et .bashrc = startx dans .bash_profile
Envoyé par: AlSim

Arf... Si le shell de connexion n'était pas Bash ça ne risquait effectivement pas de marcher.

[catwell.info]

Poste le Friday 1 August 2008 10:57:44
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
startx dans .bashrc
Un problème avec une commande du shell ? Comment utiliser la crontab ? Vous avez des soucis pour la gestion réseau sous Linux ? Pour vous la gestion des utilisateurs/groupes est du chinois ? Etc... Posez donc vos questions ici.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons