Tự động điền tab cho người dùng mới


11

Tôi đã thêm một người dùng linux mới bằng cách thực hiện

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

Tôi đã kiểm tra tài khoản bằng cách đăng nhập vào máy chủ bằng lệnh sau

ssh newuser@mywebsite.com

Sau khi đăng nhập, shell không cho phép tôi tự động hoàn thành tab. Ví dụ: tôi sẽ gõ / var / www / myweb {tab}, nhưng nút tab chỉ nhập một khoảng trắng vào trình bao. Ngoài ra, nhấn các phím mũi tên lên và xuống không cung cấp cho tôi các lệnh shell gần đây nhất được nhập.

Mọi thứ hoạt động hoàn hảo khi tôi đăng nhập bằng root. Nhưng nó không hoạt động khi tôi đăng nhập như người dùng mới.

Tôi đã bỏ lỡ một cái gì đó?

Cảm ơn

Câu trả lời:


33

Kiểm tra xem 'newuser' shell nào đang sử dụng. Hãy chắc chắn rằng nó thực sự hỗ trợ hoàn thành tab (như bash hoặc zsh).

Bạn có thể xác định người dùng đang sử dụng shell nào bằng lệnh sau

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

Bạn có thể thay đổi trình bao người dùng bằng lệnh chsh

# chsh -s /bin/bash rodjek

thật tuyệt, thật tuyệt
Giăng

2

Trên hệ thống tự động hoàn thành tab của tôi được thêm bởi:

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

trong .bashrc. Bashrc không được tạo cho người dùng mới vì nó không tồn tại trong / etc / skel. Tạo .bashrc trong / etc / skel với đoạn mã trên và nó sẽ hoạt động cho người dùng mới. Sau đó sao chép tệp vào người dùng mới mà bạn vừa tạo để nó cũng hoạt động với họ.


1

Bạn đã kiểm tra người dùng mới của bạn có cùng shell với người dùng root của bạn chưa? Có vẻ như người dùng root của bạn đã bash một cái gì đó giống như nó và người dùng mới của bạn có một ksh hoặc một cái gì đó tương tự. Hãy xem tệp / etc / passwd hoặc biến môi trường SHELL.


1

Khi bạn thêm một người dùng với useraddkhông có vỏ đặc biệt được thêm vào.
Bạn có thể thấy điều này với lệnh:cat /etc/passwd

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

Bạn có thể thấy rằng người dùng test1có vỏ /bin/bashnhưng người dùng test3không có vỏ.

Để khắc phục điều này, bạn có thể thay đổi trình bao của người dùng test3bằng lệnh này:

chsh -s /bin/bash test3

Hoặc khi bạn tạo một người dùng mới, bạn có thể sử dụng tùy chọn s:

useradd -s /bin/bash test4

0

Thư mục /var/www/mywebsite.com có ​​tồn tại trước khi bạn tạo tài khoản không?

Bạn có thể kiểm tra xem nội dung của / etc / skel có được sao chép vào thư mục chính /var/www/mywebsite.com không?

Tài khoản mới có được một lớp vỏ khác không hỗ trợ tự động hoàn thành không?

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.