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

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

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

В любом случае, я только что создал нового пользователя, которого собираюсь использовать для доступа ко всему веб-сайту, например:

Как root:

useradd -d /var/www/example.com example
passwd example
... (typing in the pw)

окей. Теперь, если я попытаюсь переключиться на этого пользователя, с

su example

Я даже не получаю подсказки о пароле, а вижу только

$

Странно то, что у меня, по-видимому, нет нормальной командной строки, как обычно, но многие вещи не работают: например, подсветка синтаксиса, автоматическое завершение с помощью 'TAB' и т.д. - на моем рабочем столе ubuntu я вместо этого получаю обычный example@...:~# линия. Что я делаю не так?

Пока все хорошо. У вашего нового пользователя другая оболочка. Вы можете проверить:

echo $SHELL

Можно изменить стандартную оболочку текущего пользователя с помощью:

chsh -s /bin/bash

Или с помощью root можно изменить оболочку пользователя:

chsh -s /bin/bash example

Вы не делаете ничего плохого.

su - это, по сути, действие, которое создает оболочку внутри вашей текущей оболочки, а не столько переключение внутри текущей оболочки. И в зависимости от выбора новой загружаемой оболочки она будет вести себя по-разному. Вот почему при выходе из su вы возвращаетесь к предыдущему пользователю; вы просто вышли из внутренней оболочки.

Кроме того, su не будет запрашивать пароль, если вы сделаете это от root, потому что вы root.

Немного о команде SU. Если вы вошли в систему как пользователь корень, вы всегда можете стать другим пользователем, не зная пароля. Стать пример и оставаться в текущем каталоге

[root@host ~]#su example

Стать пример и перейдите в домашний каталог пользователя

[root@host ~]#su - example

Теперь, если вы попробуете эти команды, у непривилегированного пользователя будет запрашиваться пароль.

Что такое $? Это оболочка

По умолчанию в вашей операционной системе используется SH (оболочка оболочки). Если вы хотите использовать оболочку bash, тогда, когда пользователь, укажите ее:

[root@host ~]# useradd -s /bin/bash exmaple