Смена прав linux
Смена прав linuxСкачать файл - Смена прав linux
Механизмы разграничения доступа, разработанные для системы UNIX в х годах возможно, впрочем, они предлагались кем-то и раньше , очень просты, но они оказались настолько эффективными, что просуществовали уже более 30 лет и по сей день успешно выполняют стоящие перед ними задачи. В основе механизмов разграничения доступа лежат имена пользователей и имена групп пользователей. Вы уже знаете, что в Linux каждый пользователь имеет уникальное имя, под которым он входит в систему логируется. Кроме того, в системе создается некоторое число групп пользователей, причем каждый пользователь может быть включен в одну или несколько групп. Создает и удаляет группы суперпользователь, он же может изменять состав участников той или иной группы. Члены разных групп могут иметь разные права по доступу к файлам, например, группа администраторов может иметь больше прав, чем группа программистов. В индексном дескрипторе каждого файла записаны имя так называемого владельца файла и группы, которая имеет права на этот файл. Первоначально, при создании файла его владельцем объявляется тот пользователь, который этот файл создал. Владельца и группу файла можно поменять в ходе дальнейшей работы с помощью команд chown и chgrp подробнее о них будет сказано чуть позже. Теперь давайте еще раз выполним команду ls -l. Но зададим ей в качестве дополнительного параметра имя конкретного файла, например, файла, задающего саму команду ls. Вы видите, что в данном случае владельцем файла является пользователь root и группа root. Но нас сейчас в выводе этой команды больше интересует первое поле, определяющее тип файла и права доступа к файлу. Это поле в приведенном примере представлено цепочкой символов -rwxr-xr-x. Эти символы можно условно разделить на 4 группы. Первая группа, состоящая из единственного символа, определяет тип файла. Этот символ в соответствии с возможными типами файлов, рассмотренными в предыдущем разделе, может принимать такие значения:. Далее следуют три группы по три символа, которые и определяют права доступа к файлу соответственно для владельца файла, для группы пользователей, которая сопоставлена данному файлу, и для всех остальных пользователей системы. В нашем примере права доступа для владельца определены как rwx, что означает, что владелец root имеет право читать файл r , производить запись в этот файл w , и запускать файл на выполнение x. Замена любого из этих символов прочерком будет означать, что пользователь лишается соответствующего права. В том же примере мы видим, что все остальные пользователи включая и тех, которые вошли в группу root лишены права записи в этот файл, т. Вообще говоря, права доступа и информация о типе файла в UNIX-системах хранятся в индексных дескрипторах в отдельной структуре, состоящей из двух байтов, т. Четыре бита из этих ти отведены для кодированной записи о типе файла. Следующие три бита задают особые свойства исполняемых файлов, о которых мы скажем чуть позже. И, наконец, оставшиеся 9 бит определяют права доступа к файлу. Эти 9 бит разделяются на 3 группы по три бита. При этом, если соответствующий бит имеет значение 1, то право предоставляется, а если он равен 0, то право не предоставляется. В символьной форме записи прав единица заменяется соответствующим символом r, w или x , а 0 представляется прочерком. Право на чтение r файла означает, что пользователь может просматривать содержимое файла с помощью различных команд просмотра, например, командой more или с помощью любого текстового редактора. Но, подредактировав содержимое файла в текстовом редакторе, вы не сможете сохранить изменения в файле на диске, если не имеете права на запись w в этот файл. Право на выполнение x означает, что вы можете загрузить файл в память и попытаться запустить его на выполнение как исполняемую программу. Конечно, если в действительности файл не является программой или скриптом shell , то запустить этот файл на выполнение не удастся, но, с другой стороны, даже если файл действительно является программой, но право на выполнение для него не установлено, то он тоже не запустится. Вот мы и узнали , какие файлы в Linux являются исполняемыми! Как видите, расширение имени файла тут не при чем, все определяется установкой атрибута 'исполняемый', причем право на исполнение может быть предоставлено не всем! Если выполнить ту же команду ls -l , но в качестве последнего аргумента ей указать не имя файла, а имя каталога, мы увидим, что для каталогов тоже определены права доступа, причем они задаются теми же самыми символами rwx. Естественно, что по отношению к каталогам трактовка понятий 'право на чтение', 'право на запись' и 'право на выполнение' несколько изменяется. Следовательно, если вы имеете право на чтение каталога, то вы можете просматривать его содержимое этот самый список файлов в каталоге. Право на выполнение интуитивно менее понятно. Оно в данном случае означает право переходить в этот каталог. Если вы, как владелец, хотите дать доступ другим пользователям на просмотр какого-то файла в своем каталоге, вы должны дать им право доступа в каталог, т. Более того, надо дать пользователю право на выполнение для всех каталогов, стоящих в дереве выше данного каталога. Поэтому в принципе для всех каталогов по умолчанию устанавливается право на выполнение как для владельца и группы, так и для всех остальных пользователей. И, уж если вы хотите закрыть доступ в каталог, то лишите всех пользователей включая группу права входить в этот каталог. Только не лишайте и себя такого права, а то придется обращаться к суперпользователю! После прочтения предыдущего абзаца может показаться, что право на чтение каталога не дает ничего нового по сравнению с правом на выполнение. Однако разница в этих правах все же есть. Если задать только право на выполнение, вы сможете войти в каталог, но не увидите там ни одного файла этот эффект особенно наглядно проявляется в том случае, если вы пользуетесь каким-то файловым менеджером, например, программой Midnight Commander. Если вы имеете право доступа в каком-то из подкаталогов этого каталога, то вы можете перейти в него командой cd , но, как говорится 'вслепую', по памяти, потому что списка файлов и подкаталогов текущего каталога вы не увидите. Алгоритм проверки прав пользователя при обращении к файлу можно описать следующим образом. Система вначале проверяет, совпадает ли имя пользователя с именем владельца файла. Если эти имена совпадают т. Если право такое есть, то соответствующая операция разрешается. Если же нужного права владелец не имеет, то проверка прав, предоставляемых через группу или через группу атрибутов доступа для остальных пользователей, уже даже не проверяются, а пользователю выдается сообщение о невозможности выполнения затребованного действия обычно что-то вроде 'Permission denied'. Если имя пользователя, обращающегося к файлу, не совпадает с именем владельца, то система проверяет, принадлежит ли владелец к группе, которая сопоставлена данному файлу далее будем просто называть ее группой файла. Если принадлежит, то для определения возможности доступа к файлу используются атрибуты, относящиеся к группе, а на атрибуты для владельца и всех остальных пользователей внимания не обращается. Если же пользователь не является владельцем файла и не входит в группу файла, то его права определяются атрибутами для остальных пользователей. Таким образом, третья группа атрибутов, определяющих права доступа к файлу, относится ко всем пользователям, кроме владельца файла и пользователей, входящих в группу файла. Для изменения прав доступа к файлу используется команда chmod. Ее можно использовать в двух вариантах. В первом варианте вы должны явно указать, кому какое право даете или кого этого права лишаете:. Вот несколько примеров использования команды chmod:. Если опустить указание на то, кому предоставляется данное право, то подразумевается, что речь идет вообще обо всех пользователях, т. Второй вариант задания команды chmod он используется чаще основан на цифровом представлении прав. Для того, чтобы предоставить пользователям какой-то набор прав, надо сложить соответствующие цифры. Получив, таким образом, нужные цифровые значения для владельца файла, для группы файла и для всех остальных пользователей, задаем эти три цифры в качестве аргумента команды chmod ставим эти цифры после имени команды перед вторым аргументом, который задает имя файла. Если вы знакомы с двоичным кодированием восьмеричных цифр, то вы поймете, что цифры после имени команды в этой форме ее представления есть не что иное, как восьмеричная запись тех самых 9 бит, которые задают права для владельца файла, группы файла и для всех пользователей. Выполнять смену прав доступа к файлу с помощью команды chmod может только сам владелец файла или суперпользователь. Для того, чтобы иметь возможность изменить права группы, владелец должен дополнительно быть членом той группы, которой он хочет дать права на данный файл. Чтобы завершить рассказ о правах доступа к файлам, надо рассказать еще о трех возможных атрибутах файла, устанавливаемых с помощью той же команды chmod. Это те самые атрибуты для исполняемых файлов, которые в индексном дескрипторе файла в двухбайтовой структуре, определяющей права на файл, занимают позиции , сразу после кода типа файла. Смысл этого бита состоит в следующем. Обычно, когда пользователь запускает некоторую программу на выполнение, эта программа получает те же права доступа к файлам и каталогам, которые имеет пользователь, запустивший программу. Если же установлен 'бит смены идентификатора пользователя', то программа получит права доступа к файлам и каталогам, которые имеет владелец файла программы таким образом, рассматриваемый атрибут лучше называть 'битом смены идентификатора владельца'. Это позволяет решать некоторые задачи, которые иначе было бы трудно выполнить. Поэтому программы, запущенные обычными пользователями, в том числе команда passwd , не могут производить запись в этот файл. А, значит, пользователь как бы не может менять свой собственный пароль. Установить 'бит смены идентификатора владельца' может суперпользователь с помощью команды. Этот бит указывает системе, что после завершения программы надо сохранить ее в оперативной памяти. Удобно включить этот бит для задач, которые часто вызываются на выполнение, так как в этом случае экономится время на загрузку программы при каждом новом запуске. Этот атрибут был необходим на старых моделях компьютеров. На современных быстродействующих системах он используется редко. Если используется цифровой вариант задания атрибутов в команде chmod , то цифровое значение этих атрибутов должно предшествовать цифрам, задающим права пользователя:. При этом веса этих битов для получения нужного суммарного результата задаются следующим образом:. Если какие-то из этих трех битов установлены в 1, то несколько изменяется вывод команды ls -l в части отображения установленных атрибутов прав доступа. Если установлен в 1 'бит смены идентификатора пользователя', то символ 'x' в группе, определяющей права владельца файла, заменяется символом 's'. Причем, если владелец имеет право на выполнение файла, то символ 'x' заменяется на маленькое 's', а если владелец не имеет права на выполнение файла например, файл вообще не исполняемый , то вместо 'x' ставится 'S'. Аналогичные замены имеют место при задании 'бита смены идентификатора группы', но заменяется символ 'x' в группе атрибутов, задающих права группы. Если равен 1 'бит сохранения задачи sticky bit ', то заменяется символ 'x' в группе атрибутов, определяющей права для всех остальных пользователей, причем 'x' заменяется символом 't', если все пользователи могут запускать файл на выполнение, и символом 'T', если они такого права не имеют. Таким образом, хотя в выводе команды ls -l не предусмотрено отдельных позиций для отображения значений битов смены идентификаторов и бита сохранения задачи, соответствующая информация выводится. Вот небольшой пример того, как это будет выглядеть:. Ru разрешается в любой форме, при этом обязательна ссылка на www. Аккаунт Магазин Услуги Партнерам Новости Библиотека Вакансии Контакты Обучение RedHat GeekTV. Ваша корзина Корзина пуста E-mail Пароль Забыли пароль? Интернет-магазин Программное обеспечение Дистрибутивы 1С: Наши магазины Наши партнеры Магазины партнеров. ПАРТНЕРАМ Информация для партнеров Оптовым покупателям Владельцам сайтов. Дистрибутивы Acronis ALT Linux Arch Linux ASPLinux CentOS Debian Dr. Web Eclipse Fedora FreeBSD Freespire Gentoo Knoppix Linbox Rescue Server LinuxWizard Mandriva MeeGo NetBSD OpenBSD OpenOffice RedHat Runtu Scientific Slackware Solaris StoneGate SUSE Ubuntu VMware WINE Etersoft Китеж МСВСфера. Помощь Как заказать Как оформить Как оплатить. Новостной канал Calculate Linux Мы принимаем к оплате. Права доступа к файлам и каталогам. Права доступа к файлам и каталогам Глава 4. Знакомство с файловой системой ext2fs Предыдущий раздел Оглавление Следующий раздел 4. Этот символ в соответствии с возможными типами файлов, рассмотренными в предыдущем разделе, может принимать такие значения: В первом варианте вы должны явно указать, кому какое право даете или кого этого права лишаете: Вот несколько примеров использования команды chmod: Если используется цифровой вариант задания атрибутов в команде chmod , то цифровое значение этих атрибутов должно предшествовать цифрам, задающим права пользователя: Вот небольшой пример того, как это будет выглядеть: Костромин kos at rus-linux dot net - 4. Список разделов Презентации Книги и руководства Linux для пользователя Разработка программного обеспечения для Linux. Аккаунт Новости Магазин Услуги Библиотека Партнерам О проекте Контакты aba linuxcenter. Права доступа к файлам и каталогам 4. Знакомство с файловой системой ext2fs Предыдущий раздел.
права доступа на папку
В Unix каждому файлу соответствует набор прав доступа, представленный в виде 9-ти битов режима. Он определяет, какие пользователи имеют право читать файл, записывать в него данные или выполнять его. Вместе с другими тремя битами, влияющими на запуск исполняемых файлов, этот набор образует код режима доступа к файлу. Двенадцать битов режима хранятся в битовом поле индексного дескриптора вместе с 4-мя дополнительными битами, определяющими тип файла. Последние 4 бита устанавливаются при создании файлов и не подлежат изменению. Биты режима далее права могут изменяться либо владельцем файла, либо суперпользователем с помощью команды chmod. Существует три пути управления доступом к файлу или каталогу. Было определено, что каждый файл должен иметь владельца owner , группового владельца group owner , а также может потребоваться доступ для всех остальных пользователей everyone. Реализация управления доступом к файлам и каталогам в Unix позволяет или запрещает доступ по трем флагам: Они представляются следующим образом:. Также можно добавить ключ -a , для того,чтобы были отображены скрытые объекты:. Для назначения прав используются три группы флагов, первая определяет права для владельца, вторая - права для основной группы пользователя, третья - для всех остальных пользователей в системе. Для каталогов, флаги r w x имеют несколько отличный смысл: Для администрирования часто удобнее использовать не буквенное представление прав, а цифровое, в восьмеричном представлении оно короче. Так, например, права на файл всем и вся, соответствуют записи что аналогично символьному представлению rwxrwxrwx. Существуют также специальные биты, такие как SUID , SGID и Sticky -бит. SUID , SGID влияют на запуск файла, а Sticky влияет на определение владельца объектов в каталоге. При их применении необходимо использовать не три восьмеричных цифры, а 4. Зачастую, в различной технической литературе права обозначаются именно 4-мя цифрами, например Многие стараются не использовать специальные биты, сетуя на безопасность и не без основательно , но, в некоторых ситуациях без них не обойтись. Поговорим о них несколько позже. Для полноценного просмотра каталога, необходимы права на чтение каталога и доступ к файлам, а главное к их атрибутам, то есть минимальные разумные права на каталог - 5 r-x. Прав 4 r— хватит только на просмотр имен файлов, без атрибутов, то есть не будут известны размер файла, права доступа, владелец. На практике для каталогов используется только три режима: Очень любопытный режим доступа к каталогу - 3 -wx: В каталоге с режимом доступа 3 -wx можно создавать новые, переименовывать и удалять файлы и каталоги если вы знаете их имя ; читать, изменять, запускать файл если достаточно на него прав, и опять же - вы знаете его имя. Можно даже менять права доступа на файлы и каталоги если вы знаете имя. Но не надо думать, что такой каталог полноценно заменяет крипто-контейнер то есть может использоваться для хранения очень секретных данных. Да, имен объектов из такого каталога никак не получить, однако если попытаться создать объект с именем, которое уже существует, то такая операция закончится неудачей то есть мы получим подтверждение, что такое имя уже есть. Так же можно пытаться открыть как файл или как каталог объект с произвольным именем, если такого имени нет, то мы получим ошибку. Безусловно имя может быть очень длинным и шансы угадать его могут быть не велики, но не надо забывать, что права доступа могут сменить как владелец каталога так root. Да и пути доступа могут сохраниться в различных логах и файлах истории. Права устанавливаются командой chmod. Команда chmod поддерживает установку прав как в восьмеричном представлении, так и в символьном маска режима доступа. Права можно записывать как в восьмеричном представлении так и в символьном. В восьмеричном представлении, для стандартных прав, указываются 3 восьмеричные цифры 1-я для владельца, 2-я для группы, 3-я для всех остальных. Другой способ назначения прав - это использование маски режима доступа символьное представление. Помимо прав задается еще кому мы собираемся эти права выставлять:. Символьное назначение окажет неоценимую услугу, если требуется добавить права на объект к уже существующим правам. Unix отслеживает не символьные имена владельцев и групп, а их идентификаторы UID - для пользователей и GID для групп. Символьные эквиваленты идентификаторов используются только для удобства, например, при использовании команды ls , идентификаторы заменяются соответствующими символьными обозначениями. Если при создании пользователя основная группа не указана явно, то основной группой пользователя будет группа с тем же именем, что и имя пользователя. Что касается процессов, то с ними связано не два идентификатора, а 4-е: Реальные номера применяются для учета использования системных ресурсов, а эффективные для определения прав доступа к процессам. Как правило, реальные и эффективные идентификаторы совпадают. Владелец процесса может посылать ему сигналы, а также изменять приоритет. Процесс не может явно изменить ни одного из своих четырех идентификаторов, но есть ситуации когда происходит косвенная установка новых эффективных идентификаторов процесса. Дело в том, что существуют два специальных бита: SUID Set User ID - бит смены идентификатора пользователя и SGID Set Group ID - бит смены идентификатора группы. Когда пользователь или процесс запускает исполняемый файл с установленным одним из этих битов, файлу временно назначаются права его файла владельца или группы в зависимости от того, какой бит задан. Таким образом, пользователь может даже запускать файлы от имени суперпользователя. Вобщем, одним словом установка битов SUID или SGID позволит пользователям запускать исполняемые файлы от имени владельца или группы запускаемого файла. Например, как говорилось выше, команду chmod по умолчанию может запускать только root. В некоторых случаях очень удобное решение. Кстати по такому принципу работает команда passwd , c помощью которой пользователь может изменить свой пароль. Если установить SGID для каталога, то все файлы созданные в нем при запуске будут принимать идентификатор группы каталога, а не группы владельца, который создал файл в этом каталоге. Одним словом, если пользователь поместил исполняемый файл в такой каталог, запустив его, процесс запустится от имени владельца группы каталога, в котором лежит этот файл. Однако, в системе FreeBSD, если скомпилировать ядро с поддержкой suiddir , а так же смонтировать раздел с этой опцией, то, все объекты создаваемые в каталоге где установлен SUID будут иметь владельца этого каталога наследование. Реализация подобного в Linux возможна? Данная функция считается уязвимостью. Регистр символа только лишь дает дополнительную информацию об исходных установках, то есть был ли до установки SGID установлен бит, в данном случае на выполнение rwxrw s rwx. Если s строчная, то права на выполнение у группы этого файла были до установки SGID. Если S прописная, то группа для этого файла ранее не имела прав на выполнение до установки SGID. Еще одно важное усовершенствование касается использования sticky-бита в каталогах. Другие пользователи лишаются права удалять файлы. Sticky-бит каталога, в отличие от sticky-бита файла, остается в каталоге до тех пор, пока владелец каталога или суперпользователь не удалит каталог явно или не применит к нему chmod. Заметьте, что владелец может удалить sticky-бит , но не может его установить. Установить sticky-бит на каталог можно используя команду chmod:. Видно, что sticky-бит установлен на каталоге allex , а также на файле qwert , о чем свидетельствует символ t. Строчная буква отображается в том случае, если перед установкой sticky bit произвольный пользователь уже имел право на выполнение х , а прописная Т — если такого права у него не было. Конечный результат один и тот же, но регистр символа дает дополнительную информацию об исходных установках. Итак, использование sticky позволяет реализовать, например, т. Пользователи смогут писать файлы в такие каталоги, но не смогут удалять чужие файлы. Очевидно, что использование стандартных прав Unix недостаточно при реализации сложных схем доступа. Они не так гибки как хотелось бы. Даже используя различные биты доступа в сочетании со стандартными правами, желаемого эффекта в большинстве случаев не добиться. В больших сетях, с многоуровневыми схемами доступа применяется более гибкая реализация назначения прав, именуемая как ACL - Списки контроля доступа. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd. Сайт Форум Документация Пользовательская документация Семейство Ubuntu Материалы для загрузки Совместимость с оборудованием. Права доступа Unix, SUID, SGID, Sticky биты. Биты SUID, SGID и Sticky. Поддерживаемые версии Ubuntu Все теоретически. Они представляются следующим образом: Флаг Описание - Отсутствие флага l - лат. Также можно добавить ключ -a , для того,чтобы были отображены скрытые объекты: Рассмотрим таблицу, чтобы было понятнее: OCT BIN Mask Права на файл Права на каталог 0 - - - отсутствие прав отсутствие прав 1 - - x права на выполнение доступ к файлам и их атрибутам 1 2 - w - права на запись отсутствие прав 3 - w x права на запись и выполнение все, кроме доступа к именам файлов 2 4 r - - права на чтение только чтение имен файлов 5 r - x права на чтение и выполнение чтение имен файлов и доступ файлам и их атрибутам 3 6 r w - права на чтение и запись только чтение имен файлов 7 r w x полные права все права. Следующие три символа rwx обозначают права для владельца файла, в данном случае полные права для пользователя allexserv. Следующие три - - - - определяют права для группы nogroup , в нашем примере для всех пользователей группы nogroup доступ запрещен. Ну и последние три символа - - - определяют права для всех остальных пользователей, в нашем случае доступ запрещен. Для группы nogroup - права на листинг каталога и доступ к файлам r-x. Из самых полезных и часто используемых опций можно выделить одну: Восьмеричные значения для SUID и SGID - и Администрирование , система , Права доступа. Узнать имена файлов в каталоге - нет никакой возможности. Многие современные ядра попросту игнорируют sticky на файле. На файлах он использовался на старых системах с малой ОЗУ и был очень важен в те времена. Он запрещал выгрузку программ из памяти. Показать исходный текст История страницы Ссылки сюда Media Manager Все страницы Недавние изменения.
Терминал Linux. Права доступа к каталогам и файлам в Linux, команды chmod и chown.
Сколько нужно принять валерьянки