chmod — команда изменения прав файлов и папок в linux

И для тех кто всё-таки принял волевое решение, небольшой гайд по основам работы с файлами и каталогами.

Файловый менеджер Vifm будет интересен почитателям текстового редактора Vim. Vifm является консольным командером с характерной для Vim привязкой клавиш. Vifm покажется довольно сложным пользователям, не знакомым с Vim, и вам придется потратить некоторое время, чтобы к нему привыкнуть. Однако в документации по Vifm приведен список сочетаний клавиш, что позволит вам начать знакомство с этим менеджером файлов.

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

Для тех, кто никогда не пользовался Vim, Vifm позволяет вырезать с помощью горячих клавиш dd, вставлять с помощью клавишы p и переименовывать файлы с помощью cw. Клавиши перемещения стандартны — hjkl, с помощью клавиш h и l открывается дерево каталога, упорядоченное по возрастанию и убыванию соответственно.

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

Для того, чтобы установить Vifm в операционной среде Linux, в консоли нужно выполнить следующие команды.

На Ubuntu/Debian:

sudo apt-get install vifm vim

На RHEL/CentOS:

sudo yum install vifm

На Arch Linux:

sudo pacman -S vifmДополнение к статье

Нашел еще несколько файловых менеджеров, доступных из терминала Linux, поэтому дополняю этот список.

Книги

  • Безопасный Android: защищаем свои деньги и данные от кражи Рассмотрены различные способы обеспечения безопасности Android-устройств: шифрование персональной информации, хранящейся на устройстве, шифрование передаваемых данных, VPN-соединения, анонимизация трафика
  • Разработка Linux-приложений Рассмотрены основные аспекты программирования в Linux: от программирования на языках командных оболочек bash и tcsh до создания приложений с графическим интерфейсом с использованием библиотек Tk, glib, GTK+ и средства dialog, Подробно дано программир
  • Руководство по командам и shell-программированию в Linux Рассмотрены команды Linux, основы работы в командной строке, а также настройка системы с помощью программ, обладающих только текстовым интерфейсом. Работа с системой выполняется только в режиме консоли, что требует определенной квалификации пользоват
  • Программирование для Android 5. Самоучитель Рассмотрены все основные аспекты создания приложений для платформы Android 5 (API 21): установка необходимого программного обеспечения (JDK, Eclipse и Android SDK), использование эмулятора Android, создание интерфейса пользователя и т.д.
  • Linux. От новичка к профессионалу 4 Даны ответы на все вопросы, возникающие при работе с Linux: от установки и настройки этой ОС до настройки сервера на базе Linux. Материал книги максимально охватывает все сферы применения Linux: от запуска Windows-игр под управлением Linux до настрой

Справочная система Linux

Для удобства организации и хранения справочной документации все страницы справочных руководств в Linux сгруппированы по тематическим разделам. В зависимости от дистрибутива одни и те же разделы могут содержать разный набор руководств. Допускается также деление разделов на подразделы. Следующая таблица демонстрирует состав основных разделов справочных руководств для некоторых систем:

Linux Solaris HP-UX Содержание
1 1 1 Пользовательские приложения и команды
2 2 2 Коды ошибок системного ядра, а также описание системных вызовов
3 3 3 Описание функций системных библиотек
4 7 7 Сетевые протоколы, драйверы устройств
5 4 4 Описание стандартных форматов файлов
6 6 Информация о демонстрационных программах и играх
7 5 5 Различного рода документация
8 1m 1m Команды системного администрирования
9 9 Спецификация системного ядра и внутренних интерфейсов
9 Основная информация и описание, касающееся системы HP-UX

По-умолчанию, без указания раздела команда man практически всегда находит требуемую информацию, поэтому на первый взгляд может показаться, что структура разделов не имеет особого значения. Но часты случаи, когда одна и та же искомая фраза содержится в разных контекстах и вот тут и полезно разбиение системной справки на разделы. К примеру, запрашиваемая фраза «passwd» подразумевает как команду, так и конфигурационных файл. Таким образом справочную информацию содержат (согласно вышеприведённой таблице) разделы 1, 4 и 5.

Стоит отметить, что в настоящее время разделы 8 всё чаще освобождаются и используются как резервные для последующего наполнения, а ранее содержащаяся в данных разделах информация (команды системного администрирования) перемещена (в большинстве дистрибутивов) в раздел 1. Также освобождаются и разделы 6.

Что такое Linux?

Linux — это ядро операционной системы. Возможно, вы слышали о UNIX. Ну, так вот, Linux — это клон UNIX.  Он был создан Линусом Торвальдсом из Scratch. Linux является бесплатным и имеет открытый исходный код — вы можете просто изменить что-либо в Linux и распространять это под своим названием! Существует несколько сборок на основе Linux, обычно называемых дистрибутивами.

  • Ubuntu Linux
  • Red Hat Enterprise Linux
  • Linux Mint
  • Debian
  • Fedora

Linux в основном используется на серверах. Около 90% интернета работает на серверах Linux и вот почему.

Linux бесплатный,а основной проблемой использования Windows-серверов является их стоимость. Linux быстрый: ОС, которая работает примерно на 80% смартфонов в мире, Android, также сделана из ядра Linux. Linux безопасный, а большинство вирусов в мире работают на Windows.  

Как использовать chown

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

Выражения команды chown имеют следующую форму:

chown [OPTIONS] USER[:GROUP] FILE(s)

USER — это имя пользователя или идентификатор пользователя (UID) нового владельца. GROUP — это имя новой группы или идентификатор группы (GID). FILE(s) — это имя одного или нескольких файлов, каталогов или ссылок. Цифровые идентификаторы должны начинаться с символа + .

  • USER — Если указан только пользователь, указанный пользователь станет владельцем данных файлов, принадлежность группы не изменится.
  • USER: — Если после имени пользователя ставится двоеточие : и имя группы не указано, пользователь становится владельцем файлов, а права собственности группы файлов изменяются на группу входа пользователя.
  • USER:GROUP — Если указаны и пользователь, и группа (без пробелов между ними), право собственности пользователя на файлы изменяется на данного пользователя, а право собственности на группу изменяется на данную группу.
  • :GROUP — Если пользователь не указан, а группа имеет префикс двоеточия : то для данной группы изменяется только групповое владение файлами.
  • : Если указано только двоеточие : без указания пользователя и группы, никаких изменений не производится.

По умолчанию в случае успеха chown не производит никакого вывода и возвращает ноль.

Используйте команду ls -l чтобы узнать, кому принадлежит файл или к какой группе принадлежит файл:

ls -l

-rw-r—r— 12 linuxize users Apr 8 20:51 |[-][-][-]- [——] [—] | | | +————> Group +——————-> Owner

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

Как устроен справочник в Linux?

Чтобы хранить всю информацию о возможностях системы было удобно, ее группируют по различным тематикам, данные в них могут отличаться друг от друга, все зависит от того, какой дистрибутив у вас установлен. Также возможно деление информации в мануалах на подразделы. Ниже вы сможете узнать, где можно найти всю системную информацию в Linux:

  • Под цифрой 1 скрываются программы для обычных пользователей;
  • Под цифрой 2 можно найти данные о кодах ошибок основного ядра и описание вызовов системы;
  • Под цифрой 3 можно увидеть возможности библиотек системы;
  • Под цифрой 4 в Linux можно увидеть описание сетевых протоколов и драйверов устройства;
  • Пол цифрой 5 в Linux находятся описания файлов, которые поддерживаются системой;
  • Под цифрой 6 в Linux находятся данные о примерах игр и программ в системе, HP-UX такой информации не имеет;
  • Под цифрой 7 в Linux находится различная документация;
  • Под цифрой 8 в Linux описаны возможности для системных администраторов и команды для них;
  • Под цифрой 9 описаны системные ядра и внутренние интерфейсы.

Изначально система настроена так, что указывая раздел с помощью man, почти всегда пользователь найдет информацию быстро и может показаться, что делить мануал на тематики бессмысленно, однако это не так. Ведь некоторые команды в UNIX-системах могут использоваться сразу в 2 местах в зависимости от контекста. Пример:

  • Есть фраза «passwd» и она имеет 2 значения, как команда и как файл системы;

Информацию о справочных данных вышеприведенные системы содержат в себе в разделах 1, 4 и 5.

Нельзя забывать и про то, что многие дистрибутивы в своих последних версиях переносят команды из раздела 8 в Linux в группу к остальным системным командам. А освободившийся раздел используется как резерв для информации о будущих обновлениях. Помимо этого все меньше информации становится в разделе 6.

Как читать интерактивную справку?

Чтобы прочитать нужную вам информацию в терминале, необходимо ввести в него поисковой запрос, который выглядит так:

man [-опции] номер раздела номер заголовка

Чтобы пользователь смог прочитать информацию, man использует такие утилиты как less и more, они дают возможность читать мануал с комфортом, помимо этого используются и другие возможности для вывода текста. Чтобы мануал был разбит на страницы, утилита использует переменную среды PAGER.

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

Основные опции:

-a — показать подряд все справочные страницы.

-f — выдает разделы, где присутствует команда.

-k — искать упоминание в тематиках.

Чтобы найти только раздел без указания заголовка нужно ввести, например, следующую команду:

man mc

Данная команда покажет все системные вызовы для «GNU Midnight Commander».

А для нахождения и раздела, и заголовка необходимо ввести название команды и номер раздела:

man 2 sync

Как устроен справочник в Linux?

Однако не во всех команд есть раздел 2, например если написать «man 2 mc», то будет ошибка.

Чтобы такого не было у man есть опция «-f». Она выдаст разделы, в которых присутствует команда.

man -f mc

Как видно из скриншота, утилита mc присутствует только в 1 разделе.

man 1 mc

Если пользователю нужны данные о том, в каких тематиках можно найти информацию о «mc», то к запросу man следует приписать аргумент  –k. Например, если ввести:

man -k mc

то на экране появится следующая информация:

Результат выполнения man -k mc

После запроса пользователь получит все страницы, на которых упоминается «mc», в них указан номер тематики или подраздела, а также ключевое слово.

Где хранятся мануалы?

Чтобы узнать, где именно в системе Linux находятся мануалы, которые по совместительству являются и входными данными, работающими с командой nroff, следует ввести команду manpath. После ее введения появится ответ системы: /usr/local/man:/usr/local/share/man:/usr/share/man

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

Все 3 расположения разделены между собой знаком «:».

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

export MANPATH=/home/share/localman:/usr/share/man

Изначально в системах на основе Linux справочники хранятся в /usr/share/man. Команда «man» может работать и с кэшем страниц, однако для этого такие каталоги как /var/cache/man и /usr/share/man должны быть открыты для записей в них, что ведет к нарушениям в безопасности.

Для экономии пространства на диске мануалы находятся в сжатом виде, им это обеспечивает такая утилита как gzip.

Несмотря на то, что страницы сжаты, команда «man» открывает их очень быстро, ведь она способна на быструю разархивацию.

Практические аспекты аудита защищенности

Если посмотреть глазами аудитора, то подход к тестированию можно разделить на два типа.

Первый — это соответствие так называемым compliance-требованиям, здесь проверяется наличие обязательных элементов защиты, прописанных в каком-либо международном стандарте или «best practice». Классический пример — требования PCI DSS для платежных ИТ-систем, SOX404, NIST-800 series, MITRE.

Второй — это сугубо рациональный подход, основанный на вопросе «А что еще можно сделать, чтобы усилить защищенность?». Тут нет обязательных требований — только твои знания, светлая голова и умелые руки. К примеру, это обновление версии ядра и/или пакетов приложений, включение шифрования томов, форсирование SELinux, настройка файрвола iptables.

Все, что относится ко второму подходу, принято называть специальным термином Hardening, что еще можно определить как «действия, направленные на усиление уровня исходной защищенности операционной системы (или программы) преимущественно штатными средствами».

Соответствие compliance-требованиям, как правило, проверяют при подготовке к прохождению обязательного аудита типа PCI DSS или другого сертификационного аудита. Мы же больше уделим внимание Hardening-составляющей. Все крупные разработчики предлагают для своих продуктов Hardening Guidelines — руководства, содержащие советы и рекомендации, как усилить защищенность, учитывая штатные механизмы безопасности и специфику софта. Так, подобные руководства есть у Red Hat, Debian, Oracle, Cisco.

INFO

Hardening — это термин из мира ИБ, который обозначает процесс обеспечения безопасности системы (программы) за счет снижения ее уязвимости и, как правило, с использованием только штатных утилит или механизмов защиты.

Кстати, на Хакере уже была схожая статья про настройку опций Hardening, но тогда речь шла именно о настройке. Мы же сначала почекаем нашу систему с помощью специальных утилит, то есть проведем аудит ИБ, оценим текущий уровень защиты, а потом уже накрутим туда security option, если необходимо. Ну или еще как вариант: если сервер уже оттюнингован с точки зрения безопасности, наши тулзы смогут это проверить и, возможно, подсказать, что же можно сделать еще.

Установка, удаление и обновление пакетов

Для установки программ в Linux используются менеджеры пакетов. Они разнятся от дистрибутива к дистрибутиву, поэтому команды для управления ими тоже отличаются. Рассмотрим наиболее популярные.

Debian/Ubuntu

  • sudo apt-get install название пакета — устанавливает программу на выбор. Главное знать, как она называется.
  • sudo apt remove название пакета — стирает с жесткого диска имеющийся в системе пакет.
  • sudo apt-get update — обновляет информацию о пакетах, имеющихся в системе, и тех, что хранятся в подключенных репозиториях.
  • sudo apt-upgrade — обновляет установленные пакеты до самых свежих версий, доступных в подключенных репозиториях.

Red Hat Linux/CentOS

  • sudo dnf install название пакета — устанавливает программу на выбор.
  • sudo dnf upgrade — обновляет установленные пакеты до самых свежих версий.
  • sudo dnf remove название пакета — стирает с жесткого диска имеющийся в системе пакет.

Опции команды chmod в linux

Собственно, на этом можно было бы закончить, но есть ещё опции, которые можно использовать при работе команды chmod:

  • -c — выводить информацию обо всех изменениях;
  • -f — не выводить сообщения об ошибках;
  • -v — выводить максимум информации;
  • —reference — взять маску прав из указанного файла;
  • -R — включить поддержку рекурсии;
  • —help — отобразить подсказку/помощь;
  • —version — вывести версию утилиты.

На мой взгляд, самая востребованная опция — это опция рекурсии -R. То есть когда нужно изменить права не только у папки, но и у всех вложенных неё файлах и папках.

[email protected]:~# chmod -R 0755 foldername

Выставит права 755 на папку foldername и всё, что находится в ней.

Плюсы и минусы ОС Linux

Плюсы

  • Полностью бесплатна. Linux является бесплатной операционной системой вместе с программами.
  • Отсутствие вирусов.
  • Большое число графических оболочек (GNOME, KDE, LXDE и т.д.)
  • Хорошая защита от взломов
  • Стабильная работа
  • Хорошее быстродействие, поскольку работа ОС Linux «съедает» мало ресурсов
  • Широкий набор программ для работы

Минусы

  • Мало кто знаком с Линуксом, поэтому обычно приходится разбираться со всеми проблемами самостоятельно
  • Большое число дистрибутивов ставит пользователя перед выбором. Такой большой выбор играет против популяризации.
  • Отсутствие всем привычных нам программ: Microsoft Word, Excel, Photoshop и т.д.
  • Далеко не все компьютерные игры запустятся под Linux (по-крайней мере не на всех дистрибутивах)
  • Частые обновления
  • Плохая переносимость программ с одной версии ОС на другую
  • Без интернета практически невозможно ничего установить, поскольку большинство пакетов взаимозависимые и требуют последних версий. Получается, что чтобы установить какой-то пакет возможно будет необходимо обновить 20 других пакетов до актуальной версии. Если это делать без интернета, то потребуется много времени на закачку каждого пакета.
Читайте также:  Как с FTP скачать папку?