Файлы и пользователи в LINUX
Файловая система Linux
Файловая система - часть операционной системы, которая обеспечивает чтение и запись файлов на дисковых носителях информации. Файловая система устанавливает физическую и логическую структуру файлов, правила их создания и управления ими, а также сопутствующие данные файла и идентификацию. Конкретная файловая система определяет размер имени файла, максимальный возможный размер файла. Операционная Система Linux поддерживает множество файловых систем, в том числе и используемые в Windows файловые системы FAT, FAT32, NTFS, но при установке OC Linux рекомендуем выбрать родную систему Extfs, Ext2, Ext3, Ext4, ReiserFS, XFS.
В Linux и Unix все - файл. Директории, устройства, сами файлы - все это ФАЙЛЫ. Устройства определяются узлами (Minor node и Major node), но при этом они остаются файлами.
Файловые системы Linux и Unix организованы в виде древовидной иерархической структуры. Самый верхний уровень файловой системы это / или корневой каталог. Все остальные файлы и каталоги находятся в корневом каталоге.
Например, /home/jebediah/cheeses.odt показывает правильный полный путь к файлу cheeses.odt, который находится в каталоге jebediah, который находится в каталоге home, который, в свою очередь, находится в корневом каталоге.
В корневом каталоге находится набор важных каталогов, общих для большинства систем Linux. Вот список основных каталогов, которые находятся непосредственно в корневом (/) каталоге:
- /bin - важные бинарные (исполняемые) приложения
- /boot - загрузочные конфигурационные файлы, ядра и другие файлы, необходимые во время загрузки операционной системы
- /dev - файлы устройств
- /etc - конфигурационные файлы, стартовые сценарии
- /home - домашние каталоги пользователей
- /initrd - используется при создании частного initrd процесса загрузки
- /lib - системные библиотеки
- /lost+found - предоставляет систему потерян+найден для файлов в корневом (/) каталоге
- filename>/media
- /mnt - файловые системы на вашем жестком диске, примонтированные вручную
- /opt - каталог для установки дополнительных приложений
- /proc - специальный динамический каталог, содержащий информацию о состоянии системы, включая процессы, исполняемые в данный момент
- /root - домашний каталог пользователя root, произносится "слэш-рут"
- /sbin - важные системные бинарные приложения
- /srv - может содержать файлы веб-сервера, ftp-сервера и др.
- /sys - системные файлы
- /tmp - временные файлы
- /usr - приложения и файлы, наиболее доступные всем пользователям
- /var - изменяемые файлы, такие как логи и базы данных.
Пользователи и группы пользователей
UNIX-подобные операционные системы являются многопользовательскими, предоставляя возможно одновременной работы нескольких пользователей в пределах одной операционной системы. Пользователи Linux могут иметь персональные каталоги с файлами, запускать определенные процессы в системе и выполнять различные действия отдельно от других пользователей.
Пользователи Linux бывают двух типов - суперпользователь которому позволено делать в системе все и обычный. Первый обладает неограниченными правами, поэтому от имени суперпользователя (root) почти всегда работает администратор, выполняя настройку, установку программного обеспечения и другие системные операции.
Каждый пользователь имеет определенные параметры, так система может понять какой процесс кто запустил и еще много другой информации.
Информация о пользователях в системе Ubuntu хранится в файле - /etc/passwd. Если открыть этот файл редактором, то вы увидите, что информация о пользователе хранится в одной строке с набором определенных параметров разделенных знаком - ":".
- Регистрационное имя(Login);
- Зашифрованный пароль или заполнитель пароля (вместо пароля будет записан символ x);
- Идентификатор пользователя(UID);
- Идентификатор группы по умолчанию(GID);
- Так называемое поле GECOS или комментарий, в котором указывают информацию о пользователе;
- Домашний каталог;
- Оболочка;
ПРАВА ДОСТУПА К ФАЙЛАМ В LINUX
В операционной системе Linux есть много отличных функций безопасности, но она из самых важных - это система прав доступа к файлам. Linux, как последователь идеологии ядра Linux в отличие от Windows, изначально проектировался как многопользовательская система, поэтому права доступа к файлам в linux продуманы очень хорошо.
ОСНОВНЫЕ ПРАВА ДОСТУПА К ФАЙЛАМ В LINUX
- Чтение - разрешает получать содержимое файла, но на запись нет. Для каталога позволяет получить список файлов и каталогов, расположенных в нем;
- Запись - разрешает записывать новые данные в файл или изменять существующие, а также позволяет создавать и изменять файлы и каталоги;
- Выполнение - вы не можете выполнить программу, если у нее нет флага выполнения. Этот атрибут устанавливается для всех программ и скриптов, именно с помощью него система может понять, что этот файл нужно запускать как программу.
Но все эти права были бы бессмысленными, если бы применялись сразу для всех пользователей. Поэтому каждый файл имеет три категории пользователей, для которых можно устанавливать различные сочетания прав доступа:
- Владелец - набор прав для владельца файла, пользователя, который его создал или сейчас установлен его владельцем. Обычно владелец имеет все права, чтение, запись и выполнение.
- Группа - любая группа пользователей, существующая в системе и привязанная к файлу. Но это может быть только одна группа и обычно это группа владельца, хотя для файла можно назначить и другую группу.
- Остальные - все пользователи, кроме владельца и пользователей, входящих в группу файла.
СПЕЦИАЛЬНЫЕ ПРАВА ДОСТУПА К ФАЙЛАМ В LINUX
- SUID - если этот бит установлен, то при выполнении программы, id пользователя, от которого она запущена заменяется на id владельца файла. Фактически, это позволяет обычным пользователям запускать программы от имени суперпользователя;
- SGID - этот флаг работает аналогичным образом, только разница в том, что пользователь считается членом группы, с которой связан файл, а не групп, к которым он действительно принадлежит. Если SGID флаг установлен на каталог, все файлы, созданные в нем, будут связаны с группой каталога, а не пользователя. Такое поведение используется для организации общих папок;
- Sticky-bit - этот бит тоже используется для создания общих папок. Если он установлен, то пользователи могут только создавать, читать и выполнять файлы, но не могут удалять файлы, принадлежащие другим пользователям/
Как посмотреть и изменить права доступа
Чтобы узнать права на файл linux выполните такую команду, в папке где находится этот файл:
ls -l
Чтобы изменить права на файл в linux вы можете использовать утилиту chmod. Она позволяет менять все флаги, включая специальные.
$ chmod опции категориядействиефлаг файл
ВЫВОДЫ
Вот и все, теперь вы знаете не только что такое права доступа к файлам в linux, но и как их посмотреть, и даже как их изменить. Это очень важная тема, в которой действительно стоит разобраться новичкам, чтобы использовать свою систему более полноценно.