Работа с файлами и директориями в Linux

Узнать расположение файла

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

ls -lF $(which lsb_release)

-rwxr-xr-x. 1 root root 15929 Mar 27 2015 /usr/bin/lsb_release*

Опция -F означает показать тип файлов. Поэтому нам удалось увидеть * после lsb_release. * означает, что файл
исполняемый.

Чтобы узнать откуда взялся файл можно воспользоваться командой rpm с опциями
q (query) и f (file)

rpm -qf $(which lsb_release)

redhat-lsb-core-4.1-27.el7.centos.1.x86_64

Чтобы скопировать файл в интерактивном режиме воспользуйтесь командой cp с опцией i (interactive)

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

cp -i /etc/hosts .

cp -i /etc/hosts .

cp: overwrite ‘./hosts’?

Чтобы создать директорию сразу же с поддиректорией внутри воспользуйтесь командлой
mkdir с опцией p (parent)

mkdir -p sites/heiheiru

ls -l sites

total 0

drwxrwxr-x. 2 andrei andrei 6 Nov 19 13:40 heiheiru

Команда ls linux

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

$ ls опции /путь/к/папке

Опции команды указывают как именно и в каком виде нужно выводить информацию на экран, а путь, это та папка, которую нужно отобразить. Рассмотрим основные опции утилиты:

  • — a — отображать все файлы, включая скрытые, это те, перед именем которых стоит точка;
  • — A — не отображать ссылку на текущую папку и корневую папку . и …;
  • — author — выводить создателя файла в режиме подробного списка;
  • — b — выводить Escape последовательности вместо непечатаемых символов;
  • — block-size — выводить размер каталога или файла в определенной единице измерения, например, мегабайтах, гигабайтах или килобайтах;
  • — B — не выводить резервные копии, их имена начинаются с ~;
  • — c — сортировать файлы по времени модификации или создания, сначала будут выведены новые файлы;
  • — C — выводить колонками;
  • — color — включить цветной режим вывода, автоматически активирована во многих дистрибутивах;
  • — d — выводить только директории, без их содержимого, полезно при рекурсивном выводе;
  • — D — использовать режим вывода, совместимый с Emacs;
  • — f — не сортировать;
  • — F — показывать тип объекта, к каждому объекту будет добавлен один из специализированных символов */=>@|;
  • — full-time — показывать подробную информацию, плюс вся информация о времени в формате ISO;
  • — g — показывать подробную информацию, но кроме владельца файла;
  • — group-directories-first — сначала отображать директории, а уже потом файлы;
  • — G — не выводить имена групп;
  • -h — выводить размеры папок в удобном для чтения формате;
  • — H — открывать символические ссылки при рекурсивном использовании;
  • — hide — не отображать файлы, которые начинаются с указанного символа;
  • -i — отображать номер индекса inode, в которой хранится этот файл;
  • — l — выводить подробный список, в котором будет отображаться владелец, группа, дата создания, размер и другие параметры;
  • — L — для символических ссылок отображать информацию о файле, на который они ссылаются;
  • — m — разделять элементы списка запятой;
  • — n — выводить UID и GID вместо имени и группы пользователя;
  • — N — выводить имена как есть, не обрабатывать контролирующие последовательности;
  • — Q — брать имена папок и файлов в кавычки;
  • — r — обратный порядок сортировки;
  • — R — рекурсивно отображать содержимое поддиректорий;
  • — s — выводить размер файла в блоках;
  • — S — сортировать по размеру, сначала большие;
  • — t — сортировать по времени последней модификации;
  • -u — сортировать по времени последнего доступа;
  • — U — не сортировать;
  • — X — сортировать по алфавиту;
  • — Z — отображать информацию о расширениях SELinux;
  • — 1 — отображать один файл на одну строку.

Это были все основные параметры команды ls, которые нам может когда-либо понадобиться использовать. Их очень много, но на деле будут нужны только некоторые из них, вы их быстро запомните, а все остальные сможете всегда найти в этой статье или на странице справки man ls. А теперь давайте рассмотрим несколько примеров использования команды ls linux.

Владение файлами и права доступа

Команда chmod

Команда chmod (от англ. «change mode») позволяет изменить права доступа к файлам. Она работает в двух режимах: символьном и числовом.

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

    (чтение) =

    (запись) =

    (выполнение) =

   нет разрешений =

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

Только пользователь root, владелец файла или пользователь с правами sudo могут изменять права доступа к файлу.

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

Команда chown

Команда chown (от англ. «change owner») позволяет изменить владельца и группу заданного файла, каталога или символьной ссылки.

Чтобы изменить владельца файла, достаточно выполнить:

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

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

Команда sudo

Команда sudo (от англ. «Substitute User and do« = «подменить пользователя и выполнить») позволяет запускать программы от имени другого пользователя (по умолчанию, пользователя root). Использование команды , вместо входа в систему под учетной записью пользователя root, более безопасно, поскольку вы можете предоставить ограниченные административные привилегии отдельным пользователям, не зная пароля пользователя root.

Чтобы использовать , просто добавьте префикс перед именем команды:

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

Команда head

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

Команда diff

Команда diff (от англ. «difference») производит построчное сравнение содержимого двух файлов. После анализа файлов, выводится список несовпадающих строк. Программисты часто используют данную команду, когда им нужно внести некоторые изменения в исходный код программы:

Команда grep

Команда grep (от англ. «search globally for lines matching the regular expression, and print them») позволяет искать указанный текст в указанном файле, например:

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

Команда echo

Команда echo используется для вывода в терминал строки, указанной ей в качестве параметра. Часто команда применяется для перемещения некоторых данных в файл. Например, если вы хотите добавить строку «Hello, world!» в файл с именем name.txt, выполните:

Команда cat

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

Терминал Linux. Создание, удаление, копирование, перемещение, переименование файлов и директорий

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

Комментирование приветствуется.

1. С помощью команды touch:

Вводим команду touch, затем путь и название нового файла.

touch /путь/к/файлу/название_файла

Например, создадим текстовый файл в текущей директории с именем file.txt:

2. С помощью перенаправления стандартного потока вывода любой команды

  • О перенаправлении стандартных потоках вывода в файл более подробно будет рассказано в одной из следующих статей о терминале Linux.
  • Создать файл можно также перенаправлением вывода любой команды в файл.
  • В общем виде команда будет следующей:

какая_нибудь_команда > /путь/к/файлу/наименование_файла

  1. То есть, команда с выводом, затем галочка вправо >, означающая перенаправление вывода команды в файл и путь к файлу.
  2. Например, перенаправим вывод справки команды ls в файл, который будет создан (а если такой файл есть, то он будет полностью перезаписан):
  3. Но это мы создали не пустой файл, а если хотим создать пустой, то воспользуемся командой echo c переданной ей пустой строкой (две одинарных ковычки) и перенаправим это в файл:

3. С помощью любого текстового редактора, консольного или с графическим интерфейсом

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

Удаление файлов и директорий в терминале Linux

Для удаления директорий используется команда «rmdir» (от англ. remove directory):

Удаляются директории аналогично, как и создаются. Такие же команды.

Удаление файлов в терминале Linux

Для удаления файлов используется команда «rm» (от англ. remove).

  • Работает очень просто, пишете команду rm и путь к файлу, который хотите удалить:
  • Удалить файл с именем «file1»:

Но команда «rm» позволяет удалять не только файлы, но и директории (каталоги) вместе с их содержимым.

  1. Удалить директорию с именем «dir1» и рекурсивно всё её содержимое:
  2. Удалить две директории и рекурсивно их содержимое:
  3. Также можно добавить параметр -f, который означает, что при удалении не будет запрашиваться подтверждение на удаление. Команды будут выглядеть так:

Перемещение и переименование файлов и директорий в терминале Linux

Для перемещения и переименовывания файлов и директорий (каталогов) используется команда «mv» (от англ. move).

Всё очень просто. Чтобы переименовать файл, выполняем команду:

mv название_файла новое_название

  • Чтобы переместить файл:

Копирование файлов и директорий в терминале Linux

Для копирования используется команда «cp» (от англ. copy).

  1. Скопировать файл file1 и назвать его file2:
  2. Копировать директорию dir1 в директорию dir2:
  3. Копировать файл с именем file1 в директорию c именем dir1:

Справка о командах

  • У каждой команды присутствует множество параметров, чтобы узнать их, просто наберите команду и параметр —help:
  • Например:

Исключить директорию из поиска

Из предыдущего параграфа понятно, что с помощью

можно исключить директорию из поиска.

Пример: найти в ./code все файлы, заканчивающиеся на index.php
но проигнорировать поддиректории на p, то есть в директориях python и php не искать.

find ./code -path “./code/p*” -prune -false -o -name “*index.php”

./code/js/errors/index.php
./code/js/index.php
./code/c/index.php
./code/cpp/index.php
./code/go/pointers/index.php
./code/go/declare_variable/index.php
./code/go/constants/index.php
./code/go/index.php
./code/java/index.php
./code/dotnet/index.php
./code/ruby/index.php
./code/theory/index.php
./code/index.php

-false нужен чтобы не выводить проигнорированные директории.

Ещё один способ исключить директорию из поиска

find ./code -name *.php -not -path “./code/p*”

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

Поиск файла по имени

1. Простой поиск по имени:

find / -name “file.txt”

* в данном примере будет выполнен поиск файла с именем file.txt по всей файловой системе, начинающейся с корня .

2. Поиск файла по части имени:

find / -name “*.tmp”

* данной командой будет выполнен поиск всех папок или файлов в корневой директории /, заканчивающихся на .tmp

3. Несколько условий. 

а) Логическое И. Например, файлы, которые начинаются на sess_ и заканчиваются на cd:

find . -name “sess_*” -a -name “*cd”

б) Логическое ИЛИ. Например, файлы, которые начинаются на sess_ или заканчиваются на cd:

find . -name “sess_*” -o -name “*cd”

в) Более компактный вид имеют регулярные выражения, например:

find . -regex ‘.*/\(sess_.*cd\)’

find . -regex ‘.*/\(sess_.*\|.*cd\)’

* где в первом поиске применяется выражение, аналогичное примеру а), а во втором — б).

4. Найти все файлы, кроме .log:

find . ! -name “*.log”

* в данном примере мы воспользовались логическим оператором !.

Поиск по дате

1. Поиск файлов, которые менялись определенное количество дней назад:

find . -type f -mtime +60

* данная команда найдет файлы, которые менялись более 60 дней назад.

2. Поиск файлов с помощью newer. Данная опция доступна с версии 4.3.3 (посмотреть можно командой find –version).

а) дате изменения:

find . -type f -newermt “2019-11-02 00:00”

* покажет все файлы, которые менялись, начиная с 02.11.2019 00:00.

find . -type f -newermt 2019-10-31 ! -newermt 2019-11-02

* найдет все файлы, которые менялись в промежутке между 31.10.2019 и 01.11.2019 (включительно).

б) дате обращения:

find . -type f -newerat 2019-10-08

* все файлы, к которым обращались с 08.10.2019.

find . -type f -newerat 2019-10-01 ! -newerat 2019-11-01

* все файлы, к которым обращались в октябре.

в) дате создания:

find . -type f -newerct 2019-09-07

* все файлы, созданные с 07 сентября 2019 года.

find . -type f -newerct 2019-09-07 ! -newerct “2019-09-09 07:50:00”

* файлы, созданные с 07.09.2019 00:00:00 по 09.09.2019 07:50

Искать в текущей директории и всех ее подпапках только файлы:

find . -type f

* f — искать только файлы.

Поиск по правам доступа

1. Ищем все справами на чтение и запись:

find / -perm 0666

2. Находим файлы, доступ к которым имеет только владелец:

find / -perm 0600

Поиск файла по содержимому

find / -type f -exec grep -i -H “content” {} \;

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

С сортировкой по дате модификации

find /data -type f -printf ‘%TY-%Tm-%Td %TT %p\n’ | sort -r

* команда найдет все файлы в каталоге /data, добавит к имени дату модификации и отсортирует данные по имени. В итоге получаем, что файлы будут идти в порядке их изменения.

Лимит на количество выводимых результатов

Самый распространенный пример — вывести один файл, который последний раз был модифицирован. Берем пример с сортировкой и добавляем следующее:

find /data -type f -printf ‘%TY-%Tm-%Td %TT %p\n’ | sort -r | head -n 1

Поиск с действием (exec)

1. Найти только файлы, которые начинаются на sess_ и удалить их:

find . -name “sess_*” -type f -print -exec rm {} \;

* -print использовать не обязательно, но он покажет все, что будет удаляться, поэтому данную опцию удобно использовать, когда команда выполняется вручную.

2. Переименовать найденные файлы:

find . -name “sess_*” -type f -exec mv {} new_name \;

или:

find . -name “sess_*” -type f | xargs -I ‘{}’ mv {} new_name

3. Вывести на экран количество найденных файлов и папок, которые заканчиваются на .tmp:

find . -name “*.tmp” | wc -l

4. Изменить права:

find /home/user/* -type d -exec chmod 2700 {} \;

* в данном примере мы ищем все каталоги (type d) в директории /home/user и ставим для них права 2700.

5. Передать найденные файлы конвееру (pipe):

find /etc -name ‘*.conf’ -follow -type f -exec cat {} \; | grep ‘test’

* в данном примере мы использовали find для поиска строки test в файлах, которые находятся в каталоге /etc, и название которых заканчивается на .conf. Для этого мы передали список найденных файлов команде grep, которая уже и выполнила поиск по содержимому данных файлов.

6. Произвести замену в файлах с помощью команды sed:

find /opt/project -type f -exec sed -i -e “s/test/production/g” {} \;

* находим все файлы в каталоге /opt/project и меняем их содержимое с test на production.

Установка и изменение разрешений для файлов

Для любого создаваемого файла первоначально устанавливаются разрешения -rw-r–r–. То есть всем разрешено читать этот файл, но никому — выполнять его.В случае помещения внутрь файла исполняемой программы, однако, может возникать необходимость в предоставлении кому-то разрешения на его выполнение. Устанавливать разрешения для файлов в UNIX можно с помощью команды chmod, у которой имеется два возможных способа применения.

Во-первых, в этой команде можно использовать символические обозначения, а именно: o — для владельца, g — для группы и u — для остальных пользователей в системе.В таком случае необходимые разрешения предоставляются так: сначала указывается интересующая сущность вместе со знаком плюс (+), а затем — символ, представляющий разрешение, которое ей требуется предоставить. В приведенном ниже примере обозначение go+x означает, что группе и всем остальным пользователями предоставляется разрешение на выполнение (x) сценария оболочки test.ksh:

$ chmod go+x test.ksh

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

$ chmod g-rw test.ksh 

Во-вторых, в команде chmod можно также использовать для изменения разрешений файлов восьмеричные числа. Каждому разрешению соответствует разный цифровой “вес”: разрешению на чтение — вес 4, разрешению на запись — вес 2, а разрешению на выполнение — вес 1. Чтобы установить то или иное разрешение, достаточно просто добавить соответствующее ему число. Наибольшим числом, которое может ассоциироваться с каждой из трех сущностей (владельцем, группой и всеми остальными пользователями) является 7, равнозначное наличию разрешения на чтение, на запись и на выполнение файла. Например, рассмотрим следующий случай:

 
$ ls
$ -rw-r--r-- 1 oracle dba 102 Nov 11 15:20 test.txt
$ chmod 777 test.txt
$ ls
$ -rwxrwxrwx 1 oracle dba 102 Nov 11 15:20 test.txt

Первоначально разрешения файла test.txt выглядели как 644 (rw, r, r). Выполнение команды chmod 777 привело к выдаче всех разрешений (чтение, запись и выполнение) всем трем сущностям, т.е. владельцу, группе и всем остальным пользователям. При желании изменить это и сделать так, чтобы у владельца были все права, а у всех остальных пользователей — ни одного, достаточно просто указать восьмеричное число 700 (означающее, что у владельца должны быть права на чтение, запись и выполнение, а у группы, к которой он принадлежит, и у все остальных пользователей не должно быть вообще никаких прав) и использовать его в команде chmod следующим образом:

$ chmod 700 test.txt
$ ls -altr test.txt
-rwx------ 1 oracle dba 0 Mar 28 11:23 test.txt
$

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

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

$ umask
022
Символическое обозначениеВосьмеричное числоОписание привилегий
Никаких привилегий
–x1Только выполнение
-w-2Только запись
-wx3Запись и выполнение, но не чтение
r–4Только чтение
r-x5Чтение и выполнение, но не запись
rw-6Чтение и запись, но не выполнение
rwx7Чтение, запись и выполнение (все привилегии)

При создании новый файл по умолчанию получает разрешения, наличие которых допускает переменная UMASK. В предыдущем примере вывод показал, что переменная UMASK имеет значение 022, а это значит, что к новым файлам пользователя ни его группа, ни другие пользователи системы не смогут получать доступ для записи.

ls — просмотр содержимого папки

Команда ls позволяет вывести список файлов заданной папки, по умолчанию, будет выведен список файлов текущей папки:

ls

  • Вы можете вывести список файлов из всех подкаталогов рекурсивно, для этого используйте опцию -R:
  • ls -R
  • Чтобы вывести список файлов нужной папки, вы можете передать ее адрес утилите, например, /home:
  • ls /home

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

ls -l /home/

2. cd — изменить папку

Команда cd позволяет изменить текущую папку на другую. По умолчанию, текущей считается домашняя папка, например, cd Desktop меняет папку на рабочий стол, если вы выполните ее из домашнего каталога:

cd Desktop

Вы также можете указать полный путь к папке:

cd /usr/share/

Команда cd .. переходит в папку, которая находится выше на одну в файловой системе:

cd ..

Вы также можете вернуться в предыдущую рабочую папку:

cd —

3. rm — удалить файлы

Команда rm позволяет удалить файл. Будьте очень осторожны с ней, она не будет спрашивать подтверждения:

rm file

Например, rm file удалит файл с именем file, который находится в текущей папке. Как и в предыдущих вариантах, вы можете указать полный путь к файлу linux. Например:

  1. rm /usr/share/file
  2. Если вы хотите удалить папку, то нужно использовать опцию -r. Она включает рекурсивное удаление всех файлов и папок на всех уровнях вложенности:
  3. rm -r /home/user/photo/
  4. Будьте осторожны, потому что эта команда удаляет файлы безвозвратно.

4. rmdir — удалить папку

Команда rmdir позволяет удалить пустую папку. Например, команда rmdir directory удалит папку directory, которая находится в текущей папке:

rmdir directory

Если вам нужно удалить папку с файлами, то нужно использовать утилиту rm вместе с опцией -r.

5. mv — перемещение файлов

Команда mv перемещает файл в новое место. Она также может использоваться для переименования файлов. Например, mv file newfile переименует файл file в newfile:

mv file newfile

Чтобы переместить файл в другую папку нужно указать путь к ней, например, переместим файл file в папку /home/user/tmp/

mv file /home/user/tmp/

6. cp — копирование файлов

Эта cp и mv — это похожие команды linux для работы с файлами. Они работают аналогичным образом, только исходный файл остается на своем месте.

cp file newfile

Вы также можете рекурсивно скопировать всю папку с помощью команды cp -r. Эта команда скопирует всю папку вместе со всеми файлами и вложенными папками в новое место. Например, скопируем папку /etc/:

cp -r /etc /etc_back

7. mkdir — создать папку

  • Команда mkdir позволяет создать новую папку mkdir test создаст папку в текущем каталоге:
  • mkdir test
  • Если нужно создать папку в другом каталоге, укажите полный путь к нему:
  • mkdir /home/user/test

8. ln — создание ссылок

Утилита ln позволяет создавать жесткие и символические ссылки на файлы или папки. Для создания символической ссылки используется опция -s. Например, вы создадим ссылку на папку с загрузками:

  1. ln -s /home/user/Downloads/ /home/user/test/
  2. Для создания жесткой ссылки никаких опций задавать не нужно:
  3. ln /home/user/Downloads/ /home/user/test/

9. chmod — изменить права

chmod позволяет изменить права доступа к файлам. Например, chmod +x script.sh добавляет флаг исполняемости к файлу script.sh:

  • chmod +x  script.sh
  • Чтобы убрать флаг исполняемый используйте опцию -x:
  • chmod -x script.sh
  • Подробнее о том, как работают разрешения для файлов смотрите в статье права доступа к файлам в Linux.

10. touch — создать файл

  1. Команда touch создает пустой файл. Например, touch file создаст пустой файл в текущей папке с именем file:
  2. touch file
  3. Для создания файлов через терминал существует еще несколько команд, они рассмотрены в статье как создать файл в linux.

11. mc

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

Вы можете использовать полнофункциональный файловый менеджер с псевдографическим интерфейсом на основе ncurses. Midnight Commander — это файловый менеджер, который можно использовать прямо в терминале.

Для установки mc в Ubuntu выполните:

  • sudo apt install mc
  • После завершения установки достаточно выполнить команду mc:
  • mc
  • Используйте клавиши со стрелками для перемещения по файлах, Tab для перехода на другую панель, Alt+1 для просмотра справки и Alt+2 для вывода меню:
  • Если терминальное окружение поддерживает мышь, то вы можете ее использовать в Midnight Commander.

Выводы

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

Команды для управления правами на файлы и директории

Все, что нужно для разрешения проблем, связанных с правами в Linux.

  • sudo — выдает права суперпользователя. Используется перед любой другой командой в терминале, если нужно выполнить ее от имени администратора. Многие программы и операции запускаются исключительно при наличии этих прав, так что sudo используется часто. Например, чтобы обновить список пакетов в Ubuntu, введем: sudo apt-get update. При этом система запросит пароль администратора.
  • sudo su — переводит терминал в режим суперпользователя. В нем каждая введенная команда будет восприниматься системой так, будто перед ней ввели sudo. Помогает запускать несколько скриптов и утилит, требующих права администратора, без необходимости постоянно корректировать их или вводить пароль от учетной записи.
  • sudo gksudo — используется для запуска графических утилит от имени администратора. В Windows для этого есть специальная кнопка в контекстном меню, а в Linux — префикс. Синтаксис такой:
​sudo gksudo название приложения, нуждающееся в запуске от имени администратора
  • sudo !! — запускает предыдущую команду от имени администратора. Используется, если до этого была неудачная попытка запустить программу. Помогает не тратить время на повторный ввод большого количества символов.
  • chmod — корректирует права доступа к выбранному файлу. Применяется исключительно с набором аргументов, обозначающих список прав. Допустим, я хочу выдать права на чтение и запись файла Timeweb.html на рабочем столе. Для этого введу в терминал: chmod 777 ~/Desktop/timeweb.html. Теперь его можно открывать и редактировать. Аналогичным образом пользователи поступают с системными файлами, когда приходит время что-то в них менять. По умолчанию большая их часть защищена от записи.
  • chown — назначает владельца для выбранной директории, документа, картинки или любого другого элемента в файловой системе. Синтаксис следующий:
chown имя учетной записи, которому надо передать права путь до файла, права на который нужно передать

Следующие 9 символов обозначают права доступа.

Данные 9 символов состоят из трех групп:

  • Первая группа из трех символов обозначает права доступа владельца файла или директории (u – user).
  • Вторая группа из трех символов обозначает права доступа на файл или директорию для системной группы (g – group).
  • Третья группа из трех символов обозначает права доступа на файл или директорию для всех остальных (o – other).

У этих трёх групп одинаковая комбинация символов, то есть:

Что же они обозначают?

Очень легко запомнить:

rread, то есть, право доступа на чтение файла или директории.
wwrite, то есть, право на изменение и удаление файла или директории.
xeXecute, то есть, право на запуск файла как программы или вход в директорию.

Всегда располагаются в таком порядке:

Если вместо какого-то символа идёт тире (минус), к примеру:

то это значит, что отсутствуют права на изменение и удаление файла или директории.

Или так:

то это обозначает, что отсутствуют права на изменение и запуск файла или директории. Доступен только просмотр.

Таким образом, из нашего примера:

это сообщение обозначает, что является директорией, у владельца и у группы есть полные права доступа – на чтение, изменение, удаление, запуск (вход внутрь каталога), у всех остальных есть только права на чтение и запуск(вход внутрь каталога).

Как видите, ничего сложного нет.

Определение владельца и группы файла или директории.

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

Те же самые команды из первого пункта:

Как видно на скриншоте:

  • в третей колонке идет имя владельца файла;
  • в четвертой колонке идет название группы.

Следовательно, если пользователь не владелец файла, но входит в группу, то у него будут права на файл или директорию этой самой группы.

Поделитесь в социальных сетях:FacebookXВКонтакте
Напишите комментарий