Назад | Перейти на главную страницу

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

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

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

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

ssh newuser@mywebsite.com

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

Все работает отлично, когда я вхожу по ssh как root. Но это не работает, когда я вхожу по ssh как новый пользователь.

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

Спасибо

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

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

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

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

# chsh -s /bin/bash rodjek

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

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

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

Когда вы добавляете пользователя с 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

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

Существовала ли папка /var/www/mywebsite.com до того, как вы создали учетную запись?

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

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