Bagaimana Anda mengubah shell default untuk SEMUA PENGGUNA untuk bash?

38

Saya ingin setiap pengguna baru mulai sekarang memiliki bash sebagai shell secara default.

Saya tahu bahwa untuk mengubah shell Anda menjadi bash, Anda akan menggunakan perintah "chsh -s / bin / bash", tetapi bagaimana cara saya secara otomatis mengatur shell semua pengguna di masa depan ke bash secara default?

penggiling kopi
sumber

Jawaban:

63

Tambahkan pengguna

File adduserdefault adalah /etc/adduser.conf. Shell default yang ditentukan oleh DSHELLvariabel adalah /bin/bashdefault.

useradd

Kemungkinan besar Anda tidak memerlukan ini karena useradd adalah utilitas tingkat sangat rendah, dan hampir tidak pernah digunakan secara langsung.

Jika Anda menggunakan useradd, edit /etc/default/useraddfile kerangka (jangan lupa untuk membuat cadangan).

Tetapkan SHELLvariabel /bin/bashsebagai ganti /bin/sh.

Sekarang setiap kali Anda menggunakan useradduntuk menambahkan pengguna baru bashsecara otomatis shell default mereka.

Pengguna yang sudah ada

Jika Anda ingin mengganti shell dari pengguna yang sudah ada, Anda harus mengedit /etc/passwdfile (harap pastikan untuk memiliki cadangannya).

Berikut adalah deskripsi kolomnya

  1. nama login
  2. kata sandi terenkripsi opsional
  3. ID pengguna numerik
  4. ID grup numerik
  5. nama pengguna atau kolom komentar
  6. direktori home pengguna
  7. penerjemah perintah pengguna opsional

Dalam urutan itu dipisahkan oleh titik dua (:) seperti ini.

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

Untuk informasi lebih lanjut tentang file itu, lihat halaman manual man 5 passwd.

Oktavianus A. Damiean
sumber
4
Saya pikir cara yang lebih aman untuk mengubah shell pengguna lain adalah seperti itu sudo -u $USER chsh -s $SHELL.
Jack O'Connor
1
@ JackO'Connor Anda harus memposting itu sebagai jawaban juga.
Oktavianus A. Damiean
Ini sepertinya tidak berfungsi di Ubuntu 16.04. Apakah ada yang tahu cara memperbaikinya.
Harshdeep
26

Seperti yang ditunjukkan Octavian, cara untuk mengubah default tergantung pada cara Anda membuat pengguna. Saya mencoba membuat pengguna baru melalui Pengaturan Gnome saya sekarang, dan sepertinya mengikuti /etc/default/useradd, jadi itu mungkin taruhan terbaik Anda. Untuk pengguna yang ada, cara teraman untuk mengubah shell login orang lain adalah dengan usermod :

usermod -s /bin/bash $USERNAME

Jika Anda tidak melakukan root, Anda harus melakukan sudo itu. Alternatifnya adalah sudo menjadi pengguna yang ingin Anda modifikasi dan jalankan chsh , seperti ini:

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

Yang terbaik adalah menghindari pengeditan /etc/passwddengan tangan, karena kesalahan di sana dapat merusak semua hal.

Jack O'Connor
sumber
1

Jika Anda benar-benar ingin semua pengguna di server memiliki bash (yang sebenarnya ditanyakan), Anda dapat menjalankan perintah:

sudo dpkg-reconfigure dash

Dan kemudian pilih BUKAN tanda hubung. Sebagaimana dijelaskan dalam jawaban ini,

Bagaimana Saya Dapat Membuat / bin / sh menunjuk ke / bin / bash?

Tidak hanya itu mengatur bash sebagai shell default, tetapi repoints sh dan halaman manual dengan benar.

Semoga ini membantu.

MontyThreeCard
sumber