Учебники

Linux Admin — Управление файлами / папками

Чтобы представить разрешения, применимые как к каталогам, так и к файлам в CentOS Linux, давайте посмотрим на следующий вывод команды.

[centos@centosLocal etc]$ ls -ld /etc/yum* 
drwxr-xr-x. 6 root root 100 Dec  5 06:59 /etc/yum 
-rw-r--r--. 1 root root 970 Nov 15 08:30 /etc/yum.conf 
drwxr-xr-x. 2 root root 187 Nov 15 08:30 /etc/yum.repos.d

Примечание. Вы увидите три основных типа объектов:

  • «-« — тире для простого файла

  • «д» — для справочника

  • «л» — для символической ссылки

«-« — тире для простого файла

«д» — для справочника

«л» — для символической ссылки

Мы сосредоточимся на трех блоках вывода для каждого каталога и файла —

  • drwxr-xr-x: root: root
  • -rw-r — r—: root: root
  • drwxr-xr-x: root: root

Теперь давайте разберемся, чтобы лучше понять эти строки —

d Означает, что тип объекта — это каталог
RWX Указывает разрешения каталога, примененные к владельцу
гх Указывает разрешения каталога, примененные к группе
гх Указывает права доступа к каталогу, применяемые к миру
корень Первый экземпляр указывает на владельца каталога
корень Второй экземпляр указывает группу, к которой применяются разрешения группы

Важно понимать разницу между владельцем , группой и миром . Непонимание этого может иметь серьезные последствия для серверов, на которых размещаются службы в Интернете.

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

Пожалуйста, взгляните на следующую таблицу, затем продолжите с инструкцией.

восьмеричный символичный Химическая завивка каталог
1 Икс казнить Войдите в каталог и получите доступ к файлам
2 вес Написать Удалить или изменить файлы в каталоге
4 р Читать Список файлов в каталоге

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

Применение разрешений к каталогам и файлам

При применении разрешений необходимо понимать две концепции:

  • Символические разрешения
  • Восьмеричные разрешения

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

Читать Написать казнить
восьмеричный 4 2 1
символичный р вес Икс

При назначении разрешений с использованием восьмеричного метода используйте 3-байтовое число, например: 760. Число 760 переводится в: Owner: rwx; Группа: rw; Другое (или мир) нет разрешений.

Другой сценарий: 733 будет переводить на: Владелец: rwx; Группа: WX; Другое: WX.

Есть один недостаток разрешений при использовании метода Octal. Существующие наборы разрешений не могут быть изменены. Можно только переназначить весь набор разрешений объекта.

Теперь вы можете задаться вопросом, что плохого в том, чтобы всегда переназначать разрешения? Представьте себе большую структуру каталогов, например / var / www / на рабочем веб-сервере. Мы хотим рекурсивно убрать бит w или write во всех каталогах для Other. Таким образом, заставляя его активно добавлять только тогда, когда это необходимо для мер безопасности. Если мы переназначим весь набор разрешений, мы уберем все другие пользовательские разрешения, назначенные каждому подкаталогу.

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

В этом случае мы хотели бы использовать символический метод для изменения разрешений —

chmod -R o-w /var/www/

Приведенная выше команда не будет «перезаписывать разрешения», а будет изменять текущие наборы разрешений. Так что привыкните использовать лучшие практики

  • Восьмеричное только для назначения разрешений
  • Символично для изменения наборов разрешений

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

После этого давайте рассмотрим несколько команд для изменения разрешений и владельца / членов объекта —

  • CHMOD
  • Чаун
  • команда chgrp
  • Umask

chmod: изменение битов прав доступа к файлу

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

chmod позволит нам изменять права доступа к каталогам и файлам, используя восьмеричные или символические наборы разрешений. Мы будем использовать это для изменения нашего назначения и загрузки каталогов.

chown: изменение владельца файла и группы

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

chown может изменять как владельца пользователя, так и группу объектов. Однако, если нет необходимости изменять оба одновременно, обычно используется chgrp для групп.

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

команда действие
Вроде многословно, но сообщу только об изменениях
-v Подробно, выводит диагностику для каждого сделанного запроса
Рекурсивно применяет операции над файлами и каталогами

chgrp изменит владельца группы на указанного.

Практика реального мира

Давайте изменим все назначения подкаталогов в / var / www / Students /, поэтому группа-владелец — это группа студентов . Затем назначьте корень студентов в группу профессоров. Позже сделайте доктора Терри Томаса владельцем каталога учеников , поскольку ему поручено руководить всей академией информатики в школе.

Как мы видим, при создании каталог остается довольно сырым.

[root@centosLocal ~]# ls -ld /var/www/students/ 
drwxr-xr-x. 4 root root 40 Jan  9 22:03 /var/www/students/

[root@centosLocal ~]# ls -l /var/www/students/ 
total 0 
drwxr-xr-x. 2 root root 6 Jan  9 22:03 assignments 
drwxr-xr-x. 2 root root 6 Jan  9 22:03 uploads 

[root@centosLocal ~]#

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

[root@centosLocal ~]# chown -R drterryt:professors /var/www/students/ 
[root@centosLocal ~]# ls -ld /var/www/students/ 
drwxr-xr-x. 4 drterryt professors 40 Jan  9 22:03 /var/www/students/

[root@centosLocal ~]# ls -ls /var/www/students/ 
total 0 
0 drwxr-xr-x. 2 drterryt professors 6 Jan  9 22:03 assignments 
0 drwxr-xr-x. 2 drterryt professors 6 Jan  9 22:03 uploads

[root@centosLocal ~]#

Теперь у каждого каталога и подкаталога есть владелец drterryt, а группа-владелец — профессора . Поскольку каталог заданий предназначен для того, чтобы ученики могли выполнять назначенную работу, давайте уберем возможность перечислять и изменять файлы из группы учеников .

[root@centosLocal ~]# chgrp students /var/www/students/assignments/ && chmod 
736 /var/www/students/assignments/

[root@centosLocal assignments]# ls -ld /var/www/students/assignments/ 
drwx-wxrw-. 2 drterryt students 44 Jan  9 23:14 /var/www/students/assignments/

[root@centosLocal assignments]#

Студенты могут копировать задания в каталог заданий . Но они не могут перечислять содержимое каталога, копировать текущие файлы или изменять файлы в каталоге назначений . Таким образом, это просто позволяет студентам представить выполненные задания. Файловая система CentOS предоставит отметку даты, когда назначения были включены.

Как владелец каталога назначений

[drterryt@centosLocal assignments]$ whoami 
drterryt

[drterryt@centosLocal assignments]$ ls -ld /var/www/students/assignment 
drwx-wxrw-. 2 drterryt students 44 Jan  9 23:14 /var/www/students/assignments/

[drterryt@centosLocal assignments]$ ls -l /var/www/students/assignments/ 
total 4 
-rw-r--r--. 1 adama  students  0 Jan  9 23:14 myassign.txt 
-rw-r--r--. 1 tammyr students 16 Jan  9 23:18 terryt.txt

[drterryt@centosLocal assignments]$

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

Команда umask: предоставляет режимы по умолчанию для прав доступа к файлам и каталогам при их создании

umask — важная команда, которая предоставляет режимы по умолчанию для прав доступа к файлам и каталогам по мере их создания.

Разрешения Umask используют унарную отрицательную логику.

разрешение операция
0 Читать, писать, выполнять
1 Прочитайте и напишите
2 Читать и выполнить
3 Только для чтения
4 Читать и выполнить
5 Только писать
6 Только выполнить
7 Нет разрешений
[adama@centosLocal umask_tests]$ ls -l ./ 
-rw-r--r--. 1 adama students 0 Jan 10 00:27 myDir 
-rw-r--r--. 1 adama students 0 Jan 10 00:27 myFile.txt

[adama@centosLocal umask_tests]$ whoami 
adama

[adama@centosLocal umask_tests]$ umask 
0022

[adama@centosLocal umask_tests]$

Теперь давайте изменим umask для нашего текущего пользователя и создадим новый файл и каталог.

[adama@centosLocal umask_tests]$ umask 077

[adama@centosLocal umask_tests]$ touch mynewfile.txt

[adama@centosLocal umask_tests]$ mkdir myNewDir

[adama@centosLocal umask_tests]$ ls -l 
total 0 
-rw-r--r--. 1 adama students 0 Jan 10 00:27 myDir 
-rw-r--r--. 1 adama students 0 Jan 10 00:27 myFile.txt 
drwx------. 2 adama students 6 Jan 10 00:35 myNewDir 
-rw-------. 1 adama students 0 Jan 10 00:35 mynewfile.txt

Как мы видим, вновь созданные файлы являются более строгими, чем раньше.

Umask для пользователей должен быть изменен в —

  • / И т.д. / профиль
  • ~ / Bashrc
[root@centosLocal centos]# su adama 
[adama@centosLocal centos]$ umask 
0022 
[adama@centosLocal centos]$

Как правило, umask по умолчанию в CentOS будет в порядке. Когда у нас возникают проблемы со значением по умолчанию 0022 , обычно когда разные отделы, принадлежащие к разным группам, должны сотрудничать в проектах.

Именно здесь появляется роль системного администратора, чтобы сбалансировать операции и дизайн операционной системы CentOS.