установка прав на папку в ubuntu
Ubuntu Documentation
Подробнее о типах прав, которые вы можете задать, смотрите Файлы и Папки ниже.
Файлы
You can set the permissions for the file owner, the group owner, and all other users of the system. For your files, you are the owner, and you can give yourself read-only or read-and-write permission. Set a file to read-only if you don’t want to accidentally change it.
Every user on your computer belongs to a group. On home computers, it is common for each user to have their own group, and group permissions are not often used. In corporate environments, groups are sometimes used for departments or projects. As well as having an owner, each file belongs to a group. You can set the file’s group and control the permissions for all users in that group. You can only set the file’s group to a group you belong to.
You can also set the permissions for users other than the owner and those in the file’s group.
If the file is a program, such as a script, you must select Allow executing file as program to run it. Even with this option selected, the file manager will still open the file in an application. See Исполняемые текстовые файлы for more information.
Папки
Можно задать права доступа к папкам для владельца, группы и других пользователей. Подробнее о владельцах, группах и других пользователях смотрите в описании прав доступа выше.
Права, которые можно задать для папки, отличаются от прав, которые можно задать для файла.
Пользователь даже не сможет увидеть, какие файлы содержатся в папке.
Только перечисление файлов
Пользователь сможет увидеть, какие файлы содержатся в папке, но не сможет открывать, создавать или удалять их.
Пользователь сможет открывать файлы в папке (если это позволяют права доступа к данному конкретному файлу), но не сможет удалять файлы или создавать новые файлы.
Создание и удаление файлов
Пользователь будет иметь полный доступ к папке, включая открытие, создание и удаление файлов.
Ubuntu Documentation
Candidate for Deletion
This article may not be appropriate for this wiki, and may be deleted. More info.
Содержание
Права доступа в системе Linux
Права доступа подразделяются на три типа:
чтение (read)
запись (write)
выполнение (execute)
Эти типы прав доступа могут быть предоставлены для трех классов пользователей:
остальные пользователи.
Команда chmod
Изменить права доступа к файлу может либо его владелец, либо сам root. Делается это командой chmod. Существует две формы представления прав доступа: символьная и цифровая.
Символьная форма прав доступа
Важно заметить, что права доступа, которые имеет файл, зависят также от прав доступа к каталогу, в котором этот файл находится. Например, даже если файл имеет -rwxrwxrwx, другие пользователи не смогут до него добраться, если у них не будет прав на чтение и выполнение каталога, в котором находится файл. Например, если юзер захочет ограничить доступ ко всем своим файлам, он может просто изменить права доступа своего домашнего каталога /home/user на drwx------. Таким образом, никто другой не будет иметь доступ в его каталог, а следовательно посторонним будут недоступны и все файлы. Так что, пользователь может не заботиться об индивидуальной защите своих файлов. Другими словами, чтобы иметь доступ к файлу, вы должны иметь доступ ко всем каталогам, лежащим на пути от корня к этому файлу, а также разрешение на доступ собственно к этому файлу. Обычно пользователи UNIX весьма открыты всеми своими файлами. По умолчанию файлам устанавливается защита -rw-r--r--, которая позволяет другим пользователям читать файлы, но ни коим образом их не менять. Каталогам обычно устанавливаются права доступа drwxr-xr-x, что позволяет другим пользователям ходить с правами экскурсантов по вашим каталогам, но ничего в них не трогать и не записывать.
Но многие пользователи хотят держать других подальше от своих файлов. Установив права доступа файла -rw-------, вы никому не покажете этот файл и не дадите записать в него. Также хорошо закрывает файлы защита соответствующего каталога drwx------.
С правами доступа в символьной форме chmod работает так:
Кратко, вы выбираете из all (все), user (пользователь), group (группа) или other (другие). Далее указываете, либо вы добавляете права (+), либо лишаете прав (—). И наконец, вы указываете один или несколько режимов: read, write или execute.
Числовая форма прав доступа
Теперь осталось только просуммировать числа, соответствующие тем правам доступа, которые мы хотим поставить файлу.
Примеры
Символьная форма
Дает всем пользователям право читать файл stuff.
Лишает права на выполнение всех, кроме владельца.
Разрешает владельцу все (read, write и execute).
Запрещает все (read, write и execute) пользователям категории другие (other).
все имеют право только на чтение.
Команда chown
Изменение владельца файла осуществляется командой chown, например:
Для передачи каталога надо вводить:
Команда chgroup
Изменение группы, которой принадлежит файл.
Для передачи каталога надо вводить:
FilePermissionsRu (последним исправлял пользователь ckimes 2017-09-02 05:31:46)
The material on this wiki is available under a free license, see Copyright / License for details
You can contribute to this wiki, see Wiki Guide for details
Права доступа Unix, SUID, SGID, Sticky биты
Содержание
Вступление
В Unix каждому файлу соответствует набор прав доступа, представленный в виде 9-ти битов режима. Он определяет, какие пользователи имеют право читать файл, записывать в него данные или выполнять его. Вместе с другими тремя битами, влияющими на запуск исполняемых файлов, этот набор образует код режима доступа к файлу. Двенадцать битов режима хранятся в 16-битовом поле индексного дескриптора вместе с 4-мя дополнительными битами, определяющими тип файла. Последние 4 бита устанавливаются при создании файлов и не подлежат изменению. Биты режима (далее права) могут изменяться либо владельцем файла, либо суперпользователем с помощью команды chmod.
Существует три пути управления доступом к файлу или каталогу. Было определено, что каждый файл должен иметь владельца (owner), группового владельца (group owner), а также может потребоваться доступ для всех остальных пользователей (everyone). Эти названия обычно приводятся как пользователь/группа/остальные (user/group/others) или коротко ugo. Реализация управления доступом к файлам и каталогам в Unix позволяет или запрещает доступ по трем флагам: флаг чтения (Read), флаг записи (Write), флаг выполнения (eXecute). Они представляются следующим образом:
Флаг типа (flag) может быть одним из следующих:
Права доступа
Посмотреть права доступа на объекты можно командой ls c ключем -l («л»). Также можно добавить ключ -a, для того,чтобы были отображены скрытые объекты:
Рассмотрим таблицу, чтобы было понятнее:
Для администрирования часто удобнее использовать не буквенное представление прав, а цифровое, в восьмеричном представлении (оно короче). Так, например, права на файл всем и вся, соответствуют записи 777 (что аналогично символьному представлению rwxrwxrwx).
Существуют также специальные биты, такие как SUID, SGID и Sticky-бит. SUID, SGID влияют на запуск файла, а Sticky влияет на определение владельца объектов в каталоге. При их применении необходимо использовать не три восьмеричных цифры, а 4. Зачастую, в различной технической литературе права обозначаются именно 4-мя цифрами, например 0744. Многие стараются не использовать специальные биты, сетуя на безопасность (и не без основательно), но, в некоторых ситуациях без них не обойтись. Поговорим о них несколько позже.
Давайте рассмотрим пример, итак:
Восьмеричное обозначение прав для файла pro_ubuntu.zip: 0700.
Для второй строки (это каталог, о чем свидетельствует флаг «d»), по аналогии:
Восьмеричное обозначение в этом примере: 0755.
На практике для каталогов используется только три режима: 7 (rwx), 5 (r-x) и 0 (—).
Но не надо думать, что такой каталог полноценно заменяет крипто-контейнер (т.е. может использоваться для хранения очень секретных данных). Да, имен объектов из такого каталога никак не получить, однако если попытаться создать объект с именем, которое уже существует, то такая операция закончится неудачей (т.е. мы получим подтверждение, что такое имя уже есть). Так же можно пытаться открыть (как файл или как каталог) объект с произвольным именем, если такого имени нет, то мы получим ошибку. Безусловно имя может быть очень длинным и шансы угадать его могут быть не велики, но не надо забывать, что права доступа могут сменить как владелец каталога так root. Да и пути доступа могут сохраниться в различных логах и файлах истории.
Команда chmod
Права устанавливаются командой chmod. Команда chmod поддерживает установку прав как в восьмеричном представлении, так и в символьном (маска режима доступа).
Синтаксис команды прост:
chmod
Опции
Из самых полезных и часто используемых опций можно выделить одну:
Права
Права можно записывать как в восьмеричном представлении так и в символьном. В восьмеричном представлении, для стандартных прав, указываются 3 восьмеричные цифры (1-я для владельца, 2-я для группы, 3-я для всех остальных. См. таблицу выше).
Для назначения прав используются три знака: минус, плюс или равно:
Использование символьного представления позволяет редактировать права файлов более гибко:
Символьное назначение окажет неоценимую услугу, если требуется добавить права на объект к уже существующим правам.
Массовое назначение прав
Иногда, бывает, нужно массово установить права на определенный тип объектов, например, только на каталоги или только на файлы. Простое использование опции -R (рекурсия) здесь не поможет т.к. chmod будет проходить по всем объектам удовлетворяющим маске, что иногда вовсе не то, что нужно.
Итак, чтобы массово установить права на определенный тип объектов можно использовать один из вариантов (вообще, их очень много):
Более длинный вариант аналогичной операции:
Биты SUID, SGID и Sticky
Если при создании пользователя основная группа не указана явно, то основной группой пользователя будет группа с тем же именем, что и имя пользователя. Например:
Что касается процессов, то с ними связано не два идентификатора, а 4-е: реальный и эффективный пользовательский (UID), а также реальный и эффективный групповой (GID). Реальные номера применяются для учета использования системных ресурсов, а эффективные для определения прав доступа к процессам. Как правило, реальные и эффективные идентификаторы совпадают. Владелец процесса может посылать ему сигналы, а также изменять приоритет.
Вобщем, одним словом установка битов SUID или SGID позволит пользователям запускать исполняемые файлы от имени владельца (или группы) запускаемого файла. Например, как говорилось выше, команду chmod по умолчанию может запускать только root. Если мы установим SUID на исполняемый файл /bin/chmod, то обычный пользователь сможет использовать эту команду без использования sudo, так, что она будет выполнятся от имени пользователя root. В некоторых случаях очень удобное решение. Кстати по такому принципу работает команда passwd, c помощью которой пользователь может изменить свой пароль.
Однако, в системе FreeBSD, если скомпилировать ядро с поддержкой suiddir, а так же смонтировать раздел с этой опцией, то, все объекты создаваемые в каталоге где установлен SUID будут иметь владельца этого каталога (наследование). Реализация подобного в Linux возможна (?) на файловой системе GFS2. Данная функция считается уязвимостью.
Установить SUID и SGID можно командой chmod:
Как дать права на папку пользователю Linux
Система прав доступа к файлам и папкам в Linux организована очень интересно. Права разделяются на три категории: права владельца, права группы файла и права всех остальных. Прочитать подробнее про права в Linux можно в отдельной статье.
Иногда возникает необходимость дать определенному пользователю или программе возможность доступа к папке. На первый взгляд, это может показаться сложным, но решается все довольно просто. В этой статье мы разберем как дать права на папку пользователю Linux.
Права пользователя на папку Linux
Как я уже сказал, права делятся на три категории для владельца, для группы и для всех остальных. Таким образом, мы можем дать пользователю доступ к папке несколькими способами:
Теперь давайте разберем как это реализуется на практике. Допустим, у нас есть папка /storage, владельцем которой является пользователь /root:
У папки такие права, что записывать в нее данные может только root, а другие пользователи могут их только смотреть. Нам надо предоставить к ней доступ на запись и чтение пользователю sergiy. Сейчас у него такого доступа нет:
Давайте создадим группу storage и добавим в нее пользователя sergiy:
Смотрим список групп нашего пользователя:
После добавления пользователя в группу нужно перелогиниться, чтобы система увидела это изменение. Затем меняем группу нашей папки на storage:
sudo chgrp storage /storage
Если нужно дать права на папку в Linux еще какому-нибудь пользователю, то достаточно добавить его в эту группу. Посмотрим список пользователей группы:
Теперь наша папка выглядит вот так:
Осталось подправить права для группы, нужно дать разрешение на чтение и запись:
Затем пользователь sergiy сможет записывать и читать файлы из этой папки, а все остальные пользователи только читать.
Выводы
Права доступа к файлам в Linux
И это очень важно, потому что локальный доступ к файлам для всех программ и всех пользователей позволил бы вирусам без проблем уничтожить систему. Но новым пользователям могут показаться очень сложными новые права на файлы в linux, которые очень сильно отличаются от того, что мы привыкли видеть в Windows. В этой статье мы попытаемся разобраться в том как работают права файлов в linux, а также как их изменять и устанавливать.
Основные права доступа к файлам в Linux
Изначально каждый файл имел три параметра доступа. Вот они:
Но все эти права были бы бессмысленными, если бы применялись сразу для всех пользователей. Поэтому каждый файл имеет три категории пользователей, для которых можно устанавливать различные сочетания прав доступа:
Именно с помощью этих наборов полномочий устанавливаются права файлов в linux. Каждый пользователь может получить полный доступ только к файлам, владельцем которых он является или к тем, доступ к которым ему разрешен. Только пользователь Root может работать со всеми файлами независимо от их набора их полномочий.
Но со временем такой системы стало не хватать и было добавлено еще несколько флагов, которые позволяют делать файлы не изменяемыми или же выполнять от имени суперпользователя, их мы рассмотрим ниже:
Специальные права доступа к файлам в Linux
Для того, чтобы позволить обычным пользователям выполнять программы от имени суперпользователя без знания его пароля была придумана такая вещь, как SUID и SGID биты. Рассмотрим эти полномочия подробнее.
Теперь давайте рассмотрим как посмотреть и изменить права на файлы в Linux.
Как посмотреть права доступа к файлам в Linux
Чтобы узнать права на файл linux выполните такую команду, в папке где находится этот файл:
За права файлов в linux тут отвечают черточки. Первая это тип файла, который рассмотрен в отдельной статье. Дальше же идут группы прав сначала для владельца, для группы и для всех остальных. Всего девять черточек на права и одна на тип.
Рассмотрим подробнее, что значат условные значения флагов прав:
Как изменить права файла в Linux
Чтобы изменить права на файл в linux вы можете использовать утилиту chmod. Она позволяет менять все флаги, включая специальные. Рассмотрим ее синтаксис:
$ chmod опции категория действие флаг файл
Категория указывает для какой группы пользователей нужно применять права, как вы помните доступно только три категории:
chmod ugo+rwx test5
Или заберем все права у группы и остальных пользователей:
Дадим группе право на чтение и выполнение:
Остальным пользователям только чтение:
Для файла test6 установим SUID:
Посмотрим что получилось:
Как видите, изменить права на файл в Linux очень просто. К тому же вы можете изменить основные права с помощью файлового менеджера.
Выводы
Вот и все, теперь вы знаете не только что такое права доступа к файлам в Linux, но и как их посмотреть, и даже как их изменить. Это очень важная тема, в которой действительно стоит разобраться новичкам, чтобы использовать свою систему более полноценно. Если у вас остались вопросы, спрашивайте в комментариях!
На завершение хочу предложить неплохое видео про права доступа в Linux: