web-dev-qa-db-fra.com

Comment modifiez-vous le shell par défaut pour TOUS LES UTILISATEURS en bash?

Je veux que chaque nouvel utilisateur ait désormais bash comme shell par défaut.

Je sais que pour changer votre propre shell en bash, vous devez utiliser la commande "chsh -s/bin/bash", mais comment puis-je définir automatiquement le shell de tous les futurs utilisateurs sur bash par défaut?

37
coffee-grinder

adduser

Le fichier par défaut adduser est /etc/adduser.conf. Le shell par défaut défini par la variable DSHELL est /bin/bash par défaut.

seradd

Très probablement, vous n'en avez pas besoin car useradd est un utilitaire de bas niveau, et il n'est presque jamais utilisé directement.

Si vous utilisez useradd, éditez le fichier squelette /etc/default/useradd (n'oubliez pas de faire une sauvegarde).

Définissez la variable Shell sur /bin/bash au lieu de /bin/sh.

Maintenant, chaque fois que vous utilisez useradd pour ajouter un nouvel utilisateur bash est automatiquement leur shell par défaut.

tilisateurs déjà existants

Si vous voulez changer le shell d'utilisateurs existants, vous devez éditer le fichier /etc/passwd (assurez-vous de bien en avoir une copie de sauvegarde).

Voici une description des colonnes

  1. identifiant
  2. mot de passe crypté optionnel
  3. iD utilisateur numérique
  4. iD de groupe numérique
  5. nom d'utilisateur ou champ de commentaire
  6. répertoire personnel de l'utilisateur
  7. interpréteur de commande utilisateur facultatif

Dans cet ordre, séparés par des deux points (:) comme ceci.

root:x:0:0:root:/root:/bin/bash

Pour plus d'informations sur ce fichier, consultez la page de manuel man 5 passwd.

60
Octavian Damiean

Comme Octavian l'a souligné, la manière de modifier les valeurs par défaut dépend de la manière dont vous créez l'utilisateur. J’ai essayé de créer un nouvel utilisateur avec les paramètres Gnome tout à l’heure, et cela semble suivre /etc/default/useradd. Ce pourrait donc être votre meilleur choix. Pour les utilisateurs existants, le moyen le plus sûr de modifier le login de quelqu'un d'autre est Shell avec sermod:

usermod -s /bin/bash $USERNAME

Si vous n'êtes pas root, vous aurez besoin de Sudo ça. Une alternative est de Sudo dans l'utilisateur que vous voulez modifier et simplement lancer chsh, comme ceci:

Sudo -u $USERNAME chsh -s /bin/bash

Il est préférable d’éviter d’éditer /etc/passwd à la main, car une erreur risquerait de casser toutes sortes de choses.

25
Jack O'Connor

Si vous voulez réellement que bash soit utilisé par tous les utilisateurs du serveur (c'est la question qui a été posée), vous pouvez exécuter la commande suivante:

Sudo dpkg-reconfigure dash

Et puis choisissez PAS tiret. Comme expliqué dans cette réponse,

Comment faire en sorte que/bin/sh pointe vers/bin/bash?

Non seulement cela définit bash en tant que shell par défaut, mais il relie correctement sh et les pages de manuel.

J'espère que cela t'aides.

1
MontyThreeCard