Можно ли настроить разные оболочки для разных пользователей в одном дистрибутиве Linux/Unix?

Можно ли настроить разные оболочки для разных пользователей в одном дистрибутиве Linux/Unix?

Ну, это не то, что я хочу делать, но я задаю этот вопрос, чтобы узнать больше о конфигурации Shell в системах Unix/Linux. Итак, ситуация, на которую я хочу получить ответ, следующая -:

Поскольку у нас есть различные оболочки, доступные нам системой Unix/Linux, возможно ли настроить отдельную оболочку для каждого пользователя, которому разрешен доступ к системе? Итак, предположим, что Том, Дик и Гарри — это 3 пользователя, которым разрешен доступ к системе «Unix», и я хочу, чтобы «Том» использовал оболочкузш, Дик использоватьтчши Гарри использоватьБашshell. Как это сделать и возможно ли это вообще?

решение1

Прежде всего, допустимые оболочки перечислены в /etc/shells. Любой пользователь может изменить свою оболочку по умолчанию, используя , chshесли она есть в /etc/shellsфайле.

Во-вторых, если вы хотите добавить оболочку /etc/shells, то можете удалить оттуда запись, особенно /bin/sh, вы, скорее всего, испортите систему, поскольку /bin/loginобычно оболочка НЕ ​​запускается, если ее там нет.

Более подробная информация доступна вчш(1),login.defs(5) ипароль(5) страниц руководства.

Эта возможность существует уже давно (кажется, еще в BSD 4.x)

решение2

Да, разные пользователи могут иметь разные настройки оболочек. Вы можете изменить их, например, командой chsh. Чтобы изменить оболочку текущего пользователя на bash (предполагается, что она находится в /bin/bash):

chsh -s /bin/bash [username]

Вы также можете вручную изменить свой /etc/passwdфайл и изменить часть, которая определяет оболочку для этого пользователя. Например:

root:*:0:0:System Administrator:/var/root:/bin/sh

Последняя часть в каждой строке файла /etc/passwd, которая будет выглядеть примерно так, как показано выше, после последнего :указывает оболочку для этого пользователя.

решение3

Вы можете использовать chsh!

chsh -s /bin/sh user_name

Связанный контент