Tab Autocomplete untuk Pengguna Baru

11

Saya menambahkan pengguna linux baru dengan melakukan a

useradd -d /var/www/mywebsite.com -m newuser
passwd newuser

Saya menguji akun dengan masuk ke server dengan perintah berikut

ssh [email protected]

Setelah masuk, shell tidak membiarkan saya melakukan tab autocomplete. Sebagai contoh, saya akan mengetik / var / www / myweb {tab}, tetapi tombol tab hanya memasukkan spasi ke dalam shell. Juga, menekan tombol panah atas dan bawah tidak memberi saya perintah shell terbaru yang dimasukkan.

Semuanya berfungsi dengan baik ketika saya ssh login sebagai root. Tapi itu tidak berfungsi ketika saya ssh login sebagai pengguna baru.

Apakah saya melewatkan sesuatu?

Terima kasih

John
sumber

Jawaban:

33

Periksa apa yang digunakan 'pengguna baru' shell. Pastikan itu salah satu yang sebenarnya mendukung penyelesaian tab (seperti bash atau zsh).

Anda bisa menentukan shell apa yang digunakan pengguna menggunakan perintah berikut

# getent passwd rodjek
rodjek:x:1001:1001:x:/home/rodjek:/bin/zsh

Anda dapat mengubah shell pengguna menggunakan perintah chsh

# chsh -s /bin/bash rodjek
rodjek
sumber
bagus, itu berhasil!
John
2

Pada pelengkapan otomatis tab sistem saya ditambahkan oleh:

if [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
fi

dalam .bashrc. Bashrc tidak dibuat untuk pengguna baru karena tidak ada di / etc / skel. Buat .bashrc di / etc / skel dengan kode di atas dan itu akan berfungsi untuk pengguna baru. Kemudian salin file ke pengguna baru yang baru saja Anda buat sehingga berfungsi juga untuk mereka.

Dimana saja
sumber
1

sudahkah Anda memeriksa pengguna baru Anda memiliki shell yang sama dengan pengguna root Anda? Sepertinya pengguna root Anda memiliki bash sesuatu seperti itu dan pengguna baru Anda memiliki ksh atau yang serupa. Lihatlah file / etc / passwd atau variabel lingkungan SHELL.

Kristen
sumber
1

Ketika Anda menambahkan pengguna dengan useraddtidak ada shell khusus yang ditambahkan.
Anda dapat melihat ini dengan perintah:cat /etc/passwd

test1:x:1004:1005:,,,:/home/test1:/bin/bash
test3:x:1007:1008::/home/test3:

Anda dapat melihat bahwa pengguna test1memiliki shell /bin/bashtetapi pengguna test3tidak memiliki shell yang ditambahkan.

Untuk memperbaikinya, Anda dapat mengubah shell pengguna test3dengan perintah ini:

chsh -s /bin/bash test3

Atau ketika Anda membuat pengguna baru, Anda dapat menggunakan opsi s:

useradd -s /bin/bash test4
RenRen
sumber
0

Apakah folder /var/www/mywebsite.com ada sebelum Anda membuat akun?

Bisakah Anda memeriksa bahwa / etc / skel dapat disalin ke direktori home /var/www/mywebsite.com?

Apakah akun baru mendapatkan shell yang berbeda yang tidak mendukung pelengkapan otomatis?

Sakit kepala
sumber