Исходный автор (ы) | Сальваторе Валенте |
---|---|
Действующий system | Unix и Unix-like |
Тип | Команда |
chsh (сокращение от «change shell») - это команда на Unix-подобные операционные системы, которые используются для изменения логина оболочки. Пользователи могут либо указать путь оболочки, на которую они хотят изменить, в командной строке, либо не указывать аргументы, и в этом случае chsh позволяет пользователю изменять оболочку в интерактивном режиме.
chsh - это программа setuid, которая изменяет файл / etc / passwd и позволяет только обычным пользователям изменять свои собственные оболочки входа в систему. суперпользователь может изменять оболочки других пользователей, указав имя пользователя, оболочка которого должна быть изменена, в качестве аргумента командной строки. По соображениям безопасности оболочки, которые могут указывать как обычные пользователи, так и суперпользователь, ограничены содержимым файла / etc / shells, при этом путь оболочки должен быть точно таким, как он отображается в этом файле. (Эта функция безопасности может быть изменена путем повторной компиляции исходного кода для команды с другим параметром конфигурации и, таким образом, не обязательно включена во всех системах.) Однако суперпользователь также может напрямую изменять файл паролей, устанавливая оболочку любого пользователя. в любой исполняемый файл в системе без ссылки на / etc / shells и без использования chsh.
В большинстве систем, когда chsh вызывается без команды -s -line (чтобы указать имя оболочки), он предлагает пользователю выбрать один. В Mac OS X при вызове без параметра -s chsh отображает текстовый файл в редакторе по умолчанию (изначально установлен в vim), позволяя пользователю изменять все функции свою учетную запись пользователя, которую им разрешено изменять, при этом путь к оболочке - это имя рядом с «Shell:». Когда пользователь закрывает vim, сделанные там изменения переносятся в файл / etc / passwd, который может быть изменен только пользователем root.
Использование параметра -s (например: % chsh - s / usr / local / bin / bash) значительно упрощает задачу смены оболочек.
В зависимости от системы chsh может запрашивать или не запрашивать пароль у пользователя перед изменением оболочки или переходом в интерактивный режим. В некоторых системах использование chsh пользователями без полномочий root полностью отключено системным администратором.
Во многих дистрибутивах Linux команда chsh является Приложение с поддержкой PAM. Таким образом, его поведение можно настроить с помощью параметров конфигурации PAM для отдельных пользователей. Например, директива auth, которая определяет модуль pam_listfile.so, может использоваться для запрета доступа chsh отдельным пользователям, указав файл имен пользователей, к которому следует запретить доступ, с помощью { Параметр {{1}}} для этого модуля (вместе с параметром {{{1}}}).
POSIX не описывает такие утилиты, как chsh, которые используются для изменения записи пользователя в / etc / passwd. Большинство Unix-подобных систем предоставляют chsh. SVr4 -системы, предоставляющие аналогичные возможности с passwd. Две из трех оставшихся систем (IBM AIX и HP-UX ) предоставляют chsh в дополнение к passwd -e. Исключением является Solaris, где неадминистраторы не могут изменить свою оболочку, если не установлен сервер сетевых имен, такой как NIS или NIS +. В устаревшей системе SGI SVr4 IRIX64 также отсутствовал chsh.
Wikibook В руководстве по Unix есть страница по темам: Выбор оболочки |
chsh (1)
– 4.2BSD Общие команды Руководство chsh (1)
: измените оболочку входа в систему - Linux Пользовательские команды Руководство chsh (1)
– Darwin и macOS Общие команды Руководство passwd (1)
– Solaris 10 Справочник по командам пользователя Руководство