Fast Site Engine
Высокопроизводительный движок для сайтов
Заказать сайт на основе движка
О движкеПроизводительностьБезопасностьТехнические требованияSEO 
Лицензионное соглашение
Демо
Установка
Панель управления
Модули
Документация
Шаблоны
Тесты производительности php
Планы на будущее
Список изменений
Отзывы и пожелания
Переходим на Линукс
Всякое разное
Переходим на Линукс  »  Файловая система Linux

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

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

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

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

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

В dev попадают все накопительные устройства, которые именуются по порядку sda, sdb, sdc итд. Путь к устройству /dev/sda итд. (dev - devices - устройства). Диски именуются в зависимости от типа их подключения: 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: первая цифра - пользователь; вторая - группа; третья - остальные (в смысле не являющиеся пользователями системы, подключённые удалённо итп);

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

  • 0 - всё запрещено
  • 1 - 3 пропускаю, они обычно не используются
  • 4 - только чтение
  • 5 - чтение и выполнение
  • 6 - чтение и запись
  • 7 - всё разрешено

Буквенный:

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 символа. Ещё перед папками ставится флаг в файловом менеджере:

  • - отсутствие флага
  • b - блочное устройство (block device)
  • с - символьное устройство (character device)
  • d - папка (directory)
  • D - дверь (Door)
  • l - символическая ссылка (symbolic link)
  • p - конвейер (pipeline)
  • s - сокет (Unix socket)

т.е на 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 - установка разрешений на чтение и запись для владельца, группы и остальных пользователей.
И в конце путь к файлу или дирректории, которая подвергнется экзекуции..

Страница сгенерирована за 0.005152 секунды
На один процесс веб-сервера: 194 стр/сек.
Всего Apache может отдать: 49 664 стр/сек.
Выделено php памяти: 872.23 KB, real_usage: 2 MB

© Все права защищены 2004 - 2018
Карта сайта
Отслеживать изменения в Твиттере
Политика конфиденциальности

Браузер построил за сек.
Полное время сек.

С момента выгрузки предыдущей страницы из памяти браузера: сек.