Ну, это не то, что я хочу делать, но я задаю этот вопрос, чтобы узнать больше о конфигурации 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