Флаги командной строки linux

HackWare.ru

Этичный хакинг и тестирование на проникновение, информационная безопасность

Азы работы в командной строке Linux (часть 2)

Опции команд Linux

В предыдущей части мы познакомились с некоторыми командами. В том числе узнали, что у команды ls есть опция -l, которая изменяет поведение команды. На самом деле, практически у всех программ есть опции (их ещё называют флаги, ключи). Схематично типичная команда выглядит так:

Большинство команд используют короткие опции, состоящие из одного символа, перед которым стоит дефис, например, «-l». У некоторых команд имеются длинные опции, состоящие из одного или нескольких слов, перед ними ставится два дефиса. С одной командой могут использоваться несколько опции, разделённых пробелами. Короткие опции можно группировать вместе, в этом случае перед ними ставится один дефис. Например, у команды ls имеется также опция «-t», которая сортирует результаты по времени модификации. Следующая команда:

Полностью идентична следующей:

Примером длинной опции для ls является «—reverse», которая выводит результаты в обратном порядке:

Опции можно сочетать, если они не являются взаимоисключающими.

Справка по программам командной строки Linux

Чтобы узнать опции той или иной программы, наберите:

Будет выведена информации об использовании:

Краткая характеристика функции:

Выдаёт информацию о ФАЙЛАХ (по умолчанию о текущем каталоге).

А также довольно большой список опций. Приведём самые популярные:

-a, --all не скрывать файлы начинающиеся с . -A, --almost-all не выдавать подразумеваемые . и .. -d, --directory выдавать имена каталогов, а не их содержимое -F, --classify добавлять к имени файла индикатор (один из */=>@|) -h, --human-readable c -l и/или -s печатать размеры в удобном для человека виде (например, 1K 234M 2G) -l использовать широкий формат -r, --reverse обратный порядок сортировки -S сортировать по размеру файла, большие сначала -t сортировать по времени изменения, сначала самые новые -X сортировать по расширению в алфавитном порядке -1 перечислять по одному файлу на строке. Символ «\n» не учитывается, если указан -q или -b --help показать эту справку и выйти --version показать информацию о версии и выйти

Как можно видеть, некоторые опции (ключи) имеют только короткие вариант написания, некоторые только длинный, некоторые имеют оба варианта, которые являются полностью взаимозаменяемыми.

У каждой программы свои опции, и своё значение. Пожалуй, универсальной (одинаковой для всех), является только флаг —help.

Как и имена команд, опции чувствительные к регистру, т.е. -s и -S это две разные опции.

Задание для самостоятельного изучения: познакомьтесь с опциями и других рассмотренных ранее программ, т.е. mkdir, cp, mv и rm.

Читайте также:  Java home переменная linux

Зачем сейчас нужна командная строка Linux?

Мы начали знакомиться с командами и их опциями. Может возникнуть резонный вопрос – зачем вообще так мучиться? Посмотреть, какие файлы находятся в директории, скопировать или удалить их можно с лёгкостью в любом файловом менеджере. К чему вообще нужна консоль?

Иногда мне попадались сообщения, что «командная строка это прошлое». Действительно ли работа в консоли является никому ненужным атавизмом? Нет! Очень большое «НЕТ»!

Знание консольных команд и их опций поможет вам достигнуть невероятных результатов автоматизации при работе за компьютером и при взаимодействии друг с другом нескольких команд. Более того, в командной строке Linux вы можете решить многие задачи намного эффективнее, чем используя любой язык программирования. Причём даже обычные пользователи могут извлечь огромную пользую из командной строки.

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

Рассмотрим вполне себе бытовой пример с командой find. Допустим, мне захотелось посмотреть на фотографии со своего дня рождения, сделанные в 2014 году. Как мне их быстро найти в своём плохо структурированном фотоархиве на несколько сотен гигабайт? Можно попытаться начать просматривать самые вероятные пути, где я их мог бы сохранить, попытаться искать по имени файла и т.д. В командной строке Linux мне достаточно сделать поиск по дате создания файла. Для этого мне нужно ввести одну единственную команду!

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

К примеру, мне понадобилось разместить на карте точки тех мест, где были сделаны все (!) фотографии из моего фотоархива. Я взял уже знакомую нам программу find для поиска всех файлов изображений, найденные файлы передал программе jhead (умеет извлекать метаданные из файлов), указал ей передавать результат своей работы в команду grep (отфильтровывает все метаданные, кроме GPS координат), полученные геоданные передаются командам cut и sed, которые «раскидывают» дни, минуты и секунды долготы и широты по переменным, эти переменные передаются в программу bc (пересчитывает координаты в десятичные градусы, которые поддерживаются картой), полученные координаты передаются команде echo (которая выводит результат), ну и, наконец, команда cat объединяет HTML структуру (я воспользовался картами Google) с полученными координатами и формирует конечный HTML файл, который можно открыть в любом браузере. Как я это сделал, можно посмотреть в статье «Массовый поиск геотэгов на сайтах и в локальном хранилище».

Если бы я взялся решать эту задачу на той же самой Java или любом другом языке программирования, то, наверное, так бы и застрял на анализе структуры файлов .jpg и решения проблемы по извлечению EXIF из бинарного файла. А в командной строке Linux (объединив несколько команд в пакетный файл), мне удалось решить эту проблему в течение часа.

Причём в Linux имеются программы для самых разных сфер: для работы с веб-сайтами (скачивание файлов или получение страницы сайта), обработки текста (мощнейший набор инструментов), работы с файловой системой, работы с железом, сетями, огромное количество специализированных консольных программ, можно получить доступ к базам данных – вообще всё, что можно делать в графическом интерфейсе Linux плюс много другого.

Читайте также:  Вывести все процессы линукс

Такие «паровозики» можно составлять из любых команд, вы можете задействовать ваши собственные консольные программы.

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

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

Т.е. просмотр содержимого папки с помощью ls -l это не «пик» возможностей командной строки. Это самое-самое начало знакомства. Изучение командной строки требует и усилий, и времени. Но эти затраты окупятся сторицей, особенно если ваша деятельность связана с администрированием ОС Linux/сети/сервера, пентестингом, программированием.

В следующей части мы продолжим изучить азы командной строки – «кирпичики», из которых можно строить удивительные вещи.

Источник

48. Флаги в unix. Команды просмотра и изменения. Аналоги флагов в других операционных системах.

Флаги действуют одинаково для всех пользователей, не разделяя их на категории. В разных версиях Unix/Linux состав флагов может отличаться.

Флаги делятся на пользовательские и супер-пользовательские. Первые могут убрать как root, так и владелец файла, второй только root.

Наиболее распространены следую­щие флаги:

immutable (i) — файл (директорию) нельзя ни удалить, ни переименовать, ни изменить содержимое;

secure deletion (s) — безопасное удаление файла;

compressed (с) — сжатие файла при его записи на винче­стер и распаковка при чтении;

nodump (d) — файл не надо сохранять в архиве при ре­зервном копировании;

synchronous updates (S), synchronous directory updates (D) — синхронная запись всех изменений в файл и директории на диск;

data journaling (j) — журналирование событий, связанных

undeleted (U) — при удалении файла сохранять его со­держимое на случай его возможного восстановления.

Для изменения разрешений используется команда chmod. При этом разрешение может записываться в восьмеричном виде и может использоваться дополнительный старший разряд. При этом, в четвертом разряде, старший бит будет соответствовать suid, средий sgid, младший sticky.

49. Файлы и права доступа к ним в unix. Классификация пользователей по отношению прав доступа к файлам?, ее недостаток и достоинства.

Все пользователи для файла/каталога делятся на: владелец файла, группа особо допущенных, все остальные. Для каждой группы создается набор прав (rwx). Для группы 3 след права: полный запрет(—), доступ только на чтение(r—) или (rw-)

Для каталогов используется: 1) отсутствие к-л прав 2) нормальные права для посещения каталогов без права изменения в нем 3) полный доступ.

Обычно для файловой директории владелец устанавливает все права гр №2; доверительные права по чтению и выполнению; всем остальным

Для создания секретного каталога можно использовать след комбинации –x и –wx. Т.к. нельзя выбрать пользователя по группе то часто файлы и каталоги имеют одинаковые права на групп и на всех остальных. Для всех остальных можно предоставить некоторый доступ к файлам а группе особо опущенные все права убрать,т.е. она станет группой особо нелюбимых. При доступе к файлу/каталогу проверяется не является ли пользователь владельцем, не входит ли в группу особо допущенных, иначе предоставляются права для всех остальных.

Читайте также:  Статистика пользователей дистрибутивов linux

Биты прав доступа: suid-напра-й на смену пароля поль-я, sqid для групп, если установлен дистрибутив на каталог, то в качестве группы владельца устанавливается группа этого каталога, а не группа создавшего файл пользователя ;stiky-используется для публичных каталогов

50. Виды доступа к файлам в unix. Синтаксис изменения команд прав доступа. Используемые в Unix сочетания битов прав доступа к файлам и директориям.

Для изменения владельца файла служит команда chown ‘»change owner«). С ее помощью можно заодно заменить и группу, хотя для изменения этого атрибута есть специальная соманда chgrp change group«). Команда chown выглядит очень просто

chown «новый владелец»[:новая группа] «имя файла».

Ключ R (recursively) позволяет выполнить операцию и в директориях.

Команда chgrp похожа не предыдущую, только в качестве первого аргумента нужно указать название новой группы для файла

chgrp «новая группа» «имя файла» Для изменения разрешений служит команда chmod ‘»change mode«).

chmod «что сделать» «имя файла» В параметре «что сделать» можно выделить три части Категория юзеров»: и (user) владелец, д [group) группа,о (other) все остальные,а (аll) все три категории; что можно сделать: — + = rwx, s или t

Первой задается категория пользователей (владелец, руппа или «все остальные»). Причем, можно поставить сразу несколько букв, обозначив тем самым сразу несколько катего­рий. Например, до будет означать, что права меняются сразу и цля группы, и для «всех остальных».

Следом указывается «операция» (добавить права(+) или наоборот (-) убрать, или явно задать права (=)). И, наконец, по-:ле «операции» один или несколько битов доступа, которые гребуется изменить.

Команда chmod a=rx,u+w mydir будет означать — «для всех категорий права r-х, а для владель­ца еще и w (право записи)».Команда изменения прав доступа может использовать и абсолютную форму записи. Поскольку, все биты доступа это действительно двоичные биты из одной ячейки, пользователь может указать сразу число в восьмеричном виде, которое должно получится после изменения прав. Например, разреше­ния /wxr-xr-х можно представить в восьмеричном виде как 755. И, следовательно, такие права могут быть выставлены коман­дой chmod 755 myfile. Для просмотра флагов используется команда Isattr. В ней параметр -а означает отображение информации обо всех фай­лах, включая файлы, имена которых начинаются с точки. При использовании параметра d выводятся сведения только о ка­талогах, но не о файлах. Параметр -/ позволяет получить све­дения о файлах в расширенном формате, где каждый атрибут отображается не с помощью буквы, а с помощью слов. Для изменения флагов в Linux используется команда chattr |troot§vikserver root]в chattr (usage: chattr [-RV] [-+=fiacDdijeSu] [-v version] files. Биты прав доступа: suid-напра-й на смену пароля поль-я, sqid для групп,stiky-используется для публичных каталогов

Источник

Оцените статью
Adblock
detector