Команда ls

Команды в bash

Команда в bash — это наименьшая единица кода, которую bash может выполнить. С помощью команд мы сообщаем шеллу, что нам нужно, чтобы он сделал. bash обычно принимает от пользователя одну команду и возвращается к нему после того, как команда будет выполнена. Чтобы немного освоиться в bash, давайте попробуем выполнить несколько простых команд.

Команда echo — возвращает всё, что вы вводите в командной строке:

Пример использования команды echo

Команда date — отображает текущее время и дату:

Пример использования команды date

Команда pwd (сокр. от print working directory») — указывает на текущий рабочий каталог, в котором команды шелла будут искать файлы.

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

Пример использования команды pwd

Команда ls (сокр. от list») — отображает содержимое каталога. Обычно, команда начинает с просмотра нашего домашнего каталога. Это означает, что если мы просто напечатаем , то данная команда выведет содержимое текущего каталога, которым в нашем примере является домашний каталог /home/diego:

Пример использования команды ls

Команда cd (сокр. от change directory») — изменяет текущую директорию на заданную пользователем. Рассмотрим некоторые примеры использования данной команды:

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

Обратите внимание, что мы также можем использовать точку с запятой для записи двух команд в одной строке

Пример объединения двух команд в одной строке

    — вернуться в родительский каталог.

    — вернуться в домашний каталог.

Команда mkdir (сокр. от make directory») — создает новый каталог.

Команда mv (сокр. от move») — перемещает один или несколько файлов/каталогов из одного места в другое (заданное пользователем). Для этого нужно указать, что мы хотим переместить (т.е. источник), и куда мы хотим переместить (т.е. пункт назначения).

В качестве примера я создам новый каталог Ravesli в своей домашней директории и перемещу в него все .txt-файлы (ну как «все», у меня там только один файл — Адреса.txt) из home/diego/Документы/ с помощью двух вышеприведенных команд:

Перемещение файлов с помощью команды mv

Команда touch — создает новые пустые файлы (а также изменяет временные метки в существующих файлах и каталогах). Вот как мы можем создать пустой файл под названием foo.txt в папке Ravesli из домашнего каталога:

Создание файла с помощью команды touch

Команда rm (сокр. от remove») — удаляет файлы/каталоги. По умолчанию, команда НЕ удаляет каталоги, но если используется как внутри заданного каталога, то каждый подкаталог и файл внутри заданного каталога — удаляются.

Давайте удалим ранее созданный файл foo.txt:

Удаление файла с помощью команды rm

Команда rmdir (сокр. от remove directory») — удаляет каталоги.

Давайте удалим созданный ранее каталог home/diego/Ravesli:

Удаление каталогов с помощью команды rmdir

Команда cat (сокр. от «concatenate») — считывает файл и выводит его содержимое. Она может работать с несколькими файлами, объединяя их вывод в единый поток (отсюда и происходит её название). У меня в домашнем каталоге есть папка untitled с файлами С++/Qt-проекта, и ниже я использую команду для просмотра содержимого файла main.cpp из untitled:

Пример использования команды cat

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

Просмотр нескольких файлов с помощью команды cat

Команда man (сокр. от «manual») — отображает справочные страницы, которые являются руководством пользователя, встроенным по умолчанию во многие дистрибутивы Linux и большинство систем Unix. Например, команда отобразит руководство пользователя, а команда отобразит справку по команде .

Отображение справочной информации с помощью команды man

Больше руководств по cli:

  • Оболочка Bash
  • Введение в сценарии оболочки Bash
  • Раковина рыбы
  • Оболочка, наблюдайте за содержимым файла по мере его заполнения
  • Как выйти из Vim
  • Редакторы UNIX
  • Команды файловой системы UNIX
  • Учебник по оболочкам Unix
  • Как установить псевдоним в оболочке macOS или Linux
  • Практическое руководство по домашнему пиву
  • Как исправить ошибку неверного пути к активному разработчику xcrun в macOS
  • Командная строка для начинающих
  • Введение в Linux
  • Как найти процесс, использующий порт
  • Команды Linux: mkdir
  • Команды Linux: cd
  • Команды Linux: pwd
  • Команды Linux: rmdir
  • Команды Linux: ls
  • Команды Linux: mv
  • Команды Linux: cp
  • Команды Linux: меньше
  • Команды Linux: хвост
  • Команды Linux: коснитесь
  • Команды Linux: cat
  • Команды Linux: найти
  • Команды Linux: ln
  • Команды Linux: ps
  • Команды Linux: echo
  • Команды Linux: вверх
  • Команды Linux: kill
  • Команды Linux: killall
  • Команды Linux: псевдоним
  • Команды Linux: вакансии
  • Команды Linux: bg
  • Команды Linux: fg
  • Команды Linux: введите
  • Команды Linux: какие
  • Команды Linux: whoami
  • Команды Linux: кто
  • Команды Linux: очистить
  • Команды Linux: su
  • Команды Linux: sudo
  • Команды Linux: chown
  • Команды Linux: chmod
  • Команды Linux: passwd
  • Команды Linux: открыть
  • Команды Linux: wc
  • Команды Linux: история
  • Команды Linux: du
  • Команды Linux: umask
  • Команды Linux: grep
  • Команды Linux: man
  • Команды Linux: uname
  • Команды Linux: сортировка
  • Команды Linux: uniq
  • Команды Linux: diff
  • Команды Linux: nohup
  • Команды Linux: df
  • Команды Linux: xargs
  • Команды Linux: gzip
  • Команды Linux: gunzip
  • Команды Linux: ping
  • Команды Linux: traceroute
  • Команды Linux: tar
  • Команды Linux: экспорт
  • Команды Linux: crontab
  • Команды Linux: dirname
  • Команды Linux: базовое имя
  • Команды Linux: printenv
  • Команды Linux: env
  • Краткое руководство по редактору ed
  • Краткое руководство по vim
  • Краткое руководство по emacs
  • Краткое руководство по нано
  • Linux, на устройстве не осталось места
  • Как использовать Netcat

chattr Пример

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

Вы можете просмотреть атрибуты файла с помощью команды :

Вывод ниже показывает, что установлен только флаг :

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

Мы используем sudo, потому что только root может изменить неизменяемый флаг.

Подтвердите, что атрибут добавлен:

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

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

Последний оператор, который вы можете использовать, — это оператор . Например, чтобы установить атрибут как единственный атрибут, вы должны запустить:

Обратите внимание, что оператор и флаг заключены в кавычки, чтобы избежать интерпретации оболочки символа

IPTABLES (firewall)

<box 100% round left |>
iptables -t filter -nLiptables -nL — отобразить все цепочки правил iptables -t nat -L — отобразить все цепочки правил в NAT-таблицеiptables -t filter -F или iptables -F — очистить все цепочки правил в filter-таблицеiptables -t nat -F — очистить все цепочки правил в NAT-таблицеiptables -t filter -X — удалить все пользовательские цепочки правил в filter-таблицеiptables -t filter -A INPUT -p tcp –dport telnet -j ACCEPT — позволить входящее подключение telnet’омiptables -t filter -A OUTPUT -p tcp –dport http -j DROP — блокировать исходящие HTTP-соединенияiptables -t filter -A FORWARD -p tcp –dport pop3 -j ACCEPT — позволить «прокидывать» (forward) POP3-соединенияiptables -t filter -A INPUT -j LOG –log-prefix «DROP INPUT» — включить журналирование ядром пакетов, проходящих через цепочку INPUT, и добавлением к сообщению префикса «DROP INPUT»iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE — включить NAT (Network Address Translate) исходящих пакетов на интерфейс eth0. Допустимо при использовании с динамически выделяемыми ip-адресами.iptables -t nat -A PREROUTING -d 192.168.0.1 -p tcp -m tcp –dport 22 -j DNAT –to-destination 10.0.0.2:22 — перенаправление пакетов, адресованных одному хосту, на другой хост

</box>

Вариант 1 — Изменение прав доступа с помощью Файлового Менеджера

Для начала вам необходимо войти в Файловый Менеджер.

  1. Войдите в панель управления Hostinger и нажмите на иконку
    Файловый Менеджер
    в разделе
    Файлы
    .
  1. Далее кликните правой кнопкой мыши на файле или папке для которой вам необходимо поменять права доступа и выберите опцию
    Разрешения
    .

  1. В открывшемся окне установите необходимые права и нажмите
    Изменить
    .

При включении опции
Рекурсивно
такие же права доступа будут установлены для всех файлов и папок внутри нее.

Слева в графе
По-умолчанию
показываются стандартные права доступа для папки.

Справа в графе
Изменения
показываются права доступа которые будут установлены после изменения.

Значения прав представлены как в буквенном, так и числовом формате.

drwxr

xr

x
(755
)

  • d – означает тип файла, то есть каталог.
  • rwx – все права доступа для владельца.
  • r-x – права на чтение и выполнение для группы владельца.
  • r-x – такие же права для всех остальных.

Синтаксис и опции chattr

Утилиты chattr и lsattr входят в пакет e2fsprogs и предустановлены во всех современных дистрибутивах. Базовый синтаксис chattr выглядит следующим образом:

$ chattr опции файлы

Вот основные опции утилиты, которые вы можете использовать:

  • -R — рекурсивная обработка каталога;
  • -V — максимально подробный вывод;
  • -f — игнорировать сообщения об ошибках;
  • -v — вывести версию.

Оператор может принимать значения:

  • + — включить выбранные атрибуты;
  • — — отключить выбранные атрибуты;
  • = — оставить значение атрибута таким, каким оно было у файла.

Вот некоторые доступные атрибуты:

  • a — файл может быть открыт только в режиме добавления;
  • A — не обновлять время перезаписи;
  • c — автоматически сжимать при записи на диск;
  • C — отключить копирование при записи;
  • D — работает только для папки, когда установлен, все изменения синхронно записываются на диск сразу же;
  • e — использовать extent’ы блоков для хранения файла;
  • i — сделать неизменяемым;
  • j — все данные перед записью в файл будут записаны в журнал;
  • s — безопасное удаление с последующей перезаписью нулями;
  • S — синхронное обновление, изменения файлов с этим атрибутом будут сразу же записаны на диск;
  • t — файлы с этим атрибутом не будут хранится в отдельных блоках;
  • u — содержимое файлов с этим атрибутом не будет удалено при удалении самого файла и потом может быть восстановлено.

А теперь давайте перейдем к примерам работы с утилитой chattr и сделаем файл неизменяемым.

Microsoft Windows networks(SAMBA)

<box 100% round left|>
nbtscan ip_addrnmblookup -A ip_addr — разрешить netbios-имя nbtscan не во всех системах ставится по-умолчанию, возможно, придётся доустанавливать вручную. nmblookup включен в пакет samba.smbclient -L ip_addr/hostname — отобразить ресурсы, предоставленные в общий доступ на windows-машинеsmbget -Rr smb://ip_addr/share — подобно wget может получить файлы с windows-машин через smb-протоколmount -t smbfs -o username=user,password=pass //winclient/share /mnt/share — смонтировать smb-ресурс, предоставленный на windows-машине, в локальную файловую систему

</box>

Специальные права доступа к файлам в Linux

Для того, чтобы позволить обычным пользователям выполнять программы от имени суперпользователя без знания его пароля была придумана такая вещь, как SUID и SGID биты. Рассмотрим эти полномочия подробнее.

  • SUID
    — если этот бит установлен, то при выполнении программы, id пользователя, от которого она запущена заменяется на id владельца файла. Фактически, это позволяет обычным пользователям запускать программы от имени суперпользователя;
  • SGID
    — этот флаг работает аналогичным образом, только разница в том, что пользователь считается членом группы, с которой связан файл, а не групп, к которым он действительно принадлежит. Если SGID флаг установлен на каталог, все файлы, созданные в нем, будут связаны с группой каталога, а не пользователя. Такое поведение используется для организации общих папок;
  • Sticky-bit
    — этот бит тоже используется для создания общих папок. Если он установлен, то пользователи могут только создавать, читать и выполнять файлы, но не могут удалять файлы, принадлежащие другим пользователям.

Теперь давайте рассмотрим как посмотреть и изменить права на файлы в linux.

10 Простых Примеров:

1. Добавить всем права на чтение файла:

$ chmod a+r file

2. Забрать права на исполнение файла у всех:

$ chmod a-x file

3. Добавить всем права на чтение и запись:

$ chmod a+rw file

4. Установить права на чтение и запись для владельца и забрать права у всех остальных:

$ chmod u=rw,go= file

5. Для директории и всего ее содержимого добавить права на запись для владельца, и забрать права на запись для всех остальных:

$ chmod -R u+w,go-w directory

6. Забрать у всех все права:

$ chmod file

7. Дать всем права на права на чтение, запись и выполнение файла:

$ chmod 777 file

8. Задать права на чтение и запись без права на исполнение для владельца и группы, а все остальным дать право только на чтение:

$ chmod 664 file

9. Назначить права ‘-rwx’ для владельцев директорий, добавить права ‘rw’ для владельцев файлов, ‘—‘ для всех остальных:

$ chmod -R u+rwX,g-rwx,o-rwx directory

10. Забрать у всех права на исполнение файлов в директории и поддиректориях, но в то же время, разрешить всем просматривать содержимое директорий.

Особенности использования команды ls

Когда команда ls обрабатывает не «обычные» файлы, а специальные файлы устройств (хотя это тоже самые обычные файлы). То для них она выводит несколько иную информацию:

$ ls -l /dev/tty0
cr--w---- 1 root tty 4,0 фев 28 14:27 /dev/tty0

Вместо размера файла выводится старший и младший номера (4, 0) устройства tty0 – это первая виртуальная консоль, управляемая драйвером устройства 4, который является драйвером терминала.

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

$ ls -li ‘Рабочий стол’
3276880 ‘Рабочий стол’

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

$ find точка_монтирования -xdev -inum индексный_дескриптор

Данный пример — лишь одно из важных практических применений команды ls. Следует также отметить некоторые особенно полезные опции команды ls:

-a – отображает все файлы и каталоги. Включая скрытые (имена которых начинаются с точки), а также «всевдокаталоги» с именами «.» и «. .»;

-t – отображает результаты в отсортированном (по времени изменения файлов) порядке. А опция -tr то же, но в обратном порядке;

-F – выделяет каталоги и исполняемые файлы в общем выводе;

-h – отображает размеры файлов и каталогов в «человекопонятных» единицах, к примеру 4k или 10M;

-R – рекурсивный вывод, выполнение которого прерывается нажатием сочетания клавиш .

Иногда возникает путаница в использовании опций -l и —d. Дело в том, что опция -d предназначена для дополнения работы опции -l (которая выводит подробную информацию об атрибутах). Когда необходимо получить атрибуты именно конкретного каталога:

$ ls -ld ~/htdocs
drwxrwxr-x 12 john john 4096 фев 11 12:56 /home/john/htdocs

Разрешения для файлов Linux

Прежде чем идти дальше, давайте объясним базовую модель разрешений Linux.

В Linux каждый файл связан с владельцем и группой и имеет права доступа для трех разных классов пользователей:

  • Владелец файла.
  • Члены группы.
  • Остальные (все остальные).

Владение файлом можно изменить с помощью команд и .

К каждому классу применяются три типа прав доступа к файлам:

  • Разрешение на чтение.
  • Разрешение на запись.
  • Разрешение на выполнение.

Эта концепция позволяет указать, каким пользователям разрешено читать файл, записывать в файл или выполнять файл.

Права доступа к файлам можно просмотреть с помощью команды :

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

Следующие девять символов представляют права доступа к файлу, три тройки по три символа каждая. Первый триплет показывает разрешения владельца, второй — разрешения группы, а последний триплет — разрешения для всех остальных. Разрешения могут иметь разное значение в зависимости от типа файла.

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

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

Влияние разрешений на файлы

Разрешение символ Значение в файле
Читать Файл не читается. Вы не можете просмотреть содержимое файла.
Файл доступен для чтения.
Написать Файл нельзя изменить или модифицировать.
Файл можно изменить или модифицировать.
Выполнить Файл не может быть выполнен.
Файл можно запустить.
Если он найден в триплете, он устанавливает бит . Если он находится в тройке , он устанавливает бит . Это также означает, что установлен флаг . Когда для исполняемого файла флаги или , файл выполняется с правами владельца и / или группы.
То же, что и но флаг не установлен. Этот флаг редко используется для файлов.
Если он обнаружен в триплетах, он устанавливает бит . Это также означает, что установлен флаг . Этот флаг бесполезен для файлов.
То же, что и но флаг не установлен. Этот флаг бесполезен для файлов.

Влияние разрешений на каталоги (папки)

В Linux каталоги — это особые типы файлов, которые содержат другие файлы и каталоги.

Разрешение символ Значение в каталоге
Читать Содержимое каталога не отображается.
Можно показать содержимое каталога. (например, вы можете перечислить файлы внутри каталога с помощью .)
Написать Содержимое каталога нельзя изменить.
Содержимое каталога может быть изменено. (например, вы можете создавать новые файлы , удалять файлы и т. д.)
Выполнить Каталог не может быть изменен на.
По каталогу можно перемещаться с помощью .
Если он находится в тройке , он устанавливает бит . Если он находится в триплете, он устанавливает бит . Это также означает, что установлен флаг . Когда для каталога флаг новые файлы, созданные в нем, наследуют идентификатор группы каталогов (GID) вместо идентификатора основной группы пользователя, создавшего файл. не влияет на каталоги.
То же, что и но флаг не установлен. Этот флаг бесполезен для каталогов.
Если он обнаружен в триплетах, он устанавливает бит . Это также означает, что установлен флаг . Когда для каталога установлен бит закрепления, только владелец файла, владелец каталога или административный пользователь может удалять или переименовывать файлы в каталоге.
То же, что и но флаг не установлен. Этот флаг бесполезен для каталогов.

Разрешения

Я кратко упоминал о разрешениях ранее, когда представлялкоманда.

Странная строка, которую вы видите в каждой строке файла, например, определяет права доступа к файлу или папке.

Давайте рассмотрим это.

Первая буква указывает на тип файла:

  • означает, что это нормальный файл
  • означает, что это каталог
  • означает, что это ссылка

Тогда у вас есть 3 набора значений:

  • Первый набор представляет разрешениявладелецфайла
  • Второй набор представляет собой разрешения членовгруппафайл связан с
  • Третий набор представляет разрешениявсе остальные

Эти наборы состоят из 3 значений.означает, что конкретныйперсонаимеет доступ на чтение, запись и выполнение. Все, что удаляется, заменяется на, который позволяет формировать различные комбинации значений и относительных разрешений:,,, и так далее.

Вы можете изменить разрешения, предоставленные файлу, используякоманда.

можно использовать 2 способами. Первый использует символьные аргументы, второй — числовые аргументы. Начнем сначала с символов, что более интуитивно понятно.

Вы печатаетеза которым следует пробел и буква:

  • означаетвсе
  • означаетПользователь
  • означаетгруппа
  • означаетдругие

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

За всем следует имя файла или папки.

Вот некоторые примеры:

Вы можете применить одни и те же разрешения к нескольким персонажам, добавив несколько букв перед/:

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

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

  • если есть разрешение на исполнение
  • если есть разрешение на запись
  • если есть разрешение на чтение

Это дает нам 4 комбинации:

  • нет разрешений
  • может выполнить
  • могу писать
  • может писать, выполнять
  • может читать
  • может читать, выполнять
  • может читать, писать
  • может читать, писать и выполнять

Мы используем их парами по 3, чтобы установить разрешения для всех 3 групп вместе:

Как правильно интерпретировать вывод команды ls?

Первое, что может ввести в заблуждение при изучении вывода команды ls -l, так это первая секция данных. Состоящая из набора десяти символов и показывающая режимы доступа к файлу. Для вышеприведённого примера первый символ «-» указывает, что это файл. А в случае с каталогом вместо него выводится символ «d». Следующие девять символов представляют собой три группы, отражающих режимы доступа к файлу. Первая группа (первые три символа «rwx») показывают, какие права доступа выставлены на данный файл для его владельца. Следующая группа символов — «r-x» — показывает режим доступа для группы, к которой принадлежит файл. Ну а третья («r-x») — права доступа для всех остальных пользователей.

В полях, отображающих владельца и группу вместо символьных имён могут быть также и цифровые идентификаторы. Такое бывает, когда соответствующие записи были удалены из файлов /etc/passwd или /etc/group. Также это может быть признаком возникновения ошибки в базах данных LDAP или NIS. Конечно, если таковые используются.

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

Заключение

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

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

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

В этой статье мы попытаемся разобраться в том как работают права файлов в linux, а также как их изменять и устанавливать.

Рейтинг
( 1 оценка, среднее 5 из 5 )
Понравилась статья? Поделиться с друзьями:
Мой редактор ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: