Что значит рекурсивно в linux

Основы Linux от основателя Gentoo. Часть 3 (2/4): Модель прав доступа

Что значит рекурсивно в linux. Смотреть фото Что значит рекурсивно в linux. Смотреть картинку Что значит рекурсивно в linux. Картинка про Что значит рекурсивно в linux. Фото Что значит рекурсивно в linux

Навигация по основам Linux от основателя Gentoo:
Часть I:
Часть II:
Часть III

Модель прав доступа в Linux

Один пользователь, одна группа

‘d’ директория
‘l’ символическая ссылка
‘c’ устройство символьного ввода-вывода
‘b’ устройство блочного ввода-вывода
‘p’ FIFO
‘s’ сокет

Три тройки

«rwx»
«r-x»
«r-x»

Выше r означает, что чтение (просмотр данных содержащихся в файле) разрешено, w означает запись ( изменение, а также удаление данных) разрешено и x означает исполнение (запуск программы разрешен). Собрав все воедино мы видим, что кому угодно разрешено читать содержимое и исполнять этот файл, но только владельцу (root) разрешено как либо модифицировать этот файл. Так что если нормальным пользователям разрешено копировать содержимое этого файла, то только root может изменять или удалять его.

Кто я?

Перед тем, как мы узнаем как изменить владельца или группу которой принадлежит файл, давайте сперва рассмотрим, как узнать вашего текущего пользователя и группу к которой вы принадлежите. Если вы не использовали команду su недавно, ваш текущий пользователь это тот, которым вы вошли в систему. Если вы часто используете su, вы можете не помнить пользователя под которым вы работаете в данный момент. Чтобы узнать под каким пользователем вы работаете, наберите whoami:

В каких группах я состою?

Чтобы увидеть к каким группам вы принадлежите используйте команду groups:

$ groups
drobbins wheel audio

Из этого примера видно, что я состою в группах drobbins, wheel, и audio. Если вы хотите посмотреть, в каких группах состоит другой пользователь, то передайте его имя в качестве аргумента.

$ groups root daemon
root : root bin daemon sys adm disk wheel floppy dialout tape video
daemon : daemon bin adm

Изменение пользователя и группы владельца

Чтобы изменить владельца или группу файла (или другого объекта) используется команды chown или chgrp соответственно. Сначала нужно передать имя группы или владельца, а потом список файлов.

# chown root /etc/passwd
# chgrp wheel /etc/passwd

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

# chown root:wheel /etc/passwd

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

Рекурсивное изменение прав

Знакомство с chmod

$ chmod +x scriptfile.sh

В примере выше в качестве метода указано +x. Как можно догадаться, метод +x указывает chmod, что файл необходимо сделать исполняемым для пользователя, группы и для всех остальных. Если мы решим отнять все права на исполнение файла, то сделаем вот так:

Разделение между пользователем, группой и всеми остальными

До сих пор, наши примеры команды chmod влияли на права доступа всех трех наборов прав доступа — пользователя, группы и всех остальных пользователей. Часто бывает удобно изменить только один или два набора за раз. Чтобы сделать это, просто используйте специальный символ для обозначения набора прав доступа, который вам необходимо изменить, со знаком + или — перед ним. Используйте u для пользователя, g для группы и o для остальных пользователей.

$ chmod go-w scriptfile.sh

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

Сброс разрешений

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

$ chmod =rx scriptfile.sh

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

$ chmod u=rx scriptfile.sh

Числовые режимы

До сих пор, мы использовали то что называется символическим способом указания прав доступа для команды chmod. Однако есть еще один достаточно распространенный способ указания прав: использование четырехзначных восьмеричных чисел. Этот синтаксис, называется числовым синтаксисом прав доступа, где каждая цифра представляет тройку разрешений. Например, в 1777, 777 устанавливают флаги о которых мы говорим в этом разделе, для владельца, группы, и остальных пользователей. 1 используется для указания специального бита прав доступа, который мы рассмотрим позже (смотрите «Неуловимая первая цифра» в конце раздела). Эта таблица показывает как транслируются права доступа на числовые значения.

Числовой синтаксис прав доступа

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

umask

Когда процесс создает новый файл, он указывает, какие права доступа нужно задать для данного файла. Зачастую запрашиваются права 0666 (чтение и запись всеми), что дает больше разрешений, чем необходимо в большинстве случаев. К счастью, каждый раз, когда в Linux создается новый файл, система обращается к параметру, называемому umask. Система использует значение umask чтобы понизить изначально задаваемые разрешения на что-то более разумное и безопасное. Вы можете просмотреть текущие настройки umask набрав umask в командной строке:

В Linux-системах значением по умолчанию для umask является 0022, что позволяет другим читать ваши новые файлы (если они могут до них добраться), но не изменять их. Чтобы автоматически обеспечивать больший уровень защищенности для создаваемых файлов, можно изменить настройки umask:

Такое значение umask приведет к тому, что группа и прочие не будут иметь совершенно никаких прав доступа для всех, вновь созданных файлов. Итак, как работает umask? В отличие от «обычного» назначения прав доступа к файлу, umask задает какие права доступа должны быть отключены. Снова посмотрим на таблицу соответствия значений чисел и методов:

Знакомство с suid и sgid

В момент вашего входа в систему запускается новый процесс оболочки. Вы уже знаете об этом, но можете не знать о том, что этот новый процесс оболочки (обычно это bash) работает от имени вашего пользователя. И таким образом программа bash может обращаться ко всем файлам и директориям, владельцем которых вы являетесь. В действительности мы, как пользователи, полностью зависим от программ, выполняющих операции от нашего имени. И поскольку программы, которые вы запускаете, наследуют ваш пользовательский идентификатор, они не могут обращаться объектам файловой системы, к которым вам не предоставлен доступ. К примеру, обычные пользователи не могут напрямую изменять содержимое файла passwd потому что флаг записи отключен для всех пользователей кроме root:

Однако, обычным пользователям тоже нужно иметь возможность хотя бы опосредованно менять содержимое /etc/passwd когда им понадобится сменить пароль. Но если пользователь не может изменить этот файл, как это сделать?

К счастью, в модели прав доступа Linux имеются два специальных бита, называемых suid и sgid. Когда для запускаемой программы установлен бит suid, она будет работать от имени владельца исполняемого файла, а не от имени того, кто запустил программу. Теперь можем вернуться к вопросу с /etc/passwd. Если посмотрим на исполняемый файл passwd, увидим, что его владельцем является пользователь root:

Обратите внимание, что вместо x в триплете прав доступа владельца стоит s. Это означает что для этой конкретной программы установлены биты suid и права на запуск. По этой причине при запуске программы passwd она будет работать от имени пользователя root (со всеми правами доступа суперпользователя), а не пользователя, запустившего её. И поскольку passwd работает с правами суперпользователя, она способна редактировать /etc/passwd без каких либо сложностей.

Предупреждения о suid/sgid

Изменение suid и sgid

Способ установки и удаления битов suid и sgid чрезвычайно прост. Вот так мы задаем бит suid:

# chmod u+s /usr/bin/myapp

А в следующем примере мы снимаем флаг sgid с директории. Вы увидите, как бит sgid работает с директориями немного ниже:

# chmod g-s /home/drobbins

Права и директории

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

Если для директории задан флаг чтения, то вы можете просматривать список содержимого директории; флаг записи означает, что вы можете создавать файлы в директории; и флаг исполнения означает, что вы можете войти в директорию и обращаться ко всем поддиректориям внутри. Без флага исполнения у вас не будет доступа к объектам файловой системы внутри директории. Без флага чтения объекты файловой системы внутри директории нельзя просмотреть, но к объектам внутри директории все еще можно обратиться, если вы знаете полный путь к объекту на диске.

Директории и флаг sgid

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

# mkdir /home/groupspace
# chgrp mygroup /home/groupspace
# chmod g+s /home/groupspace

Теперь любые пользователи группы mygroup могут создавать файлы и директории внутри /home/groupspace и им также будет автоматически задана принадлежность группе mygroup. В зависимости от настроек umask для данного пользователя новые объекты файловой системы могут быть или не быть читаемыми, изменяемыми или исполняемыми другими пользователями группы mygroup.

Директории и удаление

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

Хорошая новость в том, что в Linux существует так называемый sticky бит. Когда для /tmp установлен sticky бит (командой chmod +t), единственные, кто могут удалить или переименовать файлы в /tmp — это либо владельцы этих файлов либо суперпользователь.

Неуловимый первый знак

В завершение этого раздела мы наконец обратим внимание на первый знак, используемый в численном синтаксисе. Он используется для задания битов sticky, suid и sgid:

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

# chmod 1775 /home/groupfiles

В качестве домашней работы выясните что значит 1755 в настройках прав доступа. 🙂

Перевод выполнил коллективный разум с помощью notabenoid.com. Спасибо следующим benoid-юзерам (в алфавитном порядке): kindacute, nekjine, Rich. Отдельная благодарность Алексею Блажко (blazhkoa@gmail.com), а также инициатору всей серии переводов, VBart.

Об авторах

Daniel Robbins Что значит рекурсивно в linux. Смотреть фото Что значит рекурсивно в linux. Смотреть картинку Что значит рекурсивно в linux. Картинка про Что значит рекурсивно в linux. Фото Что значит рекурсивно в linux

Дэниэль Роббинс — основатель сообщества Gentoo и создатель операционной системы Gentoo Linux. Дэниэль проживает в Нью-Мехико со свой женой Мэри и двумя энергичными дочерьми. Он также основатель и глава Funtoo, написал множество технических статей для IBM developerWorks, Intel Developer Services и C/C++ Users Journal.

Chris Houser

Крис Хаусер был сторонником UNIX c 1994 года, когда присоединился к команде администраторов университета Тэйлора (Индиана, США), где получил степень бакалавра в компьютерных науках и математике. После он работал во множестве областей, включая веб-приложения, редактирование видео, драйвера для UNIX и криптографическую защиту. В настоящий момент работает в Sentry Data Systems. Крис также сделал вклад во множество свободных проектов, таких как Gentoo Linux и Clojure, стал соавтором книги The Joy of Clojure.

Источник

Команда Chown в Linux

Chown Command in Linux (File Ownership)

В этом руководстве мы покажем вам, как использовать chown команду на практических примерах.

Что значит рекурсивно в linux. Смотреть фото Что значит рекурсивно в linux. Смотреть картинку Что значит рекурсивно в linux. Картинка про Что значит рекурсивно в linux. Фото Что значит рекурсивно в linux

Команда chown позволяет изменить владельца пользователя и / или группы для данного файла, каталога или символической ссылки.

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

Как пользоваться chown

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

В chown выражении команды принимает следующий вид:

По умолчанию в случае успеха chown не выводит никаких данных и возвращает ноль.

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

Как сменить владельца файла

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

Например, следующая команда изменит владельца файла с именем file1 на нового владельца с именем linuxize :

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

Числовой идентификатор пользователя (UID) можно использовать вместо имени пользователя. Следующий пример изменит владельца файла с именем file2 на нового владельца с UID 1000 :

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

Как изменить владельца и группу файла

Чтобы изменить владельца и группу файла, используйте chown команду, за которой следует новый владелец и группа, разделенные двоеточием ( : ) без промежуточных пробелов и целевого файла.

Следующая команда изменит владельца файла с именем file1 на нового владельца с именем linuxize и группой users :

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

Как изменить группу файла

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

Как изменить владельца символических ссылок

Скорее всего, вместо смены целевого владельца вы получите ошибку «невозможно разыменовать symlink1: Permission denied».

Как рекурсивно изменить владельца файла

Использование справочного файла

Вывод

chown утилита командной строки Linux / UNIX для изменения владельца файла и / или группы

Чтобы узнать больше о chown команде, посетите страницу руководства chown или введите man chown свой терминал.

Источник

Команда Ls в Linux (список файлов и каталогов)

ls — одна из основных команд, которую должен знать любой пользователь Linux.

Команда ls выводит список файлов и каталогов в файловой системе и показывает подробную информацию о них. Это часть пакета основных утилит GNU, который установлен во всех дистрибутивах Linux.

Эта статья покажет вам, как использовать команду ls, на практических примерах и подробных объяснениях наиболее распространенных параметров ls.

Как использовать команду ls

Синтаксис команды ls следующий:

При использовании без параметров и аргументов ls отображает список имен всех файлов в текущем рабочем каталоге :

Файлы перечислены в алфавитном порядке в столько столбцов, сколько может поместиться на вашем терминале:

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

Если пользователь, с которым вы вошли в систему, не имеет прав на чтение каталога, вы получите сообщение о том, что ls не может открыть каталог:

У команды ls есть несколько опций. В следующих разделах мы рассмотрим наиболее часто используемые варианты.

Формат длинных списков

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

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

Давайте объясним самые важные столбцы вывода.

В нашем примере rw-r—r— означает, что пользователь может читать и записывать файл, а группа и другие пользователи могут только читать файл. Цифра 1 после символов разрешения — это количество жестких ссылок на этот файл.

Oct 4 11:31 — дата и время последнего изменения файла.

Последний столбец — это имя файла.

Показать скрытые файлы

Сортировка вывода

Как мы уже упоминали, по умолчанию команда ls перечисляет файлы в алфавитном порядке.

Например, чтобы отсортировать файлы в каталоге /var по времени модификации в обратном порядке, вы должны использовать:

Рекурсивный список подкаталогов

Выводы

Команда ls отображает информацию о файлах и каталогах.

Для получения дополнительной информации о ls посетите страницу GNU Coreutils или введите man ls в свой терминал.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Источник

Как рекурсивно изменить разрешения файла в Linux

Главное меню » Linux » Как рекурсивно изменить разрешения файла в Linux

Что значит рекурсивно в linux. Смотреть фото Что значит рекурсивно в linux. Смотреть картинку Что значит рекурсивно в linux. Картинка про Что значит рекурсивно в linux. Фото Что значит рекурсивно в linux

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

Для получения дополнительной информации о правах доступа к файлам см. «Команда Umask в Linux».

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

Chmod Рекурсивный

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

Например, чтобы изменить права доступа ко всем файлам и подкаталогам 755 в каталоге /var/www/html, вы должны использовать:

Режим также можно указать с помощью символического метода:

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

Использование команды find

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

Наиболее распространенный сценарий – рекурсивное изменение разрешений для файла веб-сайта 644 и разрешений для каталога 755.

Используя числовой метод:

Используя символический метод:

Команда find выполняет поиск файлов или каталогов в папке /var/www/html и передает каждый найденный файл или каталог команде chmod для установки разрешений.

Вывод

Чтобы рекурсивно установить разрешения для файлов в зависимости от их типа, используйте chmod в сочетании с командой find.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

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

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

Для наглядного примера, создадим каталог test в каталоге /home. В каталоге /home/test создадим десять директорий и в каждой из этих директорий десять файлов с именами от A до J:

Что значит рекурсивно в linux. Смотреть фото Что значит рекурсивно в linux. Смотреть картинку Что значит рекурсивно в linux. Картинка про Что значит рекурсивно в linux. Фото Что значит рекурсивно в linux

Как можно видеть из скриншота, по умолчанию для директорий применяются права доступа rwxr-xr-x или в числовом виде 755. Для файлов, по умолчанию установлены права доступа rw-r—r— или в числовом виде 644.

Chmod рекурсивно

Команда chmod позволяет вам изменять права доступа к файлам в символьном или числовом режиме.

Например, чтобы изменить разрешения для всех файлов и подкаталогов в директории /home/test на 777 вы должны использовать:

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

Что значит рекурсивно в linux. Смотреть фото Что значит рекурсивно в linux. Смотреть картинку Что значит рекурсивно в linux. Картинка про Что значит рекурсивно в linux. Фото Что значит рекурсивно в linux

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

Использование команды Find

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

Наиболее распространенный сценарий — рекурсивное изменение разрешений для файла веб-сайта 644 и разрешений для каталога 755.

Числовой метод:

Что значит рекурсивно в linux. Смотреть фото Что значит рекурсивно в linux. Смотреть картинку Что значит рекурсивно в linux. Картинка про Что значит рекурсивно в linux. Фото Что значит рекурсивно в linux

Символьный метод:

Команда find ищет файлы или каталоги /home/test и передает каждый найденный файл или каталог команде chmod для установки разрешений.

Что значит рекурсивно в linux. Смотреть фото Что значит рекурсивно в linux. Смотреть картинку Что значит рекурсивно в linux. Картинка про Что значит рекурсивно в linux. Фото Что значит рекурсивно в linux

Чтобы рекурсивно установить разрешения для файлов в зависимости от их типа, используйте chmod в сочетании с командой find.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *