Права доступа к каталогам

В Linux, как и в остальных UNIX, каталоги также считаются файлами. Например, выполним следующую команду ls, чтобы увидеть разрешения на доступ:

$ mkdir foo

$ ls –ld foo

Drwxrwxr-x 2 bball bball 4096 jul 23 12:37 foo

В данном примере команда mkdir создает каталог. Команда ls с параметром –ld отображает разрешения на доступ и иную информацию, касающуюся этого каталога в целом, но не его содержание. Здесь можно видеть, что права доступа к каталогу имеют значения 775 (владелец имеет все права 4+2+1, группа также все права, а весь остальной мир не может ничего изменять в нем 4+1).

Отсюда видно, что владелец и члены группы могут выводить содержание каталога и записывать в него. Все остальные пользователи могут только выводить содержание каталога. (Чтобы увидеть содержание каталога, необходимо иметь разрешение на выполнение).

Вы заметили, что в выходных данных команды ls в правах доступа стоит первой буква d. Это значит, что данный файл является каталогом; у обычного файла на этом месте стоит пробел. Другие буквы указывают на специальный тип файла. Например, если с помощью команды ls вывести информацию о файле устройства для последовательного порта, то можно увидеть следующее:

$ ls –l /dev/ttyS0

crw-rw---- 1 root uucp 4,64 Mar 23 23:38 /dev/ttyS0

Файл /dev/ttyS0 представляет символьное устройство (последовательный порт); владеет данным файлом пользователь root и этот файл доступен также любому члену группы uucp. Права доступа к файлу имеют значения 660 (чтение+запись, чтение+запись, нет прав).

Изменить права доступа к файлу можно с помощью команды chmod. Чтобы задать желаемое изменение в этой команде используют разные формы записи, включая восьмеричную и мнемоническую. В мнемонической форме параметры команды chmod обозначают следующее (со знаком плюс (+) они используются для добавления права на доступ, со знаком минус – для их удаления):

u Добавить (или удалить) право на какую-либо операцию с файлом (каталогом) для пользователя
g Добавить (или удалить) право для группы
o Добавить (или удалить) право для всех остальных
a Добавить (или удалить) право всем пользователям (all)
r Добавить (или удалить) право на чтение
w Добавить (или удалить) право на запись
x Добавить (или удалить) право на выполнение


Из комбинации этих слов и складывается указание о том, как следует изменить права доступа. Например, если создать файл readme.txt, то для этого файла будут установлены разрешения, используемые по умолчанию (они определяются маской unmask в файле /etc/bsdhrc);

-rw-rw-r-- 1 bball bball 12 Oct 2 16:48 readme.txt

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

$ chmod –aw readme.txt

$ ls –l readme.txt

-r--r--r-- 1 bball bball 12 Oct 2 16:48 readme.txt

Теперь никто не сможет записывать в файл. Впрочем, владелец, если файл находится в его домашнем каталоге или каталоге /tmp, сможет изменять этот файл – поскольку имеет право на доступ к этим каталогам. Чтобы восстановить право на чтение и запись для владельца, можно выполнить такую команду:

$ chmod u+rw readme.txt

$ ls –l readme.txt

-rw------- 1 bball bball 12 Oct 2 16:48 readme.txt

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

$ chmod 600 readme.txt

Если убрать права на выполнение некоторого каталога, то файлы, в нем содержащиеся, будут скрыты внутри каталога, не видны и не доступны никому, кроме владельца (и, конечно, пользователя root, который имеет доступ ко всем файлам операционной системы). Используя комбинации различных прав доступа можно легко и быстро создать безопасную среду.

Выключение системы

Для выключения системы используйте команду shutdown. Эта команда имеет некоторое число опций, позволяющих например, выключить машину в заранее определенное время. Но если нужно выключить машину немедленно, можно воспользоваться опциями –h или halt:

# shutdown –h now

Или

# shutdown –h 0

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

Перезагрузка системы

Для перезагрузки системы также можно воспользоваться командой shutdown. Если необходимо перезагрузить систему, воспользуйтесь опцией –r (reboot); для немедленной перезагрузки укажите после опции now или 0 (ноль):

# shutdown –r now

Или

# shutdown –r 0

Другими командами, которые можно использовать для выключения системы и её перезагрузки, являются halt и reboot.

Практическая часть

Практическая работа состоит из двух частей:

· выполнение основных операций по работе с linux;

· выполнение индивидуального задания и ответы на вопросы преподавателя.

Порядок выполнения

Задание 1.

Запустить linux.

Задание 2.

Запустить консоль Linux (в русифицированных графических оболочках Linux консоль обычно обозначается как «Терминал»).

Задание 3.

Перейти в корневой каталог и просмотреть его содержимое.

Перейти в корневой каталог:

cd /

Просмотрите его содержимое командой ls либо dir.

Можно использовать команду ls с дополнительными опциями:

Ls –l

Задание 4. Навигация по файловой системе в режиме командной строки.

Перейдите в режим консоли.

Перейдите в домашний каталог (домашний каталог обозначается
символом «тильда» ~):

Создайте новый каталогlab1

Перейдите в созданный каталог

Задание 5. Работа с текстовым редактором Vi.

Создайте в каталоге lab1 текстовый файл file1.txt

Чтобы начать вводить текст нажмите одну из клавиш a, i или o. Для начала ввода текста можно также воспользоваться клавишей <Insert>. Напечатайте в текстовом файле в первой строке свою фамилию и имя, номер группы. В последующих строках наберите произвольный текст. В конце файла ещё раз напечатайте свою фамилию и имя. Ввод каждой из строк заканчивается нажатием клавиши <Enter>.

Просмотрите созданный вами файл

Задание 6. Управление файлами.

Зайдите в каталог lab1.

Переименуйте файл file1.txt в file.txt.

Создайте копию файла file.txt под именем file2.txt.

Удалите файл file.txt.

Найдите в файле file2.txt строки, содержащие ваше имя и отобразите их на экране.

Задание 7. Задание прав доступа к файлам и каталогам.

Зайдите в каталог lab1

Просмотрите, какие права установлены для файла file2.txt

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

Задание 8. Получение справки по командам.

Откройте консоль.

Получите справку по команде cd. Для этого введите в командной строке help cd

Аналогичным образом получите справку для команд: dir, su, help.

1.5 Контрольные вопросы

  • Какие основные каталоги содержаться в корневом каталоге в Linux?
  • Какую команду необходимо использовать, чтобы просмотреть содержимое каталога?
  • Как обозначаются родительский каталог и домашний каталог пользователя? Какая команда используется для навигации по файловой системе?
  • Как запустить текстовый редактор vi? Какие клавиши нужно нажать, чтобы начать вводить текст в этом текстовом редакторе? Как сохранить текст и выйти из программы vi?
  • Как удалить всю строку целиком в текстовом редакторе vi? Какие ещё команды vi для работы с текстом вы знаете?
  • Как просмотреть содержимое текстового файла?
  • Какой командой осуществляется поиск в файле и вывод на экран строк, содержащих заданный текст?
  • Какие существуют права доступа к файлам и каталогам? Как задать права для файла, чтобы он был доступен только для чтения для всех пользователей; для выполнения и записи – только для владельца файла?
  • Как завершить работу с системой Linux?
  • Что означают права доступа к файлу, обозначенные числом 762?

Наши рекомендации