Fast Site Engine

Высокопроизводительная CMS для сайтов.

Сделать сайт

Карта сайта
Переходим на Линукс
Политика конфиденциальности
Сделать сайт на основе Fast Site Engine

Установка
Документация
Список изменений
Лицензионное соглашение

Скачать
О движкеПроизводительностьБезопасностьТехнические требованияSEOКонтакты

Файловая система Linux

Linux отличается от Windows архитектурой файловой системы Linux и на мой взгляд в лучшую сторону. Структура фалов идёт не от диска C:\, а от корня /. Операционная система, конечно, стоит на одном из дисков, sda например, но Линукс очень гибкая операционная система и позволяет распределить системные и иные директории по разным дискам при надобности или установить ОС на RAID массив. Структура чётко разделена, все файлы лежат там где необходимо, например в директории /home - файлы пользователей с их настройками, в /lib (library) - системные библиотеки итп. везде порядок! И не может быть как в Wndows - чёрти где зачастую настройки программ.

Является плюсом отсутствие файла реестра в Linux, который добавляет тормозов Windows. Все настройки раскиданы по файлам, такое структурное решение работает куда лучше.

Отдельно стоит разъяснить про диски, если в Windows диски начинаются от C, D итд. И являются корнем, то в Linux главным считается корень системы / в котором уже живут все файлы, директории, диски и прочие устройства. Диски могут монтироваться в одну из директорий(папок): media, dev или mnt. Или куда угодно по желанию пользователя, читайте как примонтировать диск в Linux.

В media попадают динамически подключённые диски, точнее там находится устройство к которому пользователь может обращаться как к обычной директории, так же точка доступа появляется в файловом менеджере. Будет подписан как жёсткий диск, обращение к нему будет по названию /media/имя-пользователя/имя-диска (метка тома/label или длинный UUID (хеш-код) если метки нет.)

В dev попадают все накопительные устройства, которые именуются по порядку sda, sdb, sdc итд. Путь к устройству /dev/sda итд. (dev - devices - устройства). Диски именуются в зависимости от типа их подключения: NVMe - nvme0n1, SATA - sda, а IDE - hda.. т.е. sda - SATA DISK A и дальше в алфавитном порядке. Если буквы закончатся, диски начнут называться как /dev/sdaa, /dev/sdab...

mnt - точка(директория) для монтирования временных файловых систем. (обычно не используется)

Дисковые, флеш итп. устройства называются как sda, sdb, sdc итд. Дисковые разделы в устройстве (логические тома) как sda1, sda2 итп. С томами идёт непосредственная работа, они несут в себе файловые системы, файлы итп.

Имейте ввиду, в Линуксе регистр букв в названии файлов имеет значение, имена name.txt и naMe.txt являются разными файлами, в Виндовс одним и тем же файлом.

Файловая система для Линукс какую выбрать?

Если в Windows сейчас модная NTFS, то файловая система для Linux - это кошмар для новичка. Их очень много и статей по интернету много устаревших, всё что необходимо знать - самая последняя и актуальная EXT4. Её использует на своих серверах Google и ещё большая часть серверного мира, а там особые требования к надёжности. В текущее время есть ещё разработки, но EXT4 уже доказала свою надёжность и имеет пару преимуществ: она немного быстрее NTFS и она справляется с фрагментацией (разбросу частей файла по всему диску, где есть пустые ячейки и последующим скатыванием в тормоза всей системы) с учётом того, что диск не забит под завязку. Таким образом нет необходимости в процессе дефрагментации диска - вот как здорово!

Как работает файловая система в Линукс

Файловая система в Линукс имеет несколько уровней: есть суперпользователь root, которому принадлежат директории системы. И есть пользователи, которые доступа к системе не имеют (только чтение и оно также может быть запрещено). По умолчанию, в сборках дистрибутивов типа Ubuntu, Linux Mint итп. доступа к root извне нет, что повышает безопасность. Пользователи имеют свою директорию, в которой могут проводить свою деятельность, куда сохраняются их настройки - директория /home/имя-пользователя/... (на отдельном диске можно установить владельцем текущего пользователя и так же пользоваться файлами или поставить разрешения(права) для всех пользователей, см. ниже). Таким простым и изящным образом решена проблема вирусов. Конечно присутствует вероятность, что пользователь поставит вредоносное приложение из вне или взломают репозиторий (то место от куда загружаются и устанавливаются программы, заранее проверенные разработчиками и прошедшие контроль), программе при установке дадут минимально необходимы права для её установки и в дальнейшем она, будучи запущенной из под пользователя, не сможет редактировать системные файлы. В общем забудьте об антивирусах и тормозах системы из-за постоянных проверок.

А ещё, ни один файл на диске не сможет запуститься/выполниться, если у него на это нет прав.

Права Линукс chmod

Любая директория/файл имеет владельца и группу (в определённые группы могут входить несколько пользователей). Их можно по правой клавиши мыши сменить в свойствах или в консоли.

Права chmod могут быть заданы как в числовом(абсолютном) формате(режиме), так и в буквенном(символьном).

Числовой:

sudo chmod -R 777 /media/$USER/diskname/needir

sudo - запросим права суперпользователя для данной операции, укажем программу которая это будет делать chmod. -R - чтоб скрипт прошёл рекурсивно по всем вложенным директориям и файлам. Укажем права, и директорию назначения.

Права 777: первая цифра - пользователь; вторая - группа; третья - остальные (в смысле не являющиеся пользователями системы, подключённые удалённо итп);

Цифры значат:

Буквенный:

sudo chmod -R a+rwx /media/$USER/diskname/needir

# Записи равноценны
sudo chmod -R +rwx /media/$USER/diskname/needir

sudo chmod -R ugo+rwx /media/$USER/diskname/needir

Первая или несколько указывают на то, для кого применяем права:
u - пользователь; g - группа; o - остальные; a - все;
Вторая, действие: - запрещение; + разрешение; = присвоение;
Третья или несколько сами права: r - чтение, w - запись, x - выполнение;

Найти все директории и назначить права по умолчанию:

find /media/$USER/diskname/needir -type d -exec chmod 755 {} \;

Найти все файлы и назначить права по умолчанию:

find /media/$USER/diskname/needir -type f -exec chmod 644 {} \;

В файловом менеджере можно включить колонку "права доступа" и там увидеть обозначение в буквенном режиме, что на мой взгляд не удобно, например: 777 выглядит как rwxrwxrwx; 755 = rwxr-xr-x; 644 = w-r--r--; т.е. пользователь 3 буквы: чтение, запись, выполнение; далее группа и остальные по 3 символа. Ещё перед директориями ставится флаг в файловом менеджере:

т.е на 1 символ больше в начале.. -rwxr-xr-x или drwxr-xr-x

У chmod есть ещё варианты, я их не привожу - этого достаточно.

Файловая система только для чтения Linux

Если файловая система доступна только для чтения в Linux, имеется ввиду если подключили диск, флешку итп и она не даёт записывать на диск, а только просматривать, то это значит мы упёрлись в права пользователя, что делать?

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

Если в файловом менеджере есть выпадающее меню по правой кнопке - действия root. То нажмём на директорию в /media/имя-пользователя/ на имя-диска(label) и в выпадающем меню - Установить владельцем активного пользователя, всё, можно пользоваться этими файлами. (имейте ввиду, бывает глюк, права в свойствах не отображаются после смены, хотя по факту уже изменены - переоткройте файловый менеджер, чтоб он перечитал.)

В файловом менеджере Dolphin это расширение (в Linux Mint уже стоит) называется Root Actions Servicemenu. На другой сборке установить можно в Настройка Dolphin - Действия - Загрузить новые.. Ещё есть подобные, например, Simple Root Actions Menu. (Не пользуюсь, консоль же есть.)

Как всегда можно просто воспользоваться консолью:

sudo chown -R $USER:$USER /media/$USER/diskname

# Корректней, но группа может отдаваться пустой, она совпадает с пользователем 
sudo chown -R $USER:$GROUP /media/$USER/diskname

# Или разрешить запись всем
sudo chmod -R 777 /media/$USER/diskname

sudo - запросить права суперпользователя на текущую операцию
chmod - программа выполняющая операции
Далее параметры:
-R означает рекурсивно пройти по всем файлам и директориям внутри.
$USER, $GROUP - подставить данные текущего пользователя.
777 - установка разрешений на чтение и запись для владельца, группы и остальных пользователей.
В конце путь к файлу или дирректории, которая подвергнется экзекуции.



© Все права защищены 2004 - 2024