Bourne again shell (bash). Была разработана в рамках проекта GNU в качестве усовершенствованной реализации Bourne shell. Она предоставляет интерактивные средства, подобные тем, что доступны при работе с оболочками C и Korn. Основными создателями bash являются Брайан Фокс (Brian Fox) и Чет Рэми (Chet Ramey). Bash, наверное, наиболее популярная оболочка Linux. (Фактически в Linux Bourne shell, sh, предоставляется посредством имеющейся в bash наиболее приближенной к оригиналу эмуляции оболочки sh.)
В POSIX.2-1992 определяется стандарт для оболочки, которая была основана на актуальной в ту пору версии оболочки Korn. В наши дни стандарту POSIX соответствуют обе оболочки: и Korn shell и bash, но при этом они предоставляют несколько расширений стандарта и отличаются друг от друга многими из этих расширений.
Оболочки разработаны не только для использования в интерактивном режиме, но и для выполнения в режиме интерпретации сценариев оболочки. Эти сценарии представляют собой текстовые файлы, содержащие команды оболочки. Для этого каждая из оболочек имеет элементы, обычно присущие языкам программирования: переменные, циклы, условные инструкции, команды ввода-вывода и функции.
Все оболочки выполняют схожие задачи, хотя и имеют отличающийся синтаксис. При описании в этой книге операций оболочки, как правило, будет подразумеваться, что таким образом работают все оболочки, если отдельно не встретится ссылка на операцию конкретной оболочки. В большинстве примеров, требующих применения оболочки, используется bash, но, пока не будет утверждаться обратное, считайте, что эти примеры работают точно так же и на других оболочках Bourne-типа.
2.3. Пользователи и группыДля каждого пользователя системы предусмотрена уникальная идентификация. Кроме того, пользователи могут принадлежать к группам.
Пользователи
У каждого пользователя имеется уникальное имя для входа в систему (имя пользователя) и соответствующий числовой идентификатор пользователя — numeric user ID (UID). Каждому пользователю соответствует своя строка в файле паролей системы, /etc/passwd, где прописаны эти сведения, а также следующая дополнительная информация.
• Идентификатор группы (Group ID, GID) — числовой идентификатор группы, к которой принадлежит пользователь.
Домашний каталог — исходный каталог, в который пользователь попадает после входа в систему.
• Оболочка входа в систему — имя программы, выполняемой для интерпретации команд пользователя.
Парольная запись может также включать в закодированном виде пароль пользователя. Но в целях безопасности пароль зачастую хранится в отдельном теневом файле паролей, прочитать который могут только привилегированные пользователи.
Группы
В целях администрирования, в частности для управления доступом к файлам и другим системным ресурсам, есть смысл собрать пользователей в группы. Например, всех специалистов в команде, работающей над одним проектом и пользующейся по этой причине одним и тем же набором файлов, можно свести в одну группу. В ранних реализациях UNIX пользователь мог входить только в одну группу. В версии BSD пользователю позволялось одновременно принадлежать сразу нескольким группам, и эта идея была подхвачена создателями других реализаций UNIX, а также поддержана стандартом POSIX.1-1990. Каждая группа обозначается одной строкой в системном файле групп, /etc/group, включающем следующую информацию.
• Название группы — уникальное имя группы.
Идентификатор группы (Group ID, GID) — числовой идентификатор, связанный с данной группой.
Список пользователей — список с запятыми в качестве разделителей, содержащий имена пользователей, входящих в группу (которые не идентифицированы как участники группы в поле идентификатора группы в своей записи в файле паролей).
Привилегированный пользователь
Один из пользователей, называемый привилегированным (superuser), имеет в системе особые привилегии. У учетной записи привилегированного пользователя UID содержит значение 0, и, как правило, в качестве имени пользователя применяется слово root. В обычных системах UNIX привилегированный пользователь обходит в системе все разрешительные проверки. Таким образом, к примеру, привилегированный пользователь может получить доступ к любому файлу в системе независимо от требуемых для этого разрешений и может отправлять сигналы любому имеющемуся в системе пользовательскому процессу. Системный администратор пользуется учетной записью привилегированного пользователя для выполнения различных задач администрирования системы.
2.4. Иерархия одного каталога. Что такое каталоги, ссылки и файлы