Справочник 70 основных команд Linux: полное описание с примерами

umask (от англ. user file creation mode mask  — маска режима создания пользовательских файлов) — функция среды POSIX, изменяющая права доступа, которые присваиваются новым файлам и каталогам по умолчанию. Права доступа файлов, созданных при конкретном значении umask, вычисляются при помощи следующих побитовых операций (umask обычно устанавливается в восьмеричной системе счисления):

Права суперпользователя

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

Способы получить права root в Linux

  • Вход от имени суперпользователя в виртуальной консоли, введя логин и пароль пользователя root.
  • Разовое переключение на роль суперпользователя в терминале с помощью специальных утилит.

О втором варианте расскажем подробнее.

  1. sudo

    (Super User Do). Позволяет исполнять команды с правами суперпользователя. Перед переходом в режим root администратора система выполнит запрос пароля и логина root. Пример:

    sudo имя_команды

  2. sudo su

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

  3. sudo gksudo

    Осуществляет запуска приложений от имени суперпользователя, использующих не терминал, а графический интерфейс. В дистрибутиве Kubuntu имя этой команды выглядит несколько иначе — sudo kdesudo.

  4. sudo !!

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

Максимальную производительность приложений Linux зависит от правильного подбора платформы для ОС. Мощный виртуальный сервер от Eternalhost обеспечит интернет-ресурсу стабильную работу и пространство для развития.

Разрешения на чтение и запись данных в файлы в UNIX

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

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

  • Разрешение на чтение (read permission), позволяющее только просматривать содержимое файла.
  • Разрешение на запись (write permission), позволяющее изменять содержимое файла, а в случае каталога — создавать, изменять и удалять файлы в данном каталоге.
  • Разрешение на выполнение (execute permission), позволяющее выполнять (запускать) файл, если в нем содержится исполняемая программа (или сценарий).

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

Опции команды chmod в linux

Собственно, на этом можно было бы закончить, но есть ещё опции, которые можно использовать при работе команды chmod:

  • -c — выводить информацию обо всех изменениях;
  • -f — не выводить сообщения об ошибках;
  • -v — выводить максимум информации;
  • —reference — взять маску прав из указанного файла;
  • -R — включить поддержку рекурсии;
  • —help — отобразить подсказку/помощь;
  • —version — вывести версию утилиты.

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

[email protected]:~# chmod -R 0755 foldername

Выставит права 755 на папку foldername и всё, что находится в ней.

Создание FIFO

Есть несколько способов создания именованного канала. Первые два могут быть осуществлены непосредственно из shell-а.

mknod MYFIFO p mkfifo a=rw MYFIFO

Эти две команды выполняют идентичные операции, за одним исключением. Команда mkfifo предоставляет возможность для изменения прав доступа к файлу FIFO непосредственно после создания. При использовании mknod будет необходим вызов команды chmod.

Файлы FIFO могут быть быстро идентифицированы в физической файловой системе посредством индикатора «p», представленного здесь в длинном листинге директории.

$ ls -1 MYFIFO ^prw-r—r— 1 root root 0 Dec 14 22:15 MYFIFO| …

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

Linux, eh?

Чтобы создать FIFO на Си, мы можем прибегнуть к использованию системного вызова mknod():

LIBRARY FUNCTION: mknod(); PROTOTYPE: int mknod( char *pathname, mode_t mode, dev_t dev ); RETURNS: 0 в случае успеха, -1 в случае ошибки: errno = EFAULT (ошибочно указан путь) EACCESS (нет прав) ENAMETOOLONG (слишком длинный путь) ENOENT (ошибочно указан путь) ENOTDIR (ошибочно указан путь) (остальные смотрите в man page для mknod) NOTES: Создает узел файловой системы (файл, файл устройства или FIFO)

Оставим более детальное обсуждение mknod()-а man page, а сейчас давайте рассмотрим простой пример создания FIFO на Си:

mknod(«/tmp/MYFIFO», S_IFIFO|0666, 0);

В данном случае файл «/tmp/MYFIFO» создан как FIFO-файл. Требуемые права — это «0666», хотя они находятся под влиянием установки umask, как например:

final_umask = requested_permissions & ~original_umask …

Общая хитрость — использовать системный вызов umask() для того, чтобы временно устранить значение umask-а:

umask(0); mknod(«/tmp/MYFIFO», S_IFIFO|0666, 0);

Кроме того, третий аргумент mknod()-а игнорируется, в противном случае мы создаем файл устройства. В этом случае он должен отметить верхнее и нижнее числа файла устройства.

Читайте также:  История версий iOS — от iPhone OS до iOS 15