Права доступа к файлам и каталогам
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

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

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

$ touch file
$ ls –l file
-rw-rw-r-- 1 bbal bball 0 jul 23 12:28 file

Рассмотрим вывод команды ls подробнее.

· Права доступа к файлу представляют собой группу символов: -rw-rw-r--. Первый символ (-) указывает на тип объекта. Дефис говорит о том, что это обычный файл, d означает каталог, c – символьное устройство, b указывает на блок-ориентированное устройство.

· Права доступа указываются последовательно – для пользователя, группы и всех остальных. Отсутствие права на какой-либо вид доступа обозначается знаком дефиса. Тремя основными типами прав доступа являются: r – право на чтение, w – право на запись и x – право на выполнение.

· Далее следует число ссылок на данный файл.

· Владелец. Другими словами, здесь указывается, какой учетной записи принадлежит этот файл. Изменить владельца можно с помощью команды chown.

· Группа, к которой принадлежит пользователь. Обычно члены этой группы имеют более свободные права доступа к файлу, в отличие от всего остального мира.

· Размер файла и дата его создания (модификации).



Назначение прав доступа

Права доступа к объекту могут быть заданы двумя способами: в цифровой или в буквенной форме. При использовании буквенной формы эти три категории обозначаются так: u – пользователь (владелец), g – группа, o – остальные и a – все эти категории вместе. Тремя основными типами прав доступа являются: r – право на чтение, w – право на запись и x – право на выполнение. Комбинации r, w и x для трех категорий и являются правами доступа к файлу:

User Group Others
rwx rwx rwx

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

· 4 означает право на чтение;

· 2 означает право на запись (модификацию);

· 1 означает право на выполнение.

Предыдущий пример (-rw-rw-r--) в восьмеричной нотации записывается короче – 664. Получается это число просто: старший разряд – права владельца файла, т.е. чтение и запись (4+2), далее идет группа (4+2) и весь остальной мир (только чтение – 4).


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

В 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, который имеет доступ ко всем файлам операционной системы). Используя комбинации различных прав доступа можно легко и быстро создать безопасную среду.














Работа в качестве root

В UNIX и Linux пользователь root, суперпользователь, ­– это царь и бог в системе. У него специальная учетная запись, которая разрешает ему делать все, что ему заблагорассудится. После регистрации в качестве пользователя root, вы имеете возможность полностью разрушить работающую систему просто вызвав команду rm:

# rm –fr /

Эта команда не только удалит все файлы и каталоги на вашей машине, но может также стереть файловые системы даже на удаленных компьютерах. Только эта возможность уже является достаточной причиной для соблюдения особой осторожности во время работы с правами доступа пользователя root.

Работать в Linux в качестве root следует в тех случаях, когда необходимо сконфигурировать файловую систему или провести работы по ремонту или сопровождению операционной системы.

Добавление пользователей

Чтобы быстро добавить пользователя, выполните команду useradd и задайте в ней имя пользователя:

# useradd winky

После добавления пользователя необходимо с помощью команды passwd ввести начальный пароль для этого пользователя:

# passwd winky
Changing password for user winky.
New password:
Retype new password:
Passwd: all authentication tokens updated successfully.

Если для нового пользователя не ввести начальный пароль, то он не сможет зарегистрироваться и войти в систему. Чтобы увидеть используемые по умолчанию параметры для нового пользователя, выполните команду useradd с парметром –D:

# useradd –D
Group=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKELL=/etc/skel

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











Удаление пользователей

Для удаления учетной записи используется команда userdel. Эта команда удаляет запись, принадлежащую данному пользователю, из системного файла /etc/passwd. Чтобы удалить все его файлы и каталоги (например, файл почтовой очереди в каталоге /var/spool/mail), следует воспользоваться параметром -r:

# userdel –r winky

В противном случае вам придётся вручную удалять все эти файлы.

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

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

# shutdown –h now

Или

# shutdown –h 0

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

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

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

# shutdown –r now

Или

# shutdown –r 0

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

Практические задания

Задание 1. Запустить Linux.


Рис. 1. Экран после входа в графический режим операционной системы Linux


Задание 2. Запустить консоль Linux и войти в систему под пользователем root.

Для этого найдите на рабочем столе значок и щелкните по нему мышью.


Рис. 2.Программа-оболочка Bash

В результате откроется окно программы-оболочки Bash. Это окно очень напоминает командную строку Windows. В окне этой программы вы видите приглашение:

dsl@box:~$

Введите после приглашения команду sudo su:

dsl@box:~$ sudo su

В результате приглашение примет такой вид:

[/home/dsl]#

Здесь символ «#» в командной строке указывает на то, что вы работаете из под пользователя root.

Введите команду whoami (эта команда сообщает имя, с которым вы вошли в систему).

Завершите работу пользователя root в системе. Для этого наберите в командной строке exit.

Задание 3. Добавьте в систему нового пользователя.

Войдите в систему под пользователем root.

Добавьте в систему пользователя с именем student (используйте команды useradd и passwd):

Useradd student
Passwd student

После ввода команды passwd student, на экране появится сообщение:

Enter new password:

Вы должные задать пароль для пользователя (не менее 5 символов) и нажать <Enter>. Обратите внимание, что при вводе пароля, он не отображается на экране. После этого выведется сообщение:

Re-enter new password:

Вы должны ещё раз ввести тот же самый пароль, который был вами задан для пользователя student. После нажатия на клавишу <Enter> на экран выведется:

Password changed.

Итак, вы зарегистрировали нового пользователя в системе и задали ему пароль, теперь можно зайти под этим пользователем, воспользовавшись командой login:

[home/dsl]# login
Box login: student
Password:

После ввода пароля вы увидите приглашение: student@tty0[/]$

Введите команду whoami и убедитесь в том, что вы зашли в систему из-под пользователя student.

Для завершения работы с пользователем воспользуйтесь командой logout.




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

· Перейдите в корневой каталог:
cd /

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


Рис. 3. Результат выполнения команды ls

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



Задание 5. Ознакомьтесь с файловым менеджером Midnight Commander.

· Запустите оболочку Bash. Для этого щелкните по значку ATerminal на рабочем столе.

· Наберите в консоли команду mc.


Рис. 4. Окно программы Midnight Commander

В результате откроется окно программы Midnight Commander, очень похожей на Norton Commander и FAR Manager (см. рис. 4). Рассмотрим основные элементы окна этой оболочки. Большую часть окна занимает левая панель, правая панель. Ниже этих панелей располагается строка, позволяющая вводить команды Linux. Ещё ниже располагается строка, содержащая краткое напоминание о назначении функциональных клавиш (говорят также «горячих») программы. В верхней части окна располагается строка меню. Рассмотрим назначение некоторых клавиш и клавиатурных команд, применяемых при работы с Midnight Commander:


Таблица 3. Назначение клавиш оболочки Midnight Commander

Клавиши Назначение
TAB переключение между панелями
F3 просмотр файла
F4 редактирование файла
F5 копирование файла
Клавиши Назначение
F6 переименование (перемещение) файла
F7 создание каталога
F8 удаление файла
F9 активизация меню
F10 выход и командной оболочки
CTRL+O убрать обе панели
CTRL+U поменять панели местами
Insert пометка файлов
серый плюс выбор группы файлов (работает при включенном режиме Num Lock)

Для выбора файла в панели можно использовать клавиши управления курсором (стрелки), Page Up, Page Down.

Используя описанные в табл. 3 команды выполните следующие действия:

· Используя клавиши управления курсором, выберите подсветкой каталог и раскройте его содержание, нажав клавишу <Enter>.

· Перейдите в корневой каталог. Для того чтобы переходит в родительский каталог, необходимо выбирать подсветкой пункт /..

· Перейдите в каталог /ramdisk

· Создайте в каталоге /ramdisk подкаталог student.

· Скопируйте в каталог /ramdisk/student каталог ~home (он находится в корневом каталоге /)

· Выйдите из Midnight Commander, нажав F10.

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

· Запустите программу оболочку bash.

· Зайдите в каталог /ramdisk/student с помощью команды cd:

dsl@box:~$ cd /ramdisk/student
dsl@box:/ramdisk/student$

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

dsl@box:/ramdisk/student$ cd /
dsl@box:/$

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

dsl@box:/$ cd ~
dsl@box:~$




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

· Запустите программу оболочку bash.

· Перейдите в каталог /ramdisk/student

· Создайте в каталоге /ramdisk/student текстовый файл file1.txt:

dsl@box:/ramdisk/student$ vi file1.txt

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

· Сохраните файл и выйдите из текстового редактора. Для этого сначала нажмите <Escape>; потом напечатайте :wq и нажмите <Enter>.

· Просмотрите созданный вами файл. Для этого вновь выполните команду cat:

dsl@box:/ramdisk/student$ cat file1.txt

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

· Зайдите в каталог /ramdisk/student.

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

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

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

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

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

· Зайдите в каталог /ramdisk/student

· Просмотрите, какие права установлены для файла file2.txt. Для этого воспользуйтесь командой ls:

dsl@box:/ramdisk/student$ ls –l file2.txt
-rw-rw-r-- 1 dsl staff 111 Nov 18 06:41 file2.txt

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

dsl@box:/ramdisk/student$ Chmod 777 file2.txt


Задание 10. Работа с сетевыми утилитами

В Linux имеется множество утилит для работы с сетью. Рассмотрим некоторые из них.

· Запустите консоль. Зайдите под пользователем root.

· Выполните команду ifconfig (название команды происходит от «Interface Confuguration»). Для этого наберите в командной строке ifconfig и нажмите <ENTER>.

· С помощью команды можно также менять ip-адрес для сетевой карты. Наберите следующую команду:

[/home/dsl]# ifconfig eth0 192.168.192.130

В результате ip-адрес вашего компьютера будет 192.168.1.130. Чтобы убедиться в этом наберите команду ifconfig ещё раз:
[/home/dsl]# ifconfig


Рис. 5. Результат выполнения команды ifconfig

Eth0 – это обозначение сетевой карты (интерфейс Ethernet).
Если сетевых карт несколько, то остальные сетевые карты обозначаются eth1, eth2…

· «Пропинговать» какой-либо узел (то есть проверить работоспособность протоколов TCP/IP на компьютере) можно командой Ping. Например:

[/home/dsl]# ping 192.168.192.130.

В результате на указанный узел будут отправляться пакеты до тех пор, пока не будет нажата комбинация клавиш Ctrl+C.



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

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

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

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

Задание 12. Перезагрузка и выключение компьютера (Перед выполнением задания покажите преподавателю результаты вашей работы по заданиям 1-11).

· Перезагрузите компьютер. Для этого откройте оболочку bash. Зайдите под пользователем root. Введите в командной строке reboot.

· Вновь запустите Linux. Откройте оболочку bash и выключите компьютер командой halt.

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

· Какие основные каталоги содержаться в корневом каталоге в Linux?

· Какую команду необходимо использовать, чтобы просмотреть содержимое каталога?

· Как обозначаются родительский каталог и домашний каталог пользователя? Какая команда используется для навигации по файловой системе?

· Как запустить текстовый редактор vi? Какие клавиши нужно нажать, чтобы начать вводить текст в этом текстовом редакторе? Как сохранить текст и выйти из программы vi?

· Как удалить всю строку целиком в текстовом редакторе vi? Какие ещё команды vi для работы с текстом вы знаете?

· Как просмотреть содержимое текстового файла?

· Какой командой осуществляется поиск в файле и вывод на экран строк, содержащих заданный текст?

· Какие существуют права доступа к файлам и каталогам? Как задать права для файла, чтобы он был доступен только для чтения для всех пользователей; для выполнения и записи – только для владельца файла?

· Как войти в систему Linux? Как добавить, удалить нового пользователя?

· Как завершить работу с системой Linux?

· Для чего предназначена программа Midnight Commander?

· Почему нужно быть особенно осторожным при работе в системе Linux под пользователем root?

· Что означают права доступа к файлу, обозначенные числом 762?

· Какие команды нужно знать, чтобы добавить пользователя в систему?

· Как удалить пользователя в Linux?



Дата: 2019-02-18, просмотров: 891.