Настройка прав доступа в linux

Повышение пользовательских прав командой su

Давайте рассмотрим такую ситуацию, когда пользователю нужно установить некую программу, например wget.

$ yum install -y wget
Загружены модули: fastestmirror
Для выполнения этой команды необходимы привилегии суперпользователя.

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

$ su
Пароль: 
# 

Что-же произошло в процессе выполнения команды? При выполнении команды был запрошен пароль суперпользователя, после ввода пароля происходит подмена имени пользователя test на имя root, что дает пользователю право выполнять все действия от его имени.

Было $, стало #. Теперь можно установить нужную программу или выполнить необходимую операцию, ради которой все это и было затеяно. Для возвращения назад используют команду exit.

# exit
exit
$ 

После выполнения команды exit происходит возвращение в свое пользовательское окружение $.

Существует еще один вариант выполнения команды — su -. При выполнении su — изменяется не только имя, но и рабочее окружение пользователя.

$ su -
Пароль: 
Последний вход в систему:Сб фев 11 21:11:06 MSK 2017на pts/0
# 

Были $, стали #. Грубо говоря стали пользователем root, до тех пор пока не будет выполнена команда exit и пользователь не вернется назад в свое окружение.

У некоторых читателей может появиться вопрос: Зачем это нужно, если обычный пользователь зная пароль root может входить напрямую, без всяких заморочек? Да может, зная пароль это не составит особого труда. Я описываю ситуацию когда root и обычный пользователь, это один и тот-же человек.

Некоторые пользователи закрывают удаленный root-доступ на свои VPS/VDS сервера в качестве меры безопасности. Поскольку напрямую под root они входить уже не могут, то входят от имени обычного пользователя, после чего повышают себя до root для выполнения нужных задач.

А как быть если пользователей много? Ведь это не есть хорошо, когда пароль root знает каждый из них. В том-то и дело что не каждый юзер знает пароль. Грамотный администратор не будет разбрасываться паролем направо и налево, а доверит его только проверенным пользователям. Пароль может знать каждый, но не каждый сможет его применить, этой привилегией обладает тот, кто входит в специальную группу пользователей.

В UNIX-системах существует так называемая группа wheel, только входящие в нее пользователи могли выполнять команду su. В последних версиях Linux любой пользователь может выполнять su по умолчанию, а раньше у них такой возможности не было. В старых версиях Linux и системе FreeBSD, команда su могла выполняться только после внесения пользователя в группу wheel администратором.

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

# id techlist_1
uid=1001(techlist_1) gid=1004(techlist_1) группы=1004(techlist_1)
# id techlist_2
uid=1002(techlist_2) gid=1005(techlist_2) группы=1005(techlist_2)

Добавим пользователя techlist_1 в группу wheel, а techlist_2 оставим без изменений.

# usermod -a -G wheel techlist_1
# id techlist_1
uid=1001(techlist_1) gid=1004(techlist_1) группы=1004(techlist_1),10(wheel)
# id techlist_2
uid=1002(techlist_2) gid=1005(techlist_2) группы=1005(techlist_2)

Отредактируем файл /etc/pam.d/su для возвращения возможности разделения пользователей, как в старых версиях Linux.

# nano /etc/pam.d/su

Находим следующую строку и расскомментируем ее, уберем знак #, в начале строки:
#auth           required        pam_wheel.so use_uid
auth           required        pam_wheel.so use_uid

Сохраняем изменения и выходим.

Проверим как теперь пользователи смогут выполнять команду su. Сначала проверим входящего в группу wheel пользователя.

$ su
Пароль: 
# exit
exit
$ su -
Пароль: 
Последний вход в систему:Вс фев 12 04:49:44 MSK 2017на pts/1
# 

Теперь второго, которого не добавляли в группу.

$ su
Пароль: 
su: Доступ запрещен
$ su -
Пароль: 
su: Доступ запрещен
$

Что и требовалось доказать. Один пользователь выполняет команду su, а другой не может. Вот так может работать повышение пользовательских прав при помощи команд su и su -.

Пример на практике

Рассмотрим следующий пример:

Здесь владелец (diego) файла Адреса.txt (который я заранее создал в папке ) имеет доступ к его «Просмотру и Изменению», в то время как другие члены его группы (её название совпадает с именем владельца — diego), а также все остальные пользователи, не входящие в эту группу, имеют доступ «Только просмотр». Поэтому они могут открыть файл, но не могут вносить в него изменения.

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

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

Если применить команду к нашему файлу Адреса.txt, то мы будем наблюдать такой вывод:

Выходные данные содержат следующую информацию:

Рассмотрим детально:

   Тип — обозначает тип объекта. Это может быть обычный файл (), каталог () или ссылка ().

   Разрешения (права доступа) — в этом поле отображается набор разрешений для файла, о которых мы поговорим ниже.

   Жесткая ссылка — отображает количество ссылок, имеющихся у файла. По умолчанию устанавливается значение .

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

   Группа — группа, имеющая доступ к файлу. Одновременно владеть файлом может только одна группа.

   Размер — размер файла в байтах.

   Дата модификации — дата и время последнего изменения файла.

   Имя файла.

Информация о правах доступа к файлу сгруппирована в строку символов, перед которой стоит . При этом каждая буква задает определенное разрешение, а именно:

    (read) — разрешение на чтение/просмотр файла;

    (write) — разрешение на запись/изменение файла;

    (execute) — разрешение на выполнение файла;

    — нет набора разрешений.

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

Разрешения всегда идут именно в таком порядке, то есть . А далее, они устанавливаются для всех трех категорий пользователей в порядке Владелец, Группа и Остальные/Другие:

Итак, если вы вооружитесь вышеприведенной картинкой и посмотрите на вывод команды , то сможете сказать следующие вещи о правах доступа к файлу Адреса.txt:

Что мы видим?

   Владелец diego имеет права на чтение и запись в файл.

   Группа diego имеет права только на чтение.

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

Теперь попробуем применить ту же самую команду , но к другому файлу:

Что мы видим?

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

   Все члены группы root имеют права на чтение и выполнение файла ().

   Остальные пользователи тоже имеют права на чтение и выполнение файла ().

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

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

Правильный идентификатор

Например, если в файле /etc/sudoers заданы параметры «myhost bob = (ALL, !root) /user/bin/vi», то пользователь с идентификатором bob может запускать приложение Vi (текстовый редактор, по умолчанию включённый в большинство дистрибутивов Linux) с любыми правами, кроме root.

Однако если bob запускает Vi, используя команды вида «sudo -u#-1 id -u» или «sudo -u#4294867295 id -u», то у него появляется возможность запуска Vi с правами суперпользователя (рута).

Всё, что идёт после sudo — это присвоение нового идентификатора данному пользователю. Функция Sudo, отвечающая за конвертацию идентификатора в пользовательское имя, некорректно интерпретирует -1 или 4294867295 (это число является беззнаковым эквивалентом -1), как 0, а нулевой идентификатор — это обозначение рута.

Уязвимость, получившая индекс CVE-2019-14287, затрагивает все версии Sudo до самой последней — 1.8.28, выпущенной буквально на днях.

«Эксплуатация уязвимости едва ли угрожает большому количеству пользователей: слишком специфичными являются условия, при которых это возможно, — считает Анастасия Мельникова, эксперт по информационной безопасности компании SEC Consult Services. — С другой стороны, эта ситуация в очередной раз свидетельствует о том, что даже самые распространённые и часто используемые разработки с открытым кодом могут содержать очень серьёзные ошибки, чреватые компрометацией системы».

Пользователям Linux рекомендуется обновить Sudo в ближайшее время.

Ошибка отказано в доступе Linux

Наиболее часто такая ошибка встречается, в таких случаях:

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

В операционной системе Linux действует сложная система полномочий. Настройки доступа для каждого файла настраиваются тремя параметрами — чтение, запись и выполнение. Эти параметры устанавливаются для трех категорий — владелец файла, группа файла и все остальные пользователи.

Если вы попытаетесь получить доступ, например, открыть для чтения файл, к которому вам доступ не разрешен, то вы получите такую ошибку. А учитывая что все устройства, сокеты, и другие системные объекты — это тоже файлы, то вы будете получать такую ошибку всегда, когда попытаетесь сделать то, что вам не позволено. Самый простой способ обойти такой запрет — это выполнять нужную команду от имени суперпользователя.

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

Но эта же команда нормально отработает нормально при использовании команды sudo:

Другой случай, это если вы обнаруживаете проблему в логах какого-либо системного сервиса, например, веб-сервера Apache. Казалось бы, должно было быть все верно, потому что запуск и так выполняется от имени суперпользователя.

Но нет, сервисы не только запускаются от имени суперпользователя, но потом, для увеличения безопасности они меняют пользователя на обычного, не привелигированного. Например, Apache работает от имени пользователя apache или www-data. Уже от имени этого пользователя программа пытается получить доступ к файловой системе.

Если нужная папка не доступна этому пользователю для чтения то вы получите ошибку access denied linux. Обычно, в логе программа сообщает какая папка или файл нужен когда происходит ошибка.

Вам просто нужно поменять на него права с помощью утилиты chmod или изменить владельца chown. Причем, нужно чтобы ко всем подкаталогам на пути к целевому каталогу был доступ у программы. Например, нельзя так чтобы права на чтение /home/ не было, а на /home/user/ было. Так не пройдет.

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

Или для смены прав для всех файлов в каталоге и самого каталога:

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

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

После того как вы установите правильные права, ошибка отказано в доступе linux больше не будет встречаться.

Основные правила управления доступом

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

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

Владельцем файла всегда является один человек, тогда как в группу владельцев могут входить несколько пользователей. По традиции информация о группах хранилась в фай­ле .

Права пользователя в 1С

Скажем несколько слов о правах пользователей. Что означает ограничение прав доступа? В разрезе программных продуктов 1С, это запрет на совершение действий с какими-либо файлами и объектами. Например, можно закрыть пользователю доступ для изменения документа, копирования и даже просмотра. Соответственно, расширить права доступа означает дать разрешение на просмотр, изменение документа, копирование, сохранение и т.д.

При правильной настройке 1С система всегда ответит пользователю, если ему нельзя совершить то или иное действие с объектом: «у вас недостаточно прав для редактирования».

Определение понятия root-прав

Будет полезным

Рут-права позволяют получить полный контроль над мобильным телефоном или планшетом. Изначально операционная система защищена от изменений, которые могут ей навредить или нарушить стандартную конфигурацию, заданную разработчиками. Логика в данном ограничении конечно присутствует, но зачастую вместе с полезными приложениями производитель устанавливает на устройстве много рекламного мусора. Он занимает лишнее дисковое пространство и может выполнять неподконтрольные пользователю задачи.

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

  • возможность предоставить любой утилите неограниченный доступ к ОС;
  • изменение иконок, системных мелодий, приветствия при загрузке и т.д.;
  • разблокировка загрузчика для установки другой прошивки;
  • инсталляция приложений непосредственно на SD-карту;
  • возможность создания копий всех данных и установленных приложений на устройстве;
  • доступ к системным файлам Android.

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

  • Потеря гарантии. Любое вмешательство в работу устройства со стороны пользователя влечет за собой лишение права на гарантийный ремонт в случае возникновения такой необходимости.
  • Критическое повреждение ОС. Получив полный доступ, можно сильно навредить операционной системе устройства. Если такое произошло, в некоторых случаях помогает установка прошивки с отсоединенным аккумулятором, в других – восстановление устройства невозможно.

Важно знать

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

Запуск графических программ с правами администратора

Для запуска графических программ с правами администратора можно воспользоваться диалогом запуска программ, вызываемым по умолчанию сочетанием клавиш Alt+F2.

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

gksudo nautilus

Вместо можно подставить , кроме того, пользователи KDE должны вместо писать . У вас попросят ввести свой пароль, и, если вы обладаете нужными правами, Nautilus запуститься от имени администратора. Запуск любого графического ПО можно производить с правами администратора, просто написав в диалоге запуска

gksudo <имя_команды>

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

Получение прав root без переключения

Чтобы реализовать максимально безопасный интерфейс для работы с правами суперпользователя в Linux была разработана команда sudo. Давайте рассмотрим что такое sudo. Эта команда пишется перед каждой командой, которую нужно выполнить от имени суперпользователя, и для ее выполнения нужно ввести пароль уже не root, а всего лишь вашего пользователя. Так же, как и в предыдущей, в этой утилиты есть свои опции. Сначала рассмотрим синтаксис:

$ sudo опции команда

Опции программы:

  • -b — выполнять запускаемую утилиту в фоне
  • -E — сохранить переменные окружения
  • -g — запустить команду от группы
  • -H — использовать домашний каталог
  • -l — показать список полномочий в sudo для текущего пользователя
  • -r — использовать для команды роль SELinux
  • -s — использовать оболочку
  • -u — запустить команду от имени пользователя, если не задано используется root
  • -i — не выполнять команду, а войти в оболочку, эквивалентно su —

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

Или:

Использование sudo — это рекомендованный способ выполнять команды от имени суперпользователя в Linux. Так вы не забудете с чем имеете дело и меньше всего рискуете повредить систему. Более подробно о команде sudo читайте здесь. Но остался еще один нерешенный вопрос — как быть с графическими утилитами? Ведь команда sudo их не запускает, а запускать графическую оболочку от имени root небезопасно. Это мы и рассмотрим далее.

Права и владельцы

В операционной системе UNIX были сформулированы некоторые общие идеи и принципы, которые оказали в дальнейшем сильное влияние на её архитектуру, пользовательский интерфейс, культуру и развитие. В частности, один из основополагающих принципов выражается мантрой «всё есть файл», которую часто называют определяющим пунктом UNIX в целом.
Суть данного принципа заключается в создании унифицированного способа доступа к широкому диапазону ресурсов ввода/вывода: к документам, каталогам, жёстким дискам, дискам CD-ROM, модемам, клавиатурам, принтерам, мониторам, терминалам и даже межпроцессным и сетевым взаимодействиям. Цель — предоставление универсальной абстракции для каждого из этих объектов, названных отцами-оснвоателями UNIX общим термином «файл». Поскольку доступ к файлу осуществляется с помощью одного и того же API, стало возможно использовать одинаковый набор базовых команд для чтения и записи таких разнородных устройств, как диск, клавиатура, документ или сетевой интерфейс.
Абстракция файла, существующая в операционной системе UNIX и совместимых с ней системах, является основополагающей и всеобъемлющей. Любая системная служба и интерфейс устройства теперь могут реализовываться так, чтобы предоставлять другим приложениям метафору файла или файловой системы. Это открывает новые способы их использования и значительно расширяет возможности существующих приложений — простые инструменты, разработанные для решения узких задач, теперь, вооружившись абстракцией файла UNIX, могут использоваться совершенно по-новому. Небольшая утилита вроде cat, предназначенная для считываения одного или нескольких файлов и вывода их содержимого на стандартный поток вывода, теперь может выполнять чтение с устройств ввода-вывода с помощью специальных файлов устройств, как правило расположенных в каталоге . С другой стороны, во многих системах запись и проигрываение звука теперь выполняется всего лишь командами «» и «» соответственно.

В GNU/Linux каждый файл принадлежит какому-то пользователю и группе. Существует три типа прав доступа — чтение, запись и исполнение. Права доступа задаются по отдельности для владельца-пользователя, владельца-группы, и для прочих пользователей, которые не входят в первые две категории. Владельцев файла и права доступа можно узнать с помощью «длинного» формата команды :

$ ls -l /boot/
total 13740
drwxr-xr-x 2 root root    4096 Jan 12 00:33 grub
-rw-r--r-- 1 root root 8570335 Jan 12 00:33 initramfs-linux-fallback.img
-rw-r--r-- 1 root root 1821573 Jan 12 00:31 initramfs-linux.img
-rw-r--r-- 1 root root 1457315 Jan  8 08:19 System.map26
-rw-r--r-- 1 root root 2209920 Jan  8 08:19 vmlinuz-linux

Первая колонка содержит права доступа к файлу (например, правами файла являются ). Третья и четвёртая колонки содержат соответственно пользователя и группу, которым принадлежит файл. В этом примере все файлы принадлежат пользователю root и группе root.

$ ls -l /media/
total 16
drwxrwx--- 1 root vboxsf 16384 Jan 29 11:02 sf_Shared

В этом примере каталог принадлежит пользователю root и группе vboxsf. Владельца и права доступа можно также определить утилитой stat.

Пользователь-владелец:

$ stat -c %U /media/sf_Shared/
root

Группа-владелец:

$ stat -c %G /media/sf_Shared/
vboxsf

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

$ stat -c %A /media/sf_Shared/
drwxrwx---

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

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

# find / -group имя_группы
# find / -group номер_группы
# find / -user имя_пользователя

Изменить владельцев файла можно командой chown, а права доступа меняются командой chmod:

Root-права на Андроид и для чего они нужны

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

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

Основные цели rootaing (рутинга) состоят в получения прав «суперпользователя» или «рут» на девайсах Андроид – снятие запретов оператора связи или производителя для получения возможности манипулировать системными программами и запуска приложений, для функционирования которых необходимы права администратора.

Нужна помощь?

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

У обладателя рут-прав имеется неограниченный доступ ко всем системным файлам, несмотря на установленные ограничения прав доступа. При наличии root-прав вы получаете над своим гаджетом полный контроль.

Преимущества получения рут-прав:

  • Инсталляция приложения, которые требуют для своей работы root (драйверы, эмуляторы и пр.).
  • Доступ к программам, темам, ярлыкам, системным файлам и т.п. с возможностью их изменения.
  • Блокирование, замена или удаление предустановленного ненужного софта.
  • Установки сторонних прошивок и различных модов.
  • Активация дополнительный опций ОС Андроид.
  • Контроль работы программ (блокирование звонков, опасного ПО или оправки SMS на платные номера).
  • Возможность создания резервный копий, переноса информации.
  • Прочие привилегии.

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

  • Отключение официальных обновлений прошивки гаджета через интернет (FOTA или OTA).
  • Лишение гарантий от производителя (не для всех устройств).
  • Отключение неразрешенного доступа и защиты от вредоносного ПО.
  • Угроза поломки девайса при неумелом использовании прав «суперпользователя».

Типы пользователей в Linux

Каждый файл и каталог в Linux имеет три категории пользователей:

   Владелец — пользователь, создавший файл/каталог.

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

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

Другими словами, Владелец — это один пользователь, Группа — это совокупность пользователей, а Остальные — совокупность из всех остальных пользователей системы.

Примечание: В этой статье я буду использовать общий термин «файл», но все действия могут быть применены в том числе и к каталогам.

Теперь представим такую ситуацию: пусть у нас есть два пользователя А и Б, требуется сделать так, чтобы пользователь А не мог повлиять на файл, содержащий жизненно важную информацию/данные пользователя Б. Возникает вопрос: «Как Linux различает данные категории пользователей?». Например, вы не хотите, чтобы ваш коллега, который работает на вашем компьютере с Linux, просматривал ваши изображения. Вот тут-то на сцену и выходят права доступа, определяющие поведение пользователей.

Как посмотреть права доступа к файлам в Linux

Конечно, вы можете посмотреть права доступа к файлам в Linux с помощью файлового менеджера. Все они поддерживают эту функцию, но так вы получите неполную информацию. Для максимально подробной информации обо всех флагах, в том числе специальных, нужно использовать команду ls с параметром -l. Все файлы из каталога будут выведены в виде списка, и там будут показаны все атрибуты и биты.

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

За права файлов в linux тут отвечают черточки. Первая это тип файла, который рассмотрен в отдельной статье. Дальше же идут группы прав сначала для владельца, для группы и для всех остальных. Всего девять черточек на права и одна на тип.

Рассмотрим подробнее, что значат условные значения флагов прав:

  • — — нет прав, совсем;
  • —x — разрешено только выполнение файла, как программы но не изменение и не чтение;
  • -w- — разрешена только запись и изменение файла;
  • -wx — разрешено изменение и выполнение, но в случае с каталогом, вы не можете посмотреть его содержимое;
  • r— — права только на чтение;
  • r-x — только чтение и выполнение, без права на запись;
  • rw- — права на чтение и запись, но без выполнения;
  • rwx — все права;
  • —s — установлен SUID или SGID бит, первый отображается в поле для владельца, второй для группы;
  • —t — установлен sticky-bit, а значит пользователи не могут удалить этот файл.

В нашем примере, файл test1 имеет типичные разрешения для программ, владелец может все, группа только чтение и выполнение, а все остальные — только выполнение. Для test2 дополнительно установлен флаг SUID и SGID. А для папки test3 установлен Sticky-bit. Файл test4 доступный всем. Теперь вы знаете как посмотреть права на файл linux.

Изменение атрибутов и запрет на редактирование

Для смены атрибутов выбранного файла применяется команда chattr. Используя «+» можно добавить атрибут, а с помощью «-» наоборот его убрать. Для примера давайте возьмем:

# chattr +i /boot/grub/menu.lst

Введение такой команды приведет к тому, что файл нельзя редактировать, менять его имя или даже удалять. Установить атрибут «i» может лишь суперпользователь или процесс CAP_LINUX_IMMUTABLE. Удаление данного атрибута производится командой:

# chattr -i /boot/grub/menu.lst

Полезным является и атрибут «j». Он предназначен, чтобы вносимые в файл данные предварительно были записаны в журнал файловой системы. Функционировать такой атрибут будет только в системах, имеющих опции data=ordered или data=writeback. Если изначально использовано data=journal, то данные уже автоматически сохраняются и он ничего не изменит.

Прочие важные атрибуты:

  • А — запрещает обновление записи atime, которая фиксирует время доступа к измененному файлу;
  • с — атрибут, необходимый для сжатия содержащихся в файле данных, что удобно при необходимости экономить дисковое пространство;
  • а — позволяет исключительно добавлять новые данные;
  • D — моментальная запись информации на диск;
  • d — опция создания резервной копии программой dump;
  • u — упрощает восстановление случайно удаленного с диска файла;
  • X и Z — экспериментальные атрибуты, используемые в служебных администраторских целях.

Для установки любого атрибута можно воспользоваться chattr, а посмотреть права на папку Linux пользователя получится командой lsattr. Другие атрибуты есть в справочнике — man chattr.

Популярные услуги

Linux сервер
Высокопроизводительные VPS сервера Linux на без KVM-виртуализации идеально подходят для крупных интернет-проектов. В сочетании с этой операционной системой серверные компьютеры демонстрируют хорошую производительность, а SSD хранилища данных способствуют увеличению их быстродействия. У нас вы сможете взять в аренду VPS и VDS Linux сервера.

Виртуальный дата-центр
Храните и получайте данные в любом объеме, в нужный момент масштабируясь под возрастающие нагрузки.

Подводя итоги

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

   В Linux-системах различают три категории пользователей, а именно: Владелец, Группа и Остальные/Другие.

   Права доступа к файлам подразделяются на права Чтения/Просмотра, Записи/Изменения и Выполнения, обозначаемые буквами , и .

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

   Команда может изменить владельца файла/каталога.

   Команда может изменить группу, владеющую файлом.

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

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