Вкладка автозаполнения для нового пользователя

11

Я добавил нового пользователя Linux, выполнив

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

Я проверил учетную запись, войдя на сервер с помощью следующей команды

ssh newuser@mywebsite.com

После входа в систему оболочка не позволяет мне выполнять автозаполнение вкладок. Например, я набрал бы / var / www / myweb {tab}, но кнопка табуляции только вводит пробел в оболочку. Кроме того, нажатие клавиш со стрелками вверх и вниз не дает мне последних введенных команд оболочки.

Все отлично работает, когда я ssh войти в систему как root. Но это не работает, когда я ssh войти как newuser.

Я что-то пропустил?

Спасибо

Джон
источник

Ответы:

33

Проверьте, какая оболочка 'newuser' использует. Убедитесь, что он действительно поддерживает завершение табуляции (например, bash или zsh).

Вы можете определить, какую оболочку использует пользователь, используя следующую команду

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

Вы можете изменить оболочку пользователя с помощью команды chsh

# chsh -s /bin/bash rodjek
rodjek
источник
здорово, это сработало!
Джон
2

На моей системной вкладке автозаполнение добавлено:

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

в .bashrc. Bashrc не создается для новых пользователей, поскольку он не существует в / etc / skel. Создайте .bashrc в / etc / skel с указанным выше кодом, и он будет работать для новых пользователей. Затем скопируйте файл новому пользователю, которого вы только что создали, чтобы он работал и для них.

WheresAlice
источник
1

Вы проверили, что у вашего нового пользователя такая же оболочка, что и у пользователя root? Кажется, что ваш пользователь root имеет bash, что-то вроде этого, и у вашего нового пользователя есть ksh или что-то подобное. Посмотрите файл / etc / passwd или переменную среды SHELL.

Кристиан
источник
1

Когда вы добавляете пользователя, useraddспециальная оболочка не добавляется.
Вы можете увидеть это с помощью команды:cat /etc/passwd

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

Вы можете видеть, что у пользователя test1есть оболочка, /bin/bashно у пользователя test3нет добавленной оболочки.

Чтобы это исправить, вы можете изменить оболочку пользователя test3с помощью этой команды:

chsh -s /bin/bash test3

Или, когда вы создаете нового пользователя, вы можете использовать опцию s:

useradd -s /bin/bash test4
RenRen
источник
0

Существовала ли папка /var/www/mywebsite.com до создания учетной записи?

Можете ли вы проверить, что содержимое / etc / skel копируется в домашний каталог /var/www/mywebsite.com?

Получил ли новый аккаунт другую оболочку, которая не поддерживает автозаполнение?

Zoredache
источник