-->

UNIX — универсальная среда программирования

На нашем литературном портале можно бесплатно читать книгу UNIX — универсальная среда программирования, Керниган Брайан Уилсон-- . Жанр: ОС и Сети / Интернет. Онлайн библиотека дает возможность прочитать весь текст и даже без регистрации и СМС подтверждения на нашем литературном портале bazaknig.info.
UNIX — универсальная среда программирования
Название: UNIX — универсальная среда программирования
Дата добавления: 16 январь 2020
Количество просмотров: 431
Читать онлайн

UNIX — универсальная среда программирования читать книгу онлайн

UNIX — универсальная среда программирования - читать бесплатно онлайн , автор Керниган Брайан Уилсон

В книге американских авторов — разработчиков операционной системы UNIX — блестяще решена проблема автоматизации деятельности программиста, системной поддержки его творчества, выходящей за рамки языков программирования. Профессионалам открыт богатый "встроенный" арсенал системы UNIX. Многочисленными примерами иллюстрировано использование языка управления заданиями

shell.

 

Для программистов-пользователей операционной системы UNIX.

Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала

1 ... 19 20 21 22 23 24 25 26 27 ... 187 ВПЕРЕД
Перейти на страницу:

$ ls -lq /etc/passwd

-rw--r--r-- 1 adm 5115 Aug 30 10:40 /etc/passwd

Информацию, содержащуюся в двух строках вывода команды

ls
, можно интерпретировать так: владельцем файла
/etc/passwd
является пользователь с login-id, равным
root
; его группа называется
adm
; размер файла 5115 байт; последний раз изменен был 30 августа в 10:40; файл имеет единственную связь, т.е. одно имя в файловой системе (вопрос о связях мы обсудим в следующем разделе). Некоторые варианты команды
ls
выдают имена владельца и группы сразу при однократном вызове.

Строка

-rw-r--r--
показывает, как представляет права доступа к файлу команда
ls
. Первый дефис (
-
) означает, что это обычный файл. В случае каталога на его месте стояла бы буква
d
. Следующие три символа обозначают права владельца файла на чтение, запись и выполнение (исходя из uid). Строка
rw-
свидетельствует о том, что владелец (
root
) может читать, писать, но не выполнять файл. В случае выполняемого файла дефис был бы заменен символом
x
.

Три символа (

r--
) обозначают права доступа группы, в данном случае пользователей из группы
adm
— по-видимому, системных администраторов, которые могут читать файл, но не писать и не выполнять его. Следующие три символа (также
r--
) определяют права доступа для всех остальных пользователей системы. Таким образом, на данной машине только
root
может изменить информацию по входу в систему для пользователя, но прочесть файл и узнать эту информацию может любой. Разумным был бы вариант, при котором группа
adm
также имела бы право на запись в файл
/etc/passwd
.

Файл

/etc/group
хранит в зашифрованном виде имена групп и их group-id и определяет, какие пользователи входят в какие группы. В файле
/etc/passwd
определяется только ваша группа при входе в систему; команда
newgrp
изменяет ее права доступа на права другой группы.

Кто угодно может задать:

$ ed /etc/passwd

и редактировать файл паролей, но только

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

$ ls -l /bin/passwd

-rwsr-xr-x 1 root 8454 Jan 4 1983 /bin/passwd

$

(Обратите внимание на то, что

/etc/passwd
— текстовый файл, содержащий информацию по входу в систему, тогда как
/bin/passwd
находится в другом каталоге, содержит программу, готовую к выполнению, и позволяет изменить данные, связанные с паролем). Права доступа к этому файлу показывают, что выполнить команду может кто угодно, но изменить команду
passwd
— только
root
. Буква
s
вместо
x
в поле прав на выполнение для владельца файла означает, что при выполнении команды ей предоставляются права, соответствующие праву владельца файла, в данном случае
root
. Поскольку файл
/bin/passwd
имеет такой признак установки uid и при выполнении получает права
root
, любой пользователь, выполняя команду
passwd
, может редактировать файл
/etc/passwd
.

Введение признака установки uid — простое элегантное решение целого ряда проблем безопасности. [7] Например, автор игровой программы может установить свой uid для программы, поэтому она сможет изменять файл с результатами игр, который защищен от доступа со стороны других пользователей. Но идея введения признака установки uid потенциально опасна. Программа

/bin/passwd
должна быть правильной, иначе она может уничтожить системную информацию под прикрытием суперпользователя root. При наличии прав доступа
-rwsrwxrwx
ее мог бы переписать любой пользователь, и, таким образом, заменить файл на неработоспособную программу. Это особенно опасно для программ, обладающих признаком установки uid, поскольку
root
имеет доступ к каждому файлу, системы. (В некоторых системах UNIX происходит отключение признака установки uid всякий раз, когда файл изменяется, что уменьшает вероятность нарушения защиты).

Признак установки uid — мощное средство, но оно используется в основном для нескольких системных программ, таких, как

passwd
. Рассмотрим более типичный файл:

$ ls -l /bin/who

-rwxrwxr-x 1 root 6348 Mar 29 1983 /bin/who

$

Этот файл доступен для выполнения всем, а писать в него могут только

root
и пользователь той же группы. Слова "доступен для выполнения" означают, что при вводе

$ who

интерпретатор

shell
просматривает ряд каталогов, в том числе
/bin
, отыскивая файл с именем
who
. Если такой файл найден и он имеет право доступа на выполнение, то
shell
обращается к ядру для его запуска. Ядро проверяет права доступа, и, если они действительны, запускает программу. Отметим, что программа — это просто файл с правом доступа на выполнение. В следующей главе вы познакомитесь с программами, являющимися обычными текстовыми файлами, но они могут выполняться как команды, поскольку имеют право доступа на выполнение.

Права доступа к каталогам действуют несколько иначе, но основной принцип остается тем же:

$ ls -ld .

drwxrwxr-x 3 you 80 Sep 27 06:11 .

$

Команда

ls
с флагом
-d
сообщает скорее о самом каталоге, чем о его содержимом, и первая буква
d
в выводе означает, что
'.'
в действительности является каталогом. Поле
r
показывает, что можно читать каталог, поэтому с помощью команды
ls
(или
od
для данного случая) можно выяснить, какие файлы хранятся в нем. Буква
w
свидетельствует о том, что можно создавать и исключать файлы из каталога, поскольку это требует изменения, а значит, записи в файл каталога.

1 ... 19 20 21 22 23 24 25 26 27 ... 187 ВПЕРЕД
Перейти на страницу:
Комментариев (0)
название