Red Hat Linux 7.2: Официальное руководство по основам работы с Red Hat Linux | ||
---|---|---|
Назад | Глава 10. Основы командной строки | Вперед |
Ранее в этой главе, когда вы пытались с помощью cd перейти в домашний каталог пользователя root вы получали следующее сообщение:
[newuser@localhost newuser]$ cd /root bash: /root: Permission denied [newuser@localhost newuser]$ |
При этом вам были показаны возможности защиты системы Linux. Linux, как и UNIX, многопользовательская система, и файловые разрешения в ней представляют собой средство защиты системы от любого вида повреждений.
Есть один способ получить доступ к защищённой информации - стать с помощью su пользователем root, что вы и делали ранее. Вот почему каждый, кто знает пароль пользователя root, имеет полный контроль над системой.
[newuser@localhost newuser]$ su Password: ваш пароль root [root@localhost newuser]# cd /root [root@localhost /root]# |
Но регистрироваться под именем root не всегда удобно, или мудро, так как при этом легко ошибиться и изменить важные конфигурационные файлы.
Все файлы и каталоги "принадлежат" человеку, создавшему их. Вы создавали файл sneakers.txt (как описано в разделе Использование перенаправления) в своём домашнем каталоге, поэтому файл sneakers.txt "принадлежит" вам.
Это означает что вы можете указать кому разрешено читать файл, писать в него, или если это не текстовый файл, а приложение, кто сможет исполнять этот файл.
Чтение, запись и выполнение - это три основных разрешения.
Так как пользователи после создания могут быть включены в группы, вы можете также указать будут ли такие группы читать, писать или выполнять файл.
Взгляните внимательнее на файл sneakers.txt , выполнив команду ls с параметром -l (long) (как показано на Рисунке 10-12).
[newuser@localhost newuser]$ ls -l sneakers.txt -rw-rw-r-- 1 newuser newuser 150 Mar 19 08:08 sneakers.txt |
Здесь показана подробная информация. Вы видите кто может читать (r) и писать (w) в файл, а также кто создал файл (newuser) и в какую группу входит владелец (newuser).
Ваша группа по умолчанию | |
---|---|
Запомните, по умолчанию имя вашей группы совпадает с именем вашей учётной записи. |
Справа от названия группы показан размер файла, дата и время создания, а также название файла.
-rw-rw-r-- |
В первой колонке (показанной выше) показаны текущие разрешения; она занимает десять позиций. В первой позиции указывается тип файла. Остальные девять позиций отведены под три набора разрешений для трех различных категорий пользователей.
Эти три набора таковы: владелец файла, группа, в которую он входит, и "остальные", то есть пользователи, не являющиеся владельцами файла (newuser), и не входящие в его группу (также newuser).
- (rw-) (rw-) (r--) 1 newuser newuser | | | | тип владелец группа остальные |
Первый символ, определяющий тип файла, может быть таким:
d — каталог
-(минус) — обычный файл (то есть не каталог и не ссылка)
l — ссылка на другую программу или файл, расположенный, где-то в системе
Кроме этого, в следующих трёх наборах, вы можете встретить следующие символы:
r — файл может быть прочитан
w — в файл можно записать
x — файл можно исполнить (если это программа)
Если в наборе владельца, группы или остальных, вы встретите минус, это означает что, это конкретное разрешение не было дано.
Взгляните ещё раз на первый столбец файла sneakers.txt и определите его разрешения. (Смотрите Рисунок 10-13)
[newuser@localhost newuser]$ ls -l sneakers.txt -rw-rw-r-- 1 newuser newuser 150 Mar 19 08:08 sneakers.txt [newuser@localhost newuser]$ |
Владелец файла (в этом случае, newuser) имеет разрешение на чтение и запись в файл. Это не программа, поэтому пользователь newuser не имеет разрешения на выполнение. Группа newuser также имеет разрешение на чтение и запись в файл sneakers.txt. Учитывая уже сделанное для владельца newuser замечание, группа newuser также не имеет разрешения на выполнение.
В последнем наборе, вы можете заметить что, те кто не являются пользователем user newuser и не входят в группу newuser, могут прочитать файл, но не могут в него записывать, и выполнять его.
Измените разрешения файла sneakers.txt с помощью команды chmod.
Первоначальный файл выглядит так, с начальными настройками разрешений:
-rw-rw-r-- 1 newuser newuser 150 Mar 19 08:08 sneakers.txt |
Если вы являетесь владельцем файла или зарегистрированы под именем root, вы можете изменить любые разрешения для владельцы, группы и остальных.
В данный момент владелец может читать и писать в файл. Все остальные могут только читать файл (r--).
Разрешения необходимы | |
---|---|
Запомните, разрешения на файлы - это мера безопасности. Как только вы разрешаете всем читать, писать и выполнять файлы, тем самым вы увеличиваете вероятность повреждения, изменения или удаления файла. Как правило, вы должны давать разрешения на чтение и запись только тем, кому это действительно необходимо. |
В следующем примере вы позволите всем записывать в файл, чтобы они могли прочитать его, внести свои замечания, а затем сохранить его. Это означает что вы должны изменить раздел файловых разрешений "другие".
Так как вы владелец файла, чтобы сделать это, вы не должны выполнять su, чтобы стать root. Взгляните сначала на файл. В приглашении командной строки, введите:
ls -l sneakers.txt |
Эта команда отображает следующую информацию:
-rw-rw-r-- 1 newuser newuser 150 Mar 19 08:08 sneakers.txt |
Теперь введите следующую команду:
chmod o+w sneakers.txt |
Чтобы проверить результат, снова просмотрите информацию о файле. Теперь она выглядит следующим образом:
-rw-rw-rw- 1 newuser newuser 150 Mar 19 08:08 sneakers.txt |
Теперь все могут читать и писать в этот файл (Рисунок 10-14).
Команда o+w указывает системе дать остальным разрешение на запись в файл sneakers.txt.
Чтобы удалить разрешение на чтение и запись файла sneakers.txt, воспользуйтесь командой chmod чтобы отобрать оба разрешения следующим образом:
chmod go-rw sneakers.txt |
в результате на экране будет отображаться:
-rw------- 1 newuser newuser 150 Mar 19 08:08 sneakers.txt |
Выполнив команду go-rw, вы указали системе лишить разрешения на чтение и запись файла sneakers.txt группу и остальных.
Эти параметры, являются удобными сокращениями, которые применяются при смене разрешений при помощи chmod, вам необходимо запомнить всего несколько символов и букв, используемых в chmod.
Ниже привёден список этих сокращений:
u — пользователь (user), владеющий файлом (другими словами, его владелец)
g — группа (group), которой принадлежит пользователь
o — остальные (others) (не владелец и не члены его группы)
a — все (all) (u, g, и o вместе)
r — доступ на чтение
w — доступ на запись
x — доступ на исполнение
+ — дать разрешение
- — отобрать разрешение
=—сделать это разрешение единственным
Дополнительное разрешение | |
---|---|
Дополнительным разрешением является символ t, метка "приклеенного" файла. Если файл помечен как "приклеенный", чтобы удалить такой файл необходимо владеть файлом, владеть каталогом и иметь разрешение на запись, или быть пользователем root (как описано в разделе Свойства файла в Главе 11). |
Хотите проверить, как вы поняли разрешения? Уберите все разрешения файла sneakers.txt — для всех.
chmod a-rwx sneakers.txt |
Теперь посмотрите, можете ли вы прочитать файл:
[newuser@localhost newuser]$ cat sneakers.txt cat: sneakers.txt: Permission denied [newuser@localhost newuser]$ |
Это работает. Но так как файл принадлежит вам, вы всегда можете изменить разрешения на прежние (как показано на Рисунке 10-15).
[newuser@localhost newuser]$ chmod u+rw sneakers.txt [newuser@localhost newuser]$ cat sneakers.txt buy some sneakers then go to the coffee shop then buy some coffee bring the coffee home take off shoes put on sneakers make some coffee relax! [newuser@localhost newuser]$ |
Ниже приведены некоторые распространенные варианты параметров, используемых с chmod:
g+w — даёт группе право записи
o-rwx — отбирает у остальных все разрешения
u+x — позволяет владельцу файла выполнять его
a+rw — позволяет всем читать и писать файл
ug+r — позволяет владельцу и группе читать этот файл
g=rx — позволяет группе только читать и выполнять (но не писать)
Добавив ключ -R, вы можете сменить разрешения для всего дерева каталогов.
Так как вы не "исполняете" каталог как приложение, право исполнения, установленное или отсутствующее для каталога, в действительности, разрешает (или запрещает) поиск в этом каталоге.
Чтобы каждый смог получить доступ ко всем файлам в каталоге tigger, расположенному в вашем домашнем каталоге, введите:
chmod -R a+rw tigger |
Но … если вы не дадите остальным разрешение на "выполнение" каталога tigger, не важно кто имеет доступ на чтение и запись, так как никто не сможет проникнуть в каталог - если только он не знают точное имя нужного файла.
Например введите:
chmod a-x tigger |
чтобы отобрать у всех разрешение на исполнение.
Вот что произойдет теперь если вы попытаетесь с помощью cd перейти в каталог tigger:
[newuser@localhost newuser]$ cd tigger bash: tigger: Permission denied [newuser@localhost newuser]$ |
Восстановите свои собственные и вашей группы права доступа.
chmod ug+x tigger |
Теперь, если вы выполните команду ls -dl, вы увидите что, доступ к каталогу tigger закрыт только для остальных.