Как пользоваться командами chown и chmod в Linux?

Для работ по установке и настройке программы 1С Предприятие на сервере с ОС Linux необходимо знать определенный минимум команд и обладать навыками работы в консоле.

Основы

С самого своего появления, UNIX позиционировался как мультипользовательская операционная система. Что соответственно повлекло за собой создание механизмов для защиты и обеспечения авторизорованного доступа к данным. Таким образом появился стандарт DAC (Discretionary Access Control). В соответствии с DAC, пользователь сам решает какие права доступа соответствуют файлам. Но с точки зрения разработки операционных систем эта модель оказалась неудовлетворительной. Из-за чего появились новые модели для организации доступа к файлам, такие как MAC (Mandatory Access Control), ACL (Access Control List), и их реализации, например SELinux, TrustedBSD, Trusted Solaris.

ls Linux — основые ключи и примеры … ls Linux — основые ключи и примеры … Примеры команды ls в Linux Команда sort в Linux Команда sort в Linux ls Linux — основые ключи и примеры: права доступа сортировка ls Linux — основые ключи и примеры: права доступа сортировка Заметки о решаемых задачах АйТишников — Навигация в терминале Linux (pwd, cd, ls)

Введение

В Unix каждому файлу соответствует набор прав доступа, представленный в виде 9-ти битов. Он определяет, какие пользователи имеют право читать файл, записывать в него данные или выполнять его. Права могут изменяться владельцем файла или суперпользователем с помощью команды chmod.

Для каждого файла определяется доступ:

  • владельца (owner);
  • группового владельца (group owner);
  • остальных пользователей (everyone).

Реализация управления доступом осуществляется тремя флагам:

  • чтение — read (r);
  • запись — write (w);
  • выполнение — eXecute (x).

Также у файла присутствует дополнительный флаг, определяющий тип файла, так как в Unix системах всё является файлом, включая папки и устройства.

flag user group other
# rwx rwx rwx

Таблица типа флага.

Флаг Описание
Отсутствие флага
l Символическая ссылка (symbolic link)
d Директория (directory)
b Блочное устройство (block device)
c Символьное устройство (character device)
p Канал, устройство fifo (fifo device)
s Unix сокет (unix domain socket)

Права доступа

Сочетание трех флагов определяет право доступа, например r-x, rw- или rwx. Для удобства записи флаги представляются числами с отличающимся разрядом, что позволяет по их сумме определить право доступа.

  • read = 4
  • write = 2
  • eXecute = 1

Для файлов и каталогов, флаги r, w, x имеют отличный смысл.

Сумма Флаги Маска Права на файл Права на каталог
0 000 — — — отсутствие прав отсутствие прав
1 001 — — x права на выполнение доступ к файлам и их атрибутам
2 010 — w — права на запись отсутствие прав
3 011 — w x права на запись и выполнение все, кроме доступа к именам файлов
4 100 r — — права на чтение только чтение имен файлов
5 101 r — x права на чтение и выполнение чтение имен файлов и доступ файлам и их атрибутам
6 110 r w — права на чтение и запись только чтение имен файлов
7 111 r w x полные права все права

Для полноценного просмотра каталога, необходимы права на чтение каталога и доступ к файлам, а главное к их атрибутам, т.е. минимальные разумные права на каталог = 5 (r-x). Прав 4 (r–) хватит только на просмотр имен файлов, без атрибутов, т.е. не будут известны размер файла, права доступа, владелец. На практике для каталогов используется только три режима: 7 (rwx), 5 (r-x) и 0 (—).

drwxr-xr-x 13 allexserv nogroup 4096 2009-05-31 14:58 phpBB3Права доступа по-умолчанию (umask)

У каждого пользователя есть umask — инвертированная битовая маска накладываемая на набор прав по умолчанию. Значение umask хранится в профиле пользователя. Узнать значение можно командой umask.

$ umask 0002

Итак, инвертированная маска = 7775, режим полного доступа для директорий — 777, для файлов — 666. Таким образом при создании файла результирующий набор бит прав доступа:

  • Для файлов 666 & !umask (7775) = 664
  • Для директорий 777 & !umask (7775) = 775

Почитать:

  • Ubuntu wiki: Права доступа Unix
  • Права
  • umask

Калькуляторы

CHOWN

Chown — от английского change own. И так, как вы знаете в Linux есть пользователи и группы. У каждого пользователя есть свои файлы, созданные или загруженные. Каждый пользователь находится в собственной группе и может быть объеден c другими пользователями в другие группы.

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

ls -l

Если вы хотите поменять или сменить владельца (пользователя) файла тогда вам поможет команда:

sudo chown userName

В данном примере мы присвоили файл пользователю userName.

Если вы хотите поменять только группу, то можно воспользоваться командой chgrp:

sudo chgrp groupName

Для того чтобы не вводить 2 разные команды делают так:

sudo chown userName:groupName

Вначале указывается владелец файла, а после группа:

sudo chown имя_владельца:имя_группы

Если вам нужно поменять в директории владельца и группу, а там множество файлов и папок тогда используйте ключ -R:

sudo chown -R userName:groupName /var/www/site/

Классы доступа

Классы доступа используются для того, чтобы определить какому пользователю назначаются права. Если класс доступа не указан, то по умолчанию используется класс “all”. Классы доступа представлены одной или несколькими из ниже перечисленных букв:

Класс Class Описание
u user владелец файла (папки)
g group пользователи, которые являются членами группы к которой принадлежит файл (папка)
o others пользователи, которые не являются ни владельцем файла (папки), ни входят в группу файла (папки)
a all все три перечисленных выше класса, то же самое что ugo

Основные операции с файлами и каталогами

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

  • ls – просмотр содержимого папки;
  • cd – изменение директории;
  • rm – удаление файла;
  • rmdir – удаление папки;
  • mkdir – создание каталога;
  • mv – перемещение файла;
  • cp – копирование файла;
  • find – поиск файла по параметрам;
  • chmod – изменение разрешений.

Каждая из утилит имеет дополнительные опции, позволяющие организовывать работу по определенным принципам, либо обрабатывать информацию массово, поэтому стоит рассмотреть основные из них подробнее.

Создание

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

Обязательный параметр утилиты – имя новой папки. Можно указать и дополнительные:

  • -m – установка прав доступа (-m 755);
  • -p – создание промежуточных директорий.

Для создания текстового документа можно воспользоваться консольным редактором, например, Namo или Vi. Так, для запуска второго нужно ввести в терминал:

vi

После этого откроется поле для ввода информации.

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

>

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

md5sum > ~/

В результате будет посчитана MD5-сумма и записана в

Но чаще для решения такой задачи используют утилиту touch:

touch

Она создает новый документ. При указании имени, которое уже имеется, для существующего элемента обновится дата изменения.

Копирование

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

cp file new_file

Cp позволяет скопировать целую папку со всеми вложениями. Для этого предназначен параметр -r:

cp -r /etc /etc_new

Перемещение

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

            mv file new_file

Для перемещения нужно указать путь к требуемому каталогу:

            mv file /home/user/tmp/newdir

Утилита имеет несколько опций:

  • -f – принудительная замена при существовании элемента с таким же именем;
  • -i – уведомление, что одноименный документ уже существует;
  • -n – пропуск при возникновении вышеописанной ситуации;
  • -u – замена, если в документе есть изменения;
  • -v – вывод результата выполнения.

Внимание! Для перемещения или копирования необходимо обладать правами записи в конечную директорию.

Переименование

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

Так, для переименования каталога «dir» в «folder» нужно задать следующую команду:

mv ~/dir ~/folder

Linux позволяет выполнить рекурсивное переименование всех вложенных каталогов и документов заданием параметра -R.

Удаление

Для удаления элементов применяют команду rm. Если она запускается из другого каталога, необходимо указать полный путь:

rm /usr/share/

Чтобы удалить папку, команда видоизменяется – rmdir:

rmdir folder1

Для рекурсивного удаления всех вложенных документов и папок указывают параметр -r для rm:

rm -r /home/user/video/

Поиск

Поиск по каталогам в Linux производится с помощью команды find. Его шаблонная запись выглядит следующим образом:

find путь/к/директории опции

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

  • «.» – поиск в текущей папке;
  • «/» – поиск относительно корня хранилища;
  • «~» – поиск в домашней папке.

Опции find дают возможность задать условия поиска:

  • -name – искать по имени;
  • -user – искать среди файлов пользователя;
  • -type – искать по типу, например, d – каталог, f – файл, l – ссылка;
  • -size (-n, +n, n) – искать элементы с размером не более (-), не менее (+) или равное n;
  • -mtime (-n, +n) – искать файлы, модифицированные менее (-) или более (+) чем n дней назад.

информации по командам.

man – получение информации по командах.

Перейти в перед на страницу клавиша «f» назад клавиша «b» остановить выполнение команды клавиша «q».

k – данная опция позволяет найти команду по выполнению ею действий.

f — получение кратких сведений о команде.

г – формирование базы данных команд.

t – вывод формирование информации на печать.

Info – получение информации по командам.

Перемещение по выводимой информации клавиша <PageDown> перемещает на один экран вниз, клавиша <PageUp> на один экран вверх, нажатие клавиши <В> возвращает в начало раздела, а клавиша <Ctrl+L> обновляет экран. Используя пробел или клавиши<Васkзрасе> и <Delete> вы можете просмотреть весь набор infо страниц для конкретной команды.

whereis – определение путей к исполняемым, исходным файлам и страницам справочного руководства.

b – данная опция показывает только исполняемый файл.

m – показывает лишь страницы справочного руководства.

s – получение только сведений об исходных файлах.

what is – описание команд.

Аналог команды «man –f».

aprosos – поиск информации о команде по выполняемым ею действиям.

Аналог команды «man —k».

which – сведения об экземпляре программы для запуска.

Команда «which» сообщает о том, какой вариант команды будет выполнен, если вы зададите ее имя.

Читайте также:  Настраиваем Linux Mint