Unix / Linux — режим доступа к файлам / доступа

В этой статье мы постарались систематизировать основные команды Linux. Команды, которые вы увидите в этом списке, одинаково верно работают в разных дистрибутивах, включая Debian, Gentoo, Ubuntu, ASPLinux, ALTLinux и т. д. Главная цель статьи — создать список основных команд Linux, что упростит как изучение, так и эксплуатацию этой операционной системы.

Индикаторы разрешений

При использовании команды ls -l она отображает различную информацию, относящуюся к разрешению файла, следующим образом:

$ls -l /home/amrood -rwxr-xr— 1 amrood users 1024 Nov 2 00:10 myfile drwxr-xr— 1 amrood users 1024 Nov 2 00:10 mydir

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

Разрешения разбиты на группы по три, и каждая позиция в группе обозначает конкретное разрешение в следующем порядке: чтение (r), запись (w), выполнение (x) —

  • Первые три символа (2-4) представляют разрешения для владельца файла. Например, -rwxr-xr— означает, что владелец имеет права на чтение (r), запись (w) и выполнение (x).

  • Вторая группа из трех символов (5-7) состоит из разрешений для группы, к которой принадлежит файл. Например, -rwxr-xr— означает, что у группы есть права на чтение (r) и выполнение (x), но нет разрешения на запись.

  • Последняя группа из трех символов (8-10) представляет разрешения для всех остальных. Например, -rwxr-xr— означает, что есть разрешение только на чтение (r) .

Первые три символа (2-4) представляют разрешения для владельца файла. Например, -rwxr-xr— означает, что владелец имеет права на чтение (r), запись (w) и выполнение (x).

Вторая группа из трех символов (5-7) состоит из разрешений для группы, к которой принадлежит файл. Например, -rwxr-xr— означает, что у группы есть права на чтение (r) и выполнение (x), но нет разрешения на запись.

Последняя группа из трех символов (8-10) представляет разрешения для всех остальных. Например, -rwxr-xr— означает, что есть разрешение только на чтение (r) .

Использование

  • chown [-cfhvR] [—dereference] [—reference=rfile] пользователь[:группа] файл…

-c, —changes Подробно описывать действие для каждого файла, владелец которого действительно изменяется. -f, —silent, —quiet Не выдавать сообщения об ошибках для файлов, чей владелец не может быть изменён. -h, —no-dereference Работать с самими символьными ссылками, а не с файлами, на которые они указывают. Данная опция доступна только если имеется системный вызов lchown. -R, —recursive Рекурсивное изменение владельца каталогов и их содержимого. -v, —verbose Подробное описание действия (или отсутствия действия) для каждого файла. —dereference Изменить владельца файла, на который указывает символьная ссылка, вместо самой символьной ссылки. —reference=rfile Изменить владельца файла на того, который является владельцем файла.

Основные команды для работы в командной строке Linux

Команды для службы с файлами и каталогами:

  • pwd – отобразить путь текущего каталога
  • cd – перейти в указанный каталог
  • ls – показать список файлов каталога, с ключом -l показывает дополнительные сведения о файлах.
  • cp – копирование файлов/папок
  • mv – смещение файлов/папок
  • mkdir – создать папку
  • rm – удалить файлы/папки, с ключом -r устраняет и все вложенные папки, с ключом -f — удаляет открытые файлы или каталоги
  • rmdir – удаление порожний папки
  • chmod – изменить права доступа к файлу
  • chown — сменить владельца файла или каталога
  • find — отыскать файл. Задается исходный путь для поиска и шаблон поиска, find / -name .X* — разыскивать от корневого каталога файлы, содержащие в имени символы .X
  • which — отобразить полный путь выполняемого файла, доступного в данной оболочке, например which ifconfig
  • touch — изменить преходящие отметки файла. Удобно использовать для создания пустых файлов – touch myfile основывает пустой файл myfile .

Системные команды

Эти команды обычно используется от имени суперпользователя ( с бригадой sudo ).

Управление действиями

  • ps – отобразить список текущих активных процессов
  • lsof — отобразить список открытых файлов процесса или юзера
  • strace — отобразить список системных вызовов
  • last — отобразить историю перезагрузок и регистраций юзеров в системе
  • kill – послать сигнал процессу, обычно используется для принудительного завершения службы процесса.
  • killall – завершение работы всех процессов, имена которых заданы метеопараметром командной строки
  • top – отображение списка текущих процессов и интерактивное управление ими.
Читайте также:  Эта система не удовлетворяет минимальным требованиям Intel HD Graphics

Сетевые бригады

  • ifconfig – конфигурация сетевых интерфейсов
  • route — таблица маршрутизации
  • ifup / ifdown — подсоединить /выключить сетевой интерфейс
  • ip — просмотр или изменение параметров конфигурации протокола IP
  • netstat — показать состояние сетевых соединений
  • arp, ping, nslookup, traceroute — наиболее часто используемые бригады сетевой диагностики.

Оператор OR (||)

Оператор OR (||) очень похож на оператор «else» в программировании. Вышеуказанный оператор позволяет вам выполнять вторую команду только в случае сбоя при выполнении первой команды, то есть состояние выхода первой команды равно «1» — программа выполнена НЕ успешно».

Например, я хочу выполнить «apt-get update» из учетной записи без полномочий root, и если первая команда не будет выполнена, тогда будет выполнена вторая команда «links ».

sudo apt update || links

В приведенной выше команде, поскольку пользователю не было разрешено обновить систему, это означает, что состояние выхода первой команды равно «1» и, следовательно, выполняется последняя команда «links ».

Что, если первая команда выполнена успешно, со статусом выхода ««? Очевидно! Вторая команда не будет выполнена.

mkdir test || links

Здесь пользователь создает папку «test» в своем домашнем каталоге, где ему это разрешено. Команда выполнена успешно, что дает статус выхода ««, и, следовательно, последняя часть команды не выполняется.

Команды Linux для установки программ

4.1 Просмотр установленных пакетов

RPM-дистрибутивы

# rpm -qa # Отображается список пакетов RPM, установленных в системе.

DEB–дистрибутивы

# dpkg -l |more # Для показа списка пакетов DEB, установленных в системе; # apt-cache search имя пакета # Для поиска в индексах доступного пакета и вывода на экран краткой информации о нужном пакете (это весьма полезная команда, обеспечивающая поиска программ из консоли); # apt-cache showpkg имя пакета # Для отображения полной информации об указанном пакете.

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

RPM-дистрибутивы

# [sudo] rpm -i # Устанавливается RPM-пакет ; # [sudo] dpkg -i *.rpm # Устанавливаются все пакеты в директории; # [sudo] rpm -e pkgname # Удаляется RPM-пакет pkgname.

DEB-дистрибутивы

# [sudo] apt-get update # Обновляется список доступных пакетов из интернета; # [sudo] apt-get upgrade # Обновляется доступная версия установленных пакетов в системе; # [sudo] dpkg -i *.deb # Устанавливаются все пакеты в директории; # [sudo] apt-get install pkgname # Устанавливается DEB-пакет pkgname; # [sudo] apt-get remove pkgname # Удаляется DEB-пакет pkgname.

Файл /etc/group – создание и удаление групп пользователей

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

$ groupadd group_name

где group_name название новой группы. Эта команда создаст в файле /etc/group новую запись

Формат этого файла такой же как и у /etc/passwd. Пример содержимого файла /etc/group: Как видно, каждая строка включает в себя четыре поля:

  1. Имя группы.
  2. Зашифрованный пароль или заполнитель пароля.
  3. Уникальный идентификатор группы.
  4. Список пользователей, входящих в данную группу, содержащий имена пользователей, разделённых запятыми без пробелов.
Файл /etc/group – создание и удаление групп пользователей

Интересным здесь является поле пароля. Пароль группы предназначен для того, чтобы пользователи могли вступить в группу с помощью команды newgrp. Сам же пароль для группы задаётся командой gpasswd, после чего он в зашифрованном виде будет храниться в файле /etc/gshadow. Однако, следует заметить, что пароли для групп используются крайне редко. Системным администраторам следует следить за содержимым файлов /etc/passwd и /etc/group и согласовывать их между собой, поскольку иногда возникают ситуации, когда пользователь указывается членом группы в файле /etc/passwd и в то же время в файле /etc/group такого объявления нет. Следует заметить, что в этом случае пользователь будет считаться членом группы, однако всё же настоятельно рекомендуется согласовывать содержимое обоих файлов.

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

Удалить группу пользователей можно с помощью команды

$groupdel group_name

Эта команда удалит запись из /etc/group.