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

Если вы когда-нибудь сталкивались с ОС Linux, вы наверняка слышали слово «терминал». Новички обычно воспринимают терминал как что-то страшное и зловещее. Но не все так страшно.

Введение в терминал Linux

Моя бабушка называет любой терминал «терминатором», что добавляет антуража. На самом деле терминал (bash) — это всего лишь командная строка с гораздо более широким набором функций, если сравнивать с Windows. Почти любое действие можно выполнить командой из терминала, но далеко не любое действие можно выполнить через окружения пользователя.

В этом и заключается преимущество терминала Linux — по сути из него можно полностью управлять системой, без необходимости окружения пользователя (графического интерфейса). На самом деле нередко серверы так и работают — черный экран, командная строка и все функции под рукой. В статье команды будут сгруппированы по функциям, а не по частоте использования, это связано с удобством восприятия и понимания.

Статья рассчитана на новичков и написана таким же новичком, в этом нет ничего зазорного — все когда-то начинали с нуля. Любое сообщество существует только до тех пор, пока есть приток новых участников.

Список команд в данной статье не является полным списком команд Linux. Во-первых, команд слишком много, чтобы перечислять их все, во-вторых, новичкам они не нужны, а профессионалы уже помнят их наизусть. Однако, не стоит расстраиваться, если у вас не получается запомнить команды — запоминание приходит с практикой. Чем чаще вы пользуетесь теми или иными командами, тем скорее вы их запомните.

Синтаксис

Рассмотрим синтаксис команды.

more опции файлы

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

  • -d — показывает в конце страницы подсказки, например «Нажмите пробел для продолжения».
  • -f — считает логические строки.
  • -с — текст показывается сверху, при этом стирает предыдущий вывод.
  • -p — очистка терминала, как и параметр «-с». Используется для того, чтобы не было прокрутки и информацию было удобно читать.
  • -s — заменяет пустые строки, которые стоят рядом на одну.
  • -u — убирает подчеркивание.
  • —help — вывести справочную информацию.
  • -v — текущая версия утилиты.
Читайте также:  4 способа для передачи файлов с Android на компьютер

После запуска утилиты, управление осуществляется горячими клавишами.

Чтобы осуществить переход на другую страницу используется клавиша «Пробел». Для смещения на одну строчку вниз — «Enter».

Основные горячие клавиши:

  • h — мини help. Выдаст описание команд.
  • :f — утилита покажет имя текущего файла и количество строк.
  • z или «Пробел» — переход на следующую страницу.
  • = — выводит количество строк на данный момент.
  • q — выход из more.

Примеры

Для первого примера запустим утилиты без параметров, а именно прочитаем лог «», который состоит из двух страниц.

more Итак, это была только первая страница. Перейдем на вторую, нажав клавишу «Пробел».

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

Прочитаем два лога. Один , второй —

more

Как видно из скриншота, первый лог оказался небольшим. Чтобы перейти во второй документ нажмем «Пробел».

Откроем документ, которые лежит в домашнем каталоге /home/ya/dokument.

more /home/ya/dokument

Как видно из скриншота выше, в документе много пустых строк, чтобы убрать повторы, введем команду с опцией «-s».

more -s /home/ya/dokument

Изменение прав на файл в буквенном виде

Для того, чтобы изменить права на файл (папку) в linux в буквенном виде, нужно вспомнить то, что написано выше про ugo (user, group, other), rwx (read, write, execute) и понимать, что + означает «добавить», а — — «отнять». Дальше всё просто, например, нужно добавить права на выполнение владельцу, то есть u+x. Ещё несколько примеров:

  • u+x — разрешить выполнение для владельца;
  • ugo+x — разрешить выполнение для всех;
  • ug+w — разрешить запись для владельца и группы;
  • o-x — запретить выполнение для остальных пользователей;
  • ugo+rwx — разрешить все для всех

В итоге, команда выглядит так:

[email protected]:~# chmod ugo+x filename

Эта команда разрешит исполнение файла с именем filename для всех (владельцу, группе и остальным)

Команда usermod

Команда usermod позволяет вам изменять аспекты учётной записи пользователя с помощью таких действий, как добавление или удаление учётной записи пользователя из групп и изменение их оболочки по умолчанию. Её также можно использовать для непосредственного управления полем GECOS.

Давайте подробнее рассмотрим строку в файле /etc/passwd для учётной записи пользователя mial. Мы будем использовать команду grep, чтобы изолировать эту строку. Это будет работать, потому что имена пользователей должны быть уникальными. Может быть только одна учётная запись пользователя с именем mial.

grep mial /etc/passwd

Отображаются поля в файле /etc/passwd. Двоеточие «:» используется в качестве разделителя полей.

Слева направо представлены следующие поля:

  • Имя пользователя учётной записи.
  • Символ «x», обозначающий пароль для этой учётной записи, хранится в зашифрованном виде в файле /etc/shadow.
  • ID пользователя для учётной записи пользователя mial.
  • ID группы для учётной записи пользователя mial.
  • Поле GECOS.
  • Путь к домашнему каталогу для учётной записи пользователя mial.
  • Оболочка, запускаемая, когда владелец учётной записи mial входит в систему.

Запятая «,» используется в качестве разделителя для значений данных в поле GECOS. Значения в поле GECOS слева направо:

  • ФИО.
  • Номер комнаты (или офиса).
  • Номер рабочего телефона.
  • Номер домашнего телефона.
  • Дополнительная информация.

Обратите внимание, что команда usermod устанавливает для всего поля GECOS новое значение, которое вы вводите. Если все, что вы указываете, — это полное имя человека, тогда в поле GECOS будет указано только полное имя. Это означает, что вы должны предоставить любые существующие значения данных, которые вы хотите сохранить.

Вот пример. Пользователь mial повышен в должности, и он собирается переехать на четвёртый этаж. У него новый номер офиса, новый номер рабочего телефона, и мы добавим его второе имя. Значение его поля «Другое» также изменится. Хотя его домашний номер телефона не изменится, мы должны указать его в строке для usermod.

Нам нужно использовать параметр -c (комментарий), и нам нужно запустить команду с помощью sudo.

Читайте также:  4 рабочих способа обновить iOs на iPhone

sudo usermod -c "Alexey Miloserdov,405,5559654,555-7704,Linux Administrator" mial

Использование grep для сообщения о содержимом файла /etc/passwd для mial показывает нам, что были добавлены новые значения.

grep mial /etc/passwd

Связанная статья: Как в Linux добавить пользователя в группу (или вторичную группу)

Работа с текстом

  1. Ctrl + A / Ctrl + E

    Клавиши быстрого перехода в начало (А) и конец (E) строки.

  2. Ctrl + Shift + C / Ctrl + Shift + V

    Это сочетание клавиш в Linux позволит быстро скопировать (C) и вставить (V) текст в терминале.

  3. more / less

    Две команды для облегчения просмотра больших текстов, не умещающихся на одном экране эмулятора терминала. Т.к. функционально команды одинаковы, но less — новее и поддерживает больше опций, рекомендуется использовать именно её.

  4. head / tail

    Пара дополняющих друг друга команд для просмотра на одном экране начала и конца текста. Команда head выдаёт 10 (по умолчанию) первых строк текста, tail — последних. Число строк в обоих случаях меняется с помощью аргумента -n. Оператор -f позволяет отслеживать на экране изменения в файле. Чтобы лог (журнал) файла отображался в режиме реального времени, ввести команду:

    tail –nf,

    Для отслеживания логов нескольких файлов применяется модификация команды — multitail.

  5. grep

    (Global Regular Expression and Print). Ищет текст по заданному шаблону. Это очень полезно, когда надо проанализировать работу команды, которая сопровождается большим объёмом текстовой информации. Шаблон может заполняться строкой или регулярным выражением. Пример:

    alias старое_название новое_название

  6. sort

    Сортировка текстовой информации по заданным показателям. Дополнительные переменные позволяют:

  • -n ­— сортировать строки текста по числовому значению;
  • du ­— по размеру;
  • -r ­— применять обратную сортировку;
  • -u ­— удалять дубликаты при сортировке.
  1. wc

    (Word Count). Программа для подсчета заданных параметров в тексте. Считает такие показатели, как символы, слова, строки и байты.

  2. diff

    (Difference). Производит построчное сравнение двух текстовых файлов, выводя различия между ними. Алгоритм работы:

    diff файл_№1 файл_№2

    Различия между двумя версиями файлов отмечают такие символы, как:

  • c — изменённые строки;
  • d — удалённые строки;
  • а —новые строки.