Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая работа.docx
Скачиваний:
70
Добавлен:
13.04.2015
Размер:
6.49 Mб
Скачать

2.2 Пользователь Root

Как su, так и sudo используются для запуска команд с привилегиями root. Пользователь root в целом эквивалентен администратору в Windows – он имеет наибольшие права и может делать с системой практически все. Обычные пользователи в Linux Mint имеют намного меньшие возможности – например, они не могут устанавливать программы или записывать в системные директории.

Если нужно сделать что-то, требующее таких прав, то можно получить их с поомощью su или sudo.

При выполнении команды su без дополнительных опций она переключает использовавшего её в сеанс суперпользователя. Для этого необходимо знать пароль root. Но это не все, что может делать команда su, на самом деле она может использоваться для переключения в любой пользовательский аккаунт. После ввода команды su Arty, будет предложено ввести пароль пользователя Arty, и оболочка переключится в его аккаунт.

Sudo запускает с правами root только одну команду. При выполнении команды sudo система будет запрашивать текущий пользовательский пароль, а затем запустит команду на выполнение от имени root.

Это ключевое различие между su и sudo. Su переключает вас в аккаунт root и требует пароля root. Sudo запускает с привилегиями root одну команду – она не переключает вас в аккаунт суперпользователя и не требует отдельного пароля root.

Linux Mint также поддерживает графические версии Su и Sudo, которые запрашивают у пользователя пароль в графическом окружении. Например, с помощью приведенной ниже команды можно получить графический запрос пароля и запустить файловый менеджер Nautilus с привилегиями root. Для этого необходимо нажать Alt-F2, чтобы запустить команду в графическом диалоговом окне без терминала.

Рисунок 2.4 – Использование Su и Sudo через графический интерфейс

Команда gksu также имеет несколько тузов в рукаве. Она запоминает текущие настройки рабочего стола, поэтому графические программы при их запуске от имени другого пользователя не будут выглядеть неожиданно. Такие программы, как gksu являются предпочтительным способом запуска графических программ с привилегиями root. Gksu использует su или sudo, в зависимости от дистрибутива.

2.3 Права доступа.

Файлы в Linux Mint, как, впрочем, и процессы, созданные пользователем, имеют двух владельцев: пользователя и группу-пользователя. Кроме этого определяются права для прочих, то есть тех, которые не вошли в первые два списка. Каждый пользователь может быть членом сразу нескольких групп, одна из которых называется первичной, а все остальные – дополнительными. Наличие групп дает определенную гибкость в организации доступа к конкретному файлу. Например, чтобы разрешить запись дисков в Linux Mint, достаточно добавить пользователя в группу cdrom. Аналогично можно организовать совместное использование некоторого ресурса: достаточно создать новую группу и включить в нее всех, кому это действительно необходимо. Обычно владельцем файла является пользователь, который его создал, а владелец-группа устанавливается равной первичной группе пользователя, создавшего файл.

Просмотреть текущие права можно при помощи команды ls -l:

ls -l sound.mрЗ

Чтобы изменить владельцев файла, используется команда chown, принимающая в качестве параметров имя нового владельца или группу и список файлов. Формат такой:

sudo chown new_owner file1 file2 ...

На месте названия файла может быть и имя каталога, но при этом владелец файлов внутри каталога не изменится, а чтобы это произошло, добавляем флаг -R. При использовании любой команды оболочки можно пользоваться регулярными выражениями, если есть необходимость отобрать файлы, удовлетворяющие определенному критерию:

sudo chown -R Artem *

В примере владельцем всех файлов в текущем каталоге и подкаталогах будет пользователь Artem. Команда chown позволяет установить и группу-владельца. Для этого нужно сразу за именем владельца без пробелов и других знаков поставить двоеточие и написать название необходимой группы:

sudo chown - R artem:video *

Допускается и такой вариант записи:

sudochown — R :video *.

Кроме chown для изменения владельца группы можно использовать команду chgrp, синтаксис использования данной команды аналогичен предыдущей:

chgrp audio /home/Artem /*

Владение файлом определяет те операции, которые тот или иной пользователь может совершить над файлом. Самые очевидные из них – это изменение владельца и группы для некоторого файла. Данные операции может проделать суперпользователь и владелец файла (для некоторых – только суперпользователь). Все эти ограничения введены по нескольким причинам. Во-первых, для того чтобы никто не мог подсунуть какой-нибудь зловредный файл или скрипт, а во-вторых, чтобы, если на компьютере установлен лимит дискового пространства для конкретного пользователя, нельзя было превысить его, просто переопределив владельца.

Кроме владения файлом права доступа определяют базовые операции, которые можно совершить над файлом. Их три:

• Read — доступ на чтение;

• Write — доступ на запись;

• eXecute — доступ на выполнение.

Для установки соответствующих прав используется команда chmod. Применяется она в двух формах: абсолютной, когда игнорируются старые права и устанавливаются новые, и относительной, когда к имеющимся правам добавляются новые (или убираются старые). Абсолютная форма предполагает задание прав доступа в восьмеричной форме. Чтобы получить полный код необходимого режима файла, нужно просто сложить значения кодов, приведенных в таблице 2.1.

Таблица 2.1 – Режимы файлов

Таким образом, команда

chmod 755 file

устанавливает следующие права доступа: если это исполняемый файл, то запустить его на выполнение и прочитать содержимое имеют право все (то есть владелец, группа и остальные), а владелец дополнительно имеет право на изменение содержимого – запись.

Относительная форма команды требует конкретного указания классов доступа (и – владелец, g – группа, о – остальные, а – все вместе), соответствующие права доступа (r – чтение, w – запись, х – выполнение) и операцию, которую необходимо произвести для списка файлов (+ –добавить, - – удалить, = – присвоить) для соответствующего списка файлов. Например, команда

sudo chmod u+w, ug+r, a+x file

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

К слову, вызвав свойства файла или каталога и перейдя на вкладку Права, можно изменить группу и параметры доступа к файлу для тех объектов, владельцем которых является данный пользователь.

Рисунок 2.5 – Графический интерфейс прав доступа

Для каталогов права доступа имеют немного другой смысл. Каталог – это файл, содержащий имена всех файлов, которые имеются в данном каталоге. Право на чтение каталога позволяет всего лишь получить имена файлов, находящихся в данном каталоге. А вот для того, чтобы получить другую дополнительную информацию, нужно право на исполнение. Чтобы перейти внутрь каталога, необходимо иметь право на выполнение. Кстати, из-за наличия этих особенностей можно добиться так называемого эффекта dark directory, когда создаем в каталоге файлы, которые доступны, только если пользователь знает точно имя соответствующего файла. Право на запись для каталога позволяет изменять его содержимое, то есть удалять и записывать файлы, при этом права доступа к конкретному файлу игнорируются.

Права на доступ проверяются в следующей последовательности: суперпользователь, владелец, группа-владелец и прочие. Система при запросе нужного ресурса проверит, кем он запрашивается в приведенной выше последовательности, и допустит только к разрешенным операциям, дальнейшая проверка прав просто не будет проводиться.

Группу, в которую входит пользователь, можно изменить, отредактировав файл /etc/group. Внутри файл состоит из ряда строк вида

cdrom : х : 24 : oem

то есть в данной строке описана группа cdrom, в которую входит пользователь oem. Чтобы добавить в эту группу пользователя Artem, просто дописываем его логин через запятую:

cdrom : х : 24 : oem, Artem

Цифра 24 означает GID (group id) – цифровое значение группы. Новая группа создается командой addgroup, учетная запись – adduser.

Кроме этого Linux Mint предлагает графический инструмент управления группами и учетными записями, который можно вызвать из меню «Администрирование» > «Пользователи и группы».

С его помощью можно очень просто добавить новую учетную запись или группу и установить членство в группах.

Данные об учетной записи хранятся в файле /etc/passwd. Формат такой:

User name : пароль : uid : gid : uid коментарий:домашний каталог:shell

Например:

Artem: х : 1000 : 1000 : Artem , , , : / home / Artem: / bin / bash

Все обычные учетные записи имеют UID начиная с 1000.

Зачем это нужно? Например, необходимо рассмотреть данные устройства, выводящего звук:

ls -l /dev/dsp

После чего в терминале отобразится следующее:

crw-rw----+ 1 root audio 14, 3 2010-06-10 11:59 /dev/dsp

То есть считать данные может только пользователь root и все, кто входит в группу audio. Следовательно, если у пользователя не проигрывается звук и система выдает, что не может получить доступ, необходимо просто проверить права. Справедливости ради нужно отметить, что права доступа имеет не пользователь, а процесс, запущенный им. Каждый пользователь, зарегистрировавшись в системе, получает свою копию текущего процесса shell, который имеет установленные идентификаторы RID и RGID – реальные идентификаторы пользователя и первичной группы пользователя. А все процессы, запущенные пользователем (дочерние), наследуют все переменные, в том числе RID и RGID.

Остались нерассмотренными три режима файла: бит сохранения задачи (stisky bit), а также флаги SUID и SGID. Со stisky bit все просто, этот бит указывает на необходимость сохранения копии выполняющейся программы в памяти после завершения выполнения. Данный режим позволяет сэкономить время на запуске программы при частом использовании, но в современных системах применение этого режима встречается редко.

Флаги SUID и SGID позволяют изменить (расширить) права пользователя (группы), запустившего программу, на время ее выполнения. Как уже говорилось, запущенное приложение имеет такие же права доступа к системным ресурсам, как и пользователь, запустивший программу. А установки этих флагов позволяют назначить права доступа исходя из прав доступа владельца файла. Следовательно, если владельцем запущенного приложения является root, то любой, независимо от того, кто запустил данное приложение, будет иметь права суперпользователя. Вместе с тем при установке флага SUID наследуются права владельца файла, a SGID – группы-владельца.

Буква s в выводе команды ls -l означает, что установлен флаг SUID, а владельцем файла является – root, и теперь, кто бы ни запустил утилиту на выполнение, на время работы программы он временно получает права суперпользователя, то есть право произвести запись в защищенный системный файл. Естественно, утилита должна (и делает это) производить изменение учетной записи только запустившего ее пользователя.

Для установки битов SUID/SGID в символьной форме используется буква s, sticky bit устанавливается буквой - t , а с помощью буквы l можно установить блокировку файла для устранения возможных конфликтов, когда несколько процессов попытаются работать с одним и тем же файлом.

Обычно sticky bit установлен в каталоге /tmp. Это сделано для того, чтобы удалить файл мог только пользователь, создавший его. При установке бита SGID для каталога все вновь созданные файлы будут теперь наследовать группу не по пользователю, создавшему его, а по группе – владельцу каталога.