Особенности
Значениями по умолчанию являются:
- для файлов:
- для директорий:
Значения разные для файлов и директорий потому, что флаг «выполнения» по-разному действует на файлы и директории. Для обычных файлов «выполнение» означает открытие файлов, для исполняемых файлов — их запуск, а для каталогов — просмотр содержимого.
Например, можно сделать из командной строки:
Следующая команда выполнит рекурсивное применение правил для всех файлов в директории «/home/test», а также для всех файлов во всех поддиректориях:
Следующая команда выполнит рекурсивное применение правил для всех директорий в директории «/home/test», а также для всех директорий во всех поддиректориях:
Того же результата можно добиться и без использования find (обратите внимание на заглавную X):
chmod в php
chmod играет важную роль при программировании на языке php. Особого внимания заслуживают случаи работы с файлами, особенно при настройке движков сайтов (CMS), форумов, гостевых книг и пр. Заметим, что chmod используется языком php только в Unix-подобной операционной системе, для которой и описаны приведенные ниже примеры. Заметим, что хостинг, в основном, базируется на Unix-подобной операционной системе. В этих примерах показаны только принципы программирования в php при работе с chmod. В силу особенностей языка php права доступа в нем записывается только в числовом формате, поэтому рекомендуем символьный формат chmod предварять символом 0.
Читатели должны осознавать тот факт, что при программировании они должны использовать функции для определения наличия проверяемого файла, наличия переменных, приведения типов и пр.
chmod и Cute FTP
Cute FTP является одним из наиболее популярных FTP-клиентов в операционной системе Windows, обладающий широким спектром возможностей, в частности, изменение прав доступа на удаленном сервере. Программа является условно-бесплатной (shareware) и без регистрации будет работать только 30 дней.
После запуска программы необходимо войти на FTP-сервер. Для этого удобно воспользоваться Site Manager’ом, окно которого выскакивает при первом запуске программы. Если соединение еще не создано, то необходимо его создать нажав на кнопку New, затем FTP Site… После этого необходимо в поле Label ввести название соединения (может быть произвольным), в поле Host address вводится адрес FTP-сервера без указания протокола (без ftp://) и слеша в конце. В поля Username и Password необходимо ввести учетное имя и пароль доступа соответственно. Для соединения с сервером следует нажать Connect.
Внимание. Cute FTP по умолчанию сохраняет пароли
Это небезопасно! Если не требуется сохранять пароль, то поле Password заполнять не требуется. В этом случае программа сама спросит пароль. Более подробно см. в руководстве к программе.
Если файлы расположены в табличном виде, то в столбце Attributes можно увидеть права доступа. Для включения табличного вида необходимо в меню выбрать View/View/Details. В указанном столбце все элементы содержат по 10 символов, — последние 9 из них и есть chmod в символьном формате.
Для изменения прав доступа необходимо выделить требуемые файлы, а затем вызвать контекстное меню, в котором выбрать Properties / CHMOD (горячая клавиша +). В появившемся окошке можно изменить права доступа на требуемые, после чего следует нажать кнопку «Применить».
chmod и Total Commander
Total Commander является одним из лучших файловых менеджеров для Windows, имеющий двухпанельный интерфейс. Среди возможностей программы выделим способность выполнять функции FTP клиента. Программа также является условно-бесплатной (shareware) и без регистрации будет работать только 30 дней.
Подключение к FTP серверу можно осуществить, выбрав в меню Net/FTP Connect (горячая клавиша +) либо Net/FTP New Connection… (горячая клавиша +). После соединения в столбце Attr последние три символа будут показывать chmod в числовом формате. Для изменения прав доступа выделите требуемые файлы, затем выберите в меню Files/Change Attributes… В появившемся окошке можно изменять права доступа.
Права пользователя на папку Linux
Как я уже сказал, права делятся на три категории для владельца, для группы и для всех остальных. Таким образом, мы можем дать пользователю доступ к папке несколькими способами:
- Изменить права для всех — тогда все пользователи получат доступ к нашей папке, в том числе и нужный пользователь. Но, обычно, так никто не делает, потому что это небезопасно и в производственных системах важные данные могут попасть в чужие руки;
- Изменить владельца папки на нашего пользователя — по умолчанию владелец имеет полные права на папку, то есть запись и чтение. Если мы сделаем владельцем нашего пользователя, то он автоматически получит все права, а другие пользователи по-прежнему не смогут получить доступ к папке. Но такой вариант тоже не совсем правильный, потому что, обычно, у папки уже есть владелец и изменив владельца мы уберем у него доступ;
- Добавить к папке группу и добавить в нее пользователя — самый верный путь. Файл или папка может принадлежать определенной группе пользователей, но только одной, и мы можем установить для этой группы отличающиеся от владельца права. Но в группу можно добавить несколько пользователей, поэтому мы никого не оставляем без доступа. По умолчанию, для всех файлов устанавливается группа владельца, но это можно очень просто изменить.
Теперь давайте разберем как это реализуется на практике. Допустим, у нас есть папка /storage, владельцем которой является пользователь /root:
ls -l / | grep storage
У папки такие права, что записывать в нее данные может только root, а другие пользователи могут их только смотреть. Нам надо предоставить к ней доступ на запись и чтение пользователю sergiy. Сейчас у него такого доступа нет:
Давайте создадим группу storage и добавим в нее пользователя sergiy:
sudo groupadd storage sudo usermod -aG storage sergiy
Смотрим список групп нашего пользователя:
После добавления пользователя в группу нужно перелогиниться, чтобы система увидела это изменение. Затем меняем группу нашей папки на storage:
sudo chgrp storage /storage
Если нужно дать права на папку в Linux еще какому-нибудь пользователю, то достаточно добавить его в эту группу. Посмотрим список пользователей группы:
Теперь наша папка выглядит вот так:
ls -l / | grep storage
Осталось подправить права для группы, нужно дать разрешение на чтение и запись:
chmod g+rw /storage
Затем пользователь sergiy сможет записывать и читать файлы из этой папки, а все остальные пользователи только читать.
Символьная форма прав доступа
Если войти в любой каталог, где есть файлы, и набрать ls -l, то появится список всех файлов в этом каталоге и права доступа в символьной форме. Строка прав доступа состоит из 10 символов. Первый символ указывает на тип файла: d — директория, — — обычный файл. Три последующих — права доступа владельца к этому файлу. Если первый символ из этих трех — r, владелец имеет право читать этот файл, а если -, то не имеет. Следующие 2 символа — w — писать и x — запускать. Если вместо них стоит -, значит, владелец этого права не имеет. Еще 3 символа — права доступа группы, еще три — права всех остальных пользователей.
Примеры:
drwxrwxrwx — директория, к которой все имеют любые права доступа.
-rwxr--r-- — обычный файл, владелец может делать все, а остальные — только читать.
-r-------- — обычный файл, который владелец может только читать, а остальные пользователи не видят.
Важно заметить, что права доступа, которые имеет файл, зависят также от прав доступа к каталогу, в котором этот файл находится. Например, даже если файл имеет -rwxrwxrwx, другие пользователи не смогут до него добраться, если у них не будет прав на чтение и выполнение каталога, в котором находится файл
Например, если юзер захочет ограничить доступ ко всем своим файлам, он может просто изменить права доступа своего домашнего каталога /home/user на drwx——. Таким образом, никто другой не будет иметь доступ в его каталог, а следовательно посторонним будут недоступны и все файлы. Так что, пользователь может не заботиться об индивидуальной защите своих файлов. Другими словами, чтобы иметь доступ к файлу, вы должны иметь доступ ко всем каталогам, лежащим на пути от корня к этому файлу, а также разрешение на доступ собственно к этому файлу. Обычно пользователи UNIX весьма открыты всеми своими файлами. По умолчанию файлам устанавливается защита -rw-r—r—, которая позволяет другим пользователям читать файлы, но ни коим образом их не менять. Каталогам обычно устанавливаются права доступа drwxr-xr-x, что позволяет другим пользователям ходить с правами экскурсантов по вашим каталогам, но ничего в них не трогать и не записывать.
Но многие пользователи хотят держать других подальше от своих файлов. Установив права доступа файла -rw-------, вы никому не покажете этот файл и не дадите записать в него. Также хорошо закрывает файлы защита соответствующего каталога drwx------.
С правами доступа в символьной форме chmod работает так:
chmod {a,u,g,o}{+,-}{r,w,x} <filenames>
Кратко, вы выбираете из all (все), user (пользователь), group (группа) или other (другие). Далее указываете, либо вы добавляете права (+), либо лишаете прав (-). И наконец, вы указываете один или несколько режимов: read, write или execute.
Команда chmod
Права устанавливаются командой chmod. Команда chmod поддерживает установку прав как в восьмеричном представлении, так и в символьном (маска режима доступа).
Синтаксис команды прост:
chmod <опции> <права> <объект или регулярное выражение>
Опции
Из самых полезных и часто используемых опций можно выделить одну:
-R — рекурсивное назначение прав. Т.е. назначить права всем объектам, руководствуясь регулярным выражением.
Например:
- chmod -R 755 * — Назначение прав всем объектам текущего каталога, включая подкаталоги.
- chmod -R 700 z* — Назначить полные права для владельца и исключить права для группы и всех остальных для всех объектов, которые начинаются именоваться на z, находящиеся в текущем каталоге и его подкаталогах.
Права
Права можно записывать как в восьмеричном представлении так и в символьном. В восьмеричном представлении, для стандартных прав, указываются 3 восьмеричные цифры (1-я для владельца, 2-я для группы, 3-я для всех остальных. См. таблицу выше).
Например:
- chmod 744 koshka.txt — установит права для файла koshka.txt — (r w x r — — r — -);
- chmod -R 775 sobaki — установит права на каталог sobaki и на все объекты, что внутри этого каталога, включая содержимое подкаталогов (r w x r w x r — x);
- chmod 700 * — установит права только для владельца на все файлы и каталоги в текущем каталоге, включая подкаталоги и их объекты (rwx — — — — — -).
Другой способ назначения прав — это использование маски режима доступа (символьное представление). Помимо прав задается еще кому мы собираемся эти права выставлять:
- u — владельцу объекта;
- g — группе объекта;
- o — пользователю «все остальные»;
- a — все вышеперечисленное.
Для назначения прав используются три знака: минус, плюс или равно:
- — — убрать указанные права с объекта;
- + — добавить указанные права к существующим правам объекта;
- = — заменить права объекта на указанные.
Пример:
chmod g+w koshki.txt — Добавить пользователям группы файла koshki.txt права на запись в этот файл;
chmod a=rwx sobaki.doc — Заменит существующие права на файле sobaki.doc на полные права всем;
chmod o-w test.cgi — Уберет права на запись для пользователя «Все остальные».
chmod ug=rw spisok.doc — Выставить права на чтение и запись файлу spisok.doc для владельца и группы
Обратите внимание, что если у пользователя «все остальные» были какие-либо права, они сохранятся в неизменном виде.. Использование символьного представления позволяет редактировать права файлов более гибко:
Использование символьного представления позволяет редактировать права файлов более гибко:
- chmod u+x,g+w-x koshki.txt — Добавить владельцу файла koshki.txt права на его выполнение, пользователям группы разрешить запись и запретить выполнение и оставить права остальных пользователей без изменений;
- chmod u=rwx,g+w,go-x sobaki.doc — Установить полные права для владельца файла, разрешить пользователям группы запись и запретить выполнение всем пользователям, кроме владельца файла.
Символьное назначение окажет неоценимую услугу, если требуется добавить права на объект к уже существующим правам.
Массовое назначение прав
Иногда, бывает, нужно массово установить права на определенный тип объектов, например, только на каталоги или только на файлы. Простое использование опции -R (рекурсия) здесь не поможет т.к. chmod будет проходить по всем объектам удовлетворяющим маске, что иногда вовсе не то, что нужно.
Итак, чтобы массово установить права на определенный тип объектов можно использовать один из вариантов (вообще, их очень много):
chmod -R 770 $(find . -type d)
где -type d — каталоги, -type f — файлы. В данном примере chmod установит, начиная от текущего каталога, права на все каталоги (включая подкаталоги) разрешения 770 (rwx rwx- — -) при этом не трогая права на другие объекты.
Более длинный вариант аналогичной операции:
find ./ -type f -exec sudo chmod 775 {} \;
где -type d — каталоги, -type f — файлы. В данном варианте chmod установит разрешения 775 на все файлы включая файлы в подкаталогах начиная от текущего.
Символьный (текстовый) метод
Синтаксис команды при использовании символьного режима имеет следующий формат:
Первый набор флагов ( ), флаги пользователей, определяет, для каких классов пользователей изменяются права доступа к файлу.
- — Владелец файла.
- — Пользователи, которые являются членами группы.
- — Все остальные пользователи.
- — Все пользователи, идентичные .
Если флаг пользователя опущен, то по умолчанию используется флаг, и разрешения, установленные umask , не затрагиваются.
Второй набор флагов ( ), флагов операций, определяет, следует ли удалять, добавлять или устанавливать разрешения:
- Удаляет указанные разрешения.
- Добавляет указанные разрешения.
- Изменяет текущие разрешения на указанные разрешения. Если после символа не указано никаких разрешений , все разрешения из указанного пользовательского класса будут удалены.
Разрешения ( ) можно явно задать с помощью либо ноль , либо один или несколько из следующих букв: , , , , , и . Используйте одну букву из набора , и при копировании разрешений от одного к другому классу пользователей.
При настройке разрешений для нескольких пользовательских классов ( ) используйте запятые (без пробелов) для разделения символьных режимов.
Ниже приведены некоторые примеры использования команды в символическом режиме:
-
Дайте членам группы разрешение на чтение файла, но не на запись и выполнение:
-
Удалить разрешение на выполнение для всех пользователей:
-
Отвратительно удалите разрешение на запись для других пользователей:
-
Удалите права на чтение, запись и выполнение для всех пользователей, кроме владельца файла:
То же самое можно сделать с помощью следующей формы:
-
Дайте разрешение на чтение, запись и выполнение владельцу файла, разрешения на чтение для группы файла и никаких разрешений для всех остальных пользователей:
-
Добавьте разрешения владельца файла к разрешениям, которые имеют члены группы файла:
-
Добавьте липкий бит в данный каталог:
Синтаксис
Основные параметры:
- -c — показать информация обо всех изменениях.
- -f — не показывать ошибки.
- -v — вывод полной информации.
- -R — рекурсивно обрабатывать файлы и каталоги.
- —help — показать справочную информацию.
- —version — информация о версии.
Применят часто символьную запись прав:
- -r — на чтение
- -w — на запись
- -x — на выполнение, права на запуск
- -s — на выполнение от супер пользователя root.
Категории пользователей:
- -u (owner) — владелец.
- -g (group) — группа.
- -o (others)- другие.
Каждый кто имеет доступ к документу имеет свой набор правил. Например владелец имеет неограниченный доступ, группа только писать, другие выполнять.
Чтобы прибавить права используется знак «+», убавить «-«.
Вместо букв можно назначать права с помощью цифр от нуля до семи:
- 0 — все запрещено
- 1 — выполнение, разрешено запускать документ
- 2 — запись, изменение.
- 3 — выполнение и запись.
- 4 — разрешено читать.
- 5 — читать и выполнять
- 6 — читать и писать
- 7 — все разрешено, писать, читать, выполнять.
Здесь 777:
- первая цифра назначает разрешения для владельца документа;
- вторая цифра — для группы;
- третья — для всех остальных.
Примеры прав на директорию:
- 744 — первая цифра говорит, что имеет полный доступ владельц, вторая цифра четыре — чтение для группы, третья цифра четыре — всем другим можно читать;
- 765 — для владельца — полные права, для группы — читать, писать и другим читать, выполнять;
- 774 — полный доступ для владельца, полный доступ для группы, чтение для остальных;
- 777 — всем все разрешено.
Примеры
Назначим для файлу test полный доступ всем.
Чтобы посмотреть какие права для файлы test, выполним дополнительную команду ls, с ключом -l. Подробней о команде ls можно посмотреть здесь.
На экране видим:
- -rwxrwxwx 1 — права доступа.
- Первый root — имя пользователя.
- Второй root — имя группы.
- 583 — размер файла test.
- test — название документа.
Сделаем тоже самое, только уже с помощью букв.
Здесь:
- u — владелец;
- g -группа;
- o — остальные;
- + — включить;
- r — читать;
- w — писать;
- x — выполнять.
Создадим новый документ «logi» с помощью команды touch и разрешим любым пользователям выполнять его и изменять. За выполнение отвечает буква «х», за изменения «w».
В буквенном виде запись будет выглядеть так:
Чтобы владельцу дать полный доступ, изменим первую цифру 3 на 7. Получается так:
Дадим полный доступ всем, на каталог «catalog».
Чтобы дать разрешения 777 на папку и включая все ее содержимое, необходимо добавить звездочку. Получается так:
Теперь подкаталоги и файлы имеют 777.
Основы
Есть три группы прав доступа к файлам/директориям, о которых вам стоит позаботиться:
- Пользователь – что может делать владелец файла;
- Группа – что могут делать пользователи отдельных групп;
- Другие – что могут делать остальные пользователи.
У пользователей есть логины ( уникальные для каждого пользователя ). Пользователи могут быть частью группы.
Примечание: команда chmod принимает целые числа ( 0664 ), и каждая из цифр отвечает за определенные права доступа.
Сегодня я расскажу вам о том, как правильно использовать chmod-настройки . Chmod используются для изменения прав доступа к директории или файлу.
Флаги
chmod –R позволит рекурсивно пройтись по всей указанной директории и изменить права доступа для всех файлов и вложенных директорий.
Изменяем права доступа
Вы можете определять, для кого изменяете права доступа:
Вы можете добавлять или удалять права доступа при помощи следующих команд chmod :
- + добавить права доступа;
- — удалить права доступа.
Можно задавать следующие права доступа:
Эти знания можно использовать для настройки прав доступа в Apache :
- Apache запущен как пользователь www-data в группе www-data ;
- Корневой каталог сервера: /var/www .
Для начала
Нам нужно установить владельца/группу для корневого каталога ( и любых внутренних директорий и файлов ):
Нужно установить правильные права доступа для пользователей и групп. Запускаем несколько общих команд, которые закрывают доступ, а затем открываем доступ, насколько нам требуется.
Сначала сделайте так, чтобы никто кроме текущего пользователя ( www-data ) не имел доступа к содержимому директории web-root . Мы используем ‘ go ‘, поэтому команда будет направлена к группам и другим пользователям (‘ group ‘ и ‘ other ‘). Также мы используем ‘ — ‘ для отключения прав доступа. Затем используется параметр ‘rwx ‘, чтобы запретить чтение, запись и исполнение.
Далее нужно разрешить пользователям из той же группы ( и ‘other’ ) открывать директорию /var/www . Это делается без рекурсивного подхода. Мы указываем ‘ group ‘ и ‘ other ‘, но используем параметр ‘ + ‘, чтобы разрешить исполнение ( chmod ‘x’ ).
Далее изменяем права доступа всех директорий и файлов в корневом каталоге для той же группы ( www-data ). На случай, если в ней есть файлы:
Теперь нужно произвести некоторые « сбросы ». C помощью команд chmod сделайте так, чтобы только один пользователь мог осуществлять доступ к контенту:
Сделайте так, чтобы любой пользователь из той же группы мог читать/записывать и выполнять директории и файлы в корневом каталоге на сервере:
Лично я дал группе право записывать – это нужно для тех пользователей, которые редактируют контент. Выглядит это следующим образом:
Зачастую вам даже не придется проделывать все это, но данная статья вполне способна помочь разобраться.
Источник
Смена владельца и группы владельцев — chown
Теперь нужно разобраться, как менять владельцев у файлов, для этого нужно использовать утилиту chown. Владельца сможет сменить только суперпользователь.
alex@deb-11:~$ su - Пароль: root@deb-11:~# chown testuser:testuser /home/alex/test/ root@deb-11:~# ls -ld /home/alex/test/ drwxr-x--x 2 testuser testuser 4096 янв 19 13:12 /home/alex/test/ alex@ubuntu:~$ sudo su - password for alex: root@ubuntu:~# chown testuser:testuser /home/alex/test/ root@ubuntu:~# ls -ld /home/alex/test/ drwxrwx--x 2 testuser testuser 4096 янв 19 10:12 /home/alex/test/
Так как в Ubuntu не задан пароль для root пользователя я использую sudo чтобы переключиться на него. Это я уже разбирал в этом курсе.
Команде “chown” нужно указать имя пользователя, потом двоеточие и имя группы. После проделанного пользователь testuser и группа testuser станут владельцами данного каталога.
Можно сменить только владельца а группу не менять:
root@deb-11:~# chown alex /home/alex/test/ root@deb-11:~# ls -ld /home/alex/test/ drwxr-x--x 2 alex testuser 4096 янв 19 13:12 /home/alex/test/
А можно сменить только группу владельцев:
root@deb-11:~# chown :testuser /home/alex/test/ root@deb-11:~# ls -ld /home/alex/test/ drwxr-x--x 2 alex testuser 4096 янв 19 13:12 /home/alex/test/
Как вы помните пользователь testuser не мог прочитать каталог test/, теперь он это сделать может, так как для группы у нас есть право читать этот каталог.
root@deb-11:~# su testuser testuser@deb-11:/root$ ls /home/alex/test/ file1.txt file2.txt testuser@deb-11:/root$ exit exit root@deb-11:~#
Настройка модулей Apache
Как я уже говорил, Apache — модульная программа, ее функциональность можно расширять с помощью модулей. Все доступные модули загрузчики и конфигурационные файлы модулей находятся в папке /etc/apache/mods-available. А активированные в /etc/apache/mods-enable.
Но вам необязательно анализировать содержимое этих папок. Настройка Apache 2.4 с помощью добавления модулей выполняется с помощью специальных команд. Посмотреть все запущенные модули можно командой:
Включить модуль можно командой:
sudo a2enmod имя_модуля
sudo a2dismod имя_модуля
После включения или отключения модулей нужно перезагрузить apache:
sudo systemctl restart apache2
Во время выполнения одной из этих команд создается или удаляется символическая ссылка на файл модуля с расширением load в директории mods-available. Можете посмотреть содержимое этого файла, там только одна строка. Например:
Это к тому, что активировать модуль можно было просто добавив эту строчку в файл apache2.conf. Но принято делать именно так, чтобы избежать путаницы.
Настройки модулей находятся в той же папке, только в файле с расширением .conf вместо load. Например, посмотрим настройки того же модуля для сжатия deflate:
Файлы в папке conf-available, это такие же модули, только они установлены отдельно от apache, это может быть конфигурационные файлы для включения модуля php или любого другого языка программирования. Здесь работает все точно так же, только команды для включения и отключения этих модулей немного другие:
a2disconf имя модуля
Как вы убедились, включать модули очень просто. Давайте включим несколько необходимых, но не включенных по умолчанию модулей:
sudo a2enmod expires sudo a2enmod headers sudo a2enmod rewrite sudo a2enmod ssl
Модули expires и headers уменьшают нагрузку на сервер. Они возвращают заголовок Not Modified, если документ не изменился с последнего запроса. Модуль expiries позволяет устанавливать время, на которое браузер должен кэшировать полученный документ. Rewrite позволяет изменять запрашиваемые адреса на лету, очень полезно при создании ЧПУ ссылок и т д. А последний для включения поддержки шифрования по SSL. Не забудьте перезагрузить apache2 после завершения настроек.
Информация пользователей
В системе присутствует следующая информация о каждом пользователе:
- Имя пользователя (user name) — в рамках системы имя должно быть уникальным. В именах должны использоваться только английские буквы, числа и символы _ и . (точка).
- Идентификационный номер пользователя (UID) — является уникальным идентификатором пользователя в системе. Система отслеживает пользователей по UID, а не по именам.
- Идентификационный номер группы (GID) — обозначает группу, к которой относится пользователь. Каждый пользователь может принадлежать к одной или нескольким группам. Принадлежность пользователя к группе устанавливает системный администратор, чтобы иметь возможность ограничивать доступ пользователей к тем или иным ресурсам системы.
- Пароль (password) — пароль пользователя в зашифрованном виде.
- Полное имя (full name) — помимо системного имени может присутствовать полное имя пользователя, например фамилия и имя.
- Домашний каталог (home directory) — каталог, в который попадает пользователь после входа в систему. Подобный каталог имеется у каждого пользователя, все пользовательские каталоги хранятся в директории /home.
- Начальная оболочка (login shell) — командная оболочка, которая будет запускаться при входе в систему. Например, /bin/bash.
Вся информация о пользователях хранится в следующих файлах:
passwd (etc/passwd) — содержит информацию о пользователях, имеет следующий формат записи — «user_name:password:UID:GID:full_name:home_directory:login_shell». Элементы записи должны разделяться символом — «:» (двоеточие) и записываются без пробелов. Если пароль хранится в зашифрованном виде в файле /etc/shadow, то вместо пароля указывается — «x».
group (etc/group) — информация о группах, формат — «group_name:password:GID:user1,user2,user3». Элементы записи должны разделяться символом — «:» (двоеточие) записываются без пробелов. Имена пользователей записываются через запятую.
У файлов /etc/passwd и /etc/group всегда определенные права доступа: чтение и запись для root, для остальных только чтение.
shadow (etc/shadow) — в этом файле хранятся так называемые «теневые пароли», информация о паролях пользователей в зашифрованном виде. Cделано это для безопасности, так как файл /etc/passwd может читаться кем угодно, а файл /etc/shadow может прочитать только root.
gshadow (etc/gshadow) — то же самое что и shadow, только для паролей групп.
Помимо основных, в системе присутствуют дополнительные файлы.
useradd (etc/default/useradd) — файл задающий свойства «по умолчанию» для всех добавляемых пользователей. Можно просмотреть командой — useradd -D.
useradd -D GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/sh SKEL=/etc/skel CREATE_MAIL_SPOOL=no
login.defs (/etc/login.defs) — содержит настройки для создания новых пользователей.
/etc/skel — каталог с дефолтными файлами, которые копируются в домашний каталог каждого пользователя при его создании.
Установка Apache
На данный момент, самая новая версия программы 2.4 поэтому и будет рассмотрена настройка apache 2.4. Как я уже говорил, в Linux программа устанавливается буквально в пару команд. Для установки в Ubuntu сначала обновим систему до самой новой версии:
sudo apt update sudo apt upgrade
Затем установка apache2:
sudo apt install apache2
В других дистрибутивах пакет программы называется либо так, либо httpd и его установка у вас не вызовет трудностей.
После завершения установки нужно добавить веб-сервер в автозагрузку, чтобы не запускать его вручную после включения компьютера:
sudo systemctl enable apache2
Установка и настройка сервера Apache
Apache — это популярнейший свободный веб-сервер. Состоянием на 2020 год он используется на 33% всех сайтов интернета, а это приблизительно 304 миллиарда сайтов. Этот веб-сервер был разработан в далеком 1995, как замена для популярного того сервера NCSA и исправил множество его проблем. Ходят слухи что его имя походит от a patchy, заплатка, так как он исправлял ошибки NCSA. Сейчас же, это кроссплатформенная программа, поддерживающая Windows, Linux и MacOS и обеспечивающая достаточную гибкость, настраиваемость и функциональность. Программа имеет модульную структуру, что позволяет расширять ее функциональность почти до бесконечности с помощью модулей.
Установить Apache в Linux можно с помощью нескольких команд, но программа предоставляет очень большое количество настроек, которые можно изменить, а также модулей, после включения которых она будет работать лучше. В этой статье будет рассмотрена установка и настройка Apache, в качестве основной системы мы будем использовать Ubuntu, но вы можете повторить эти действия в любом другом дистрибутиве. Будет рассмотрена не только установка самой программы, но и способы ее настройки, настройка виртуальных хостов apache, а также самые полезные модули.
Вступление
В Unix каждому файлу соответствует набор прав доступа, представленный в виде 9-ти битов режима. Он определяет, какие пользователи имеют право читать файл, записывать в него данные или выполнять его. Вместе с другими тремя битами, влияющими на запуск исполняемых файлов, этот набор образует код режима доступа к файлу. Двенадцать битов режима хранятся в 16-битовом поле индексного дескриптора вместе с 4-мя дополнительными битами, определяющими тип файла. Последние 4 бита устанавливаются при создании файлов и не подлежат изменению.
Биты режима (далее права) могут изменяться либо владельцем файла, либо суперпользователем с помощью команды chmod.
Существует три пути управления доступом к файлу или каталогу. Было определено, что каждый файл должен иметь владельца (owner), группового владельца (group owner), а также может потребоваться доступ для всех остальных пользователей (everyone). Эти названия обычно приводятся как пользователь/группа/остальные (user/group/others) или коротко ugo. Реализация управления доступом к файлам и каталогам в Unix позволяет или запрещает доступ по трем флагам: флаг чтения (Read), флаг записи (Write), флаг выполнения (eXecute). Они представляются следующим образом:
flag | user | group | other |
---|---|---|---|
# | rwx | rwx | rwx |
Флаг типа (flag) может быть одним из следующих:
Флаг | Описание |
---|---|
— | Отсутствие флага |
l — лат. «л» | Символическая ссылка (symbolic link) |
d | Директория (directory) |
b | Блочное устройство (block device) |
c | Символьное устройство (character device) |
p | Канал, устройство fifo (fifo device) |
s | Unix сокет (unix domain socket) |
Chmod
Теперь давайте перейдем к команде chmod.
Позволяет манипулировать правами доступа к любым системным объектам, кроме символических ссылок (по умолчанию).
Существует 3 типа взаимодействия файлов: чтение, запись и выполнение. Чтобы просмотреть указанные правила для объектов, введите:
ls -lh
В показанном списке самый левый столбец объясняется следующим образом.
Первый символ описывает тип файла («-» – это обычный файл, «d» – это каталог и т. д.), затем есть три группы по три символа в каждой: первый описывает права доступа для пользователя (не обязательно владелец объекта), второй для группы пользователей и третий для остальных, не входящих ни в одну категорию.
Каждый из этих символов напрямую определяет тип доступа: чтение, запись и выполнение.
Если есть дефис (минус), то соответствующее действие запрещено. Чтение означает открытие файла и просмотр его содержимого. Запись позволяет вносить изменения в объект, а выполнение – запускать программу / скрипт.
Что касается каталогов, запреты работают следующим образом:
только чтение каталога запрещено(-wx) | запрещена только запись в каталог(r–х) | запрещено только выполнение каталога(rw-) | |
изменить папку | + | + | – |
просматривать файлы в папке |
– | + | + |
удалить файлы в папке | + | – | – |
создавать / изменять файлы в папке |
+ | + | – |
Вы можете заметить, что эффект запрета на чтение прямо противоположен эффекту запрета на исполнение.
В зависимости от прав доступа владелец может перемещать и удалять объекты, созданные от его имени.
Запись! В статье не рассматриваются изменения в битах Set-User-ID и Set-Group-ID из-за конкретной области их применения.
Манипулирование этими правилами осуществляется двумя способами, описанными ниже:
См. также:
- Linux — Основные права доступа к файлам и каталогам
- Как предоставить пользователю привилегии chown и chmod для определенного каталога в Linux
- ️ Как рекурсивно изменить права на папки и подкаталоги
Установка прав с помощью чисел
Способ использования команды chmod, когда предоставляемые права выражаются одной восьмеричной цифрой для каждой категории пользователей, несколько проще с точки зрения записи. Однако надо помнить, что обозначают цифры:
7 – разрешены чтение, запись, исполнение
6 – разрешены чтение и запись
5 – разрешены чтение и исполнение
4 – разрешено только чтение
0 – ничего не разрешено
В первом аргументе chmod указываются три цифры: первая обозначает права владельца, вторая – группы, третья – остальных.
В первом примере файлу назначаются права на чтение и запись для владельца, а для группы и остальных – только на чтение. Во втором примере всем даются права на чтение и запись.