Comment modifiez-vous le shell par défaut pour ALL USERS en bash?

38

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 utiliseriez la commande "chsh -s / bin / bash", mais comment définir automatiquement le shell de tous les futurs utilisateurs sur bash par défaut?

Moulin à café
la source

Réponses:

63

adduser

Le adduserfichier par défaut est /etc/adduser.conf. Le shell par défaut défini par la DSHELLvariable est /bin/bashpar défaut.

useradd

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

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

Définissez la SHELLvariable sur au /bin/bashlieu de /bin/sh.

Maintenant, chaque fois que vous utilisez useraddpour ajouter un nouvel utilisateur bashest automatiquement son shell par défaut.

Utilisateurs déjà existants

Si vous voulez changer le shell d'utilisateurs existants, vous devez éditer le /etc/passwdfichier (assurez-vous d'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 commandes 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.

Octavian A. Damiean
la source
4
Je pense qu'un moyen plus sûr de changer le shell d'un autre utilisateur serait quelque chose comme sudo -u $USER chsh -s $SHELL.
Jack O'Connor
1
@ JackO'Connor, vous devriez également poster cela comme réponse.
Octavian A. Damiean
Cela ne semble pas fonctionner dans Ubuntu 16.04. Est-ce que quelqu'un sait la solution.
Harshdeep
26

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 mes paramètres Gnome tout à l'heure, et cela semble suivre /etc/default/useradd, alors c'est peut-être votre meilleur choix. Pour les utilisateurs existants, le moyen le plus sûr de modifier le shell de connexion de quelqu'un d'autre est d' utiliser usermod :

usermod -s /bin/bash $USERNAME

Si vous n'êtes pas root, vous aurez besoin de Sudo que. Une alternative consiste à vous connecter à l'utilisateur que vous souhaitez modifier et à exécuter 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 pourrait casser toutes sortes de choses.

Jack O'Connor
la source
1

Si vous voulez réellement que bash soit présent sur tous les utilisateurs du serveur (question posée en réalité), 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.

MontyThreeCard
la source