как в символьной форме убрать возможность запускать файл всем кроме хозяина файла

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

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

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

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

Изменить владельца папки/файла имеет возможность специальный пользователь root. Для этих целей наиболее часто используется команда chown, но как вариант возможно и через команду find.

chown [владелец] [путь к папке/файлу]

Например, изменим владельца на maria для файла newdata.txt

chown maria /orders/newdata.txt

chown [:группа] [путь к папке/файлу]

chown [владелец:группа] [путь к папке/файлу]

Изменение прав доступа для файлов и каталогов

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

В таком случае общий синтаксис команды chmod:

chmod [пользователь(и)_оператор_права] [путь к папке/файлу]

Пример 1, уберем для группы пользователей (group, g) право на чтение (read, r) файла newdata.txt

chmod g-r /orders/newdata.txt

Пример 2, установим права на запись (write, w) для всех типов пользователей для файла newdata.txt

chmod ugo+w /orders/newdata.txt

Пример 3, установим аналогичные права для группы и других пользователей системы для файла newdata.txt

chmod g=o /orders/newdata.txt

Пример 4, убираем у всех пользователей право на чтение файла newdata.txt.

chmod a-r /orders/newdata.txt

При числовом указании прав синтаксис похож:

Источник

Права доступа 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:

Источник

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

      Источник

      Как в символьной форме убрать возможность запускать файл всем кроме хозяина файла

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

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

      Просмотр прав доступа на файлы и каталоги в Linux.

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

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

      Для того, чтобы просмотреть права доступа на файлы и каталоги в нужной директории, переходим в неё и выполняем команду:

      У нас будет выведено следующее сообщение в терминале:

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

      Слева отображены права доступа на файл и директорию вида:

      Чуть ниже подробно разберём это «непонятную» надпись, а пока двигаемся дальше.

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

      Вот как это выглядит:

      Для того, чтобы просмотреть права доступа на определенный каталог, вводим следующую команду:

      Выглядит это следующим образом:

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

      либо ввести каталог:

      Выглядит это следующим образом:

      Расшифровка «символьной формы» прав доступа на каталоги и файлы в Linux.

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

      Будем использовать в качестве примера в этом пункте.

      Это символьная форма прав доступа в Linux. Давайте разберем её подробно.

      Данное сообщение состоит из 10 символов.

      Первый символ обозначает тип данных.

      Данный символ может быть следующим:

      В большинстве случаев это будет:

      обычный файл;
      dдиректория/каталог/папка (directory);
      lсимволическая ссылка (link).

      Но может быть следующим:

      bфайл блочного устройства (block);
      cфайл символьного устройства;
      sдоменное гнездо (socket);
      pименованный канал (pipe).

      Следовательно, в нашем случае это директория (каталог, папка).

      Следующие 9 символов обозначают права доступа.

      Данные 9 символов состоят из трех групп:

      У этих трёх групп одинаковая комбинация символов, то есть:

      Что же они обозначают?

      Очень легко запомнить:

      rread, то есть, право доступа на чтение файла или директории.
      wwrite, то есть, право на изменение и удаление файла или директории.
      xeXecute, то есть, право на запуск файла как программы или вход в директорию.

      Всегда располагаются в таком порядке:

      Если вместо какого-то символа идёт тире (минус), к примеру:

      то это значит, что отсутствуют права на изменение и удаление файла или директории.

      то это обозначает, что отсутствуют права на изменение и запуск файла или директории. Доступен только просмотр.

      Таким образом, из нашего примера:

      Как видите, ничего сложного нет.

      Определение владельца и группы файла или директории.

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

      Те же самые команды из первого пункта:

      Как видно на скриншоте:

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

      В Nautilus (файловом менеджере Ubuntu), можно нажать правой кнопкой мыши на файле, открыть свойства, перейти на вкладку «Права» и увидеть:

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

      Подробно разобрали просмотр прав доступа на файлы и каталоги Linux.

      Теперь приступим к их изменению в терминале.

      Изменение прав доступа на файлы и каталоги в Linux в символьном режиме.

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

      Вместо persons нужно использовать совокупность символов или один из:

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

      Вместо Operator, может быть один из следующих символов:

      +«плюс», добавляем нужные права.
      «минус», удаляем нужные права.
      =«равно», устанавливаем нужные права.

      Этот символ обозначает оператор, от которого зависит, будут ли добавлены, удалены или установлены нужные права, которые последуют за оператором.

      Вместо Rights перечисляем символы прав доступа:

      Здесь идёт цепочка из трёх перечисленных символов, но в определённом порядке rwx. Но при этом, не нужно указывать тире для пропуска. Примеры: rwx, rw, wx, rx, r, w, x.

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

      То есть, если нужно изменить права всех файлов и папок внутри указанной нами директории, то после chmod просто указываем параметр -R. Выглядит это следующим образом:

      Важно.

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

      Приступим к практике. Разберём примеры.

      1. Убираем права для группы на изменение файла:

      2. Убираем права на чтение у группы и всех остальных:

      3. Добавим для группы права на чтение и изменение:

      4. Изменим рекурсивно права на файлы и директории внутри нужной директории. Отменим, к примеру, все права у остальных пользователей и групп:

      Вы, наверное, зачастую видели команду:

      Это значит, что мы даём права на выполнение данного файла как программы всем.

      Это аналогично следующим командам:

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

      Изменение прав доступа на файлы и каталоги в абсолютном режиме.

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

      Думаю, что многие из вас видели на форумах или сайтах о Linux советы по изменению прав, вида:

      Вы их выполняли в терминале. А многие из вас задумывались, что это за «магические цифры». Но на самом деле никакая это не магия.

      Давайте разберем, что же значат эти цифры.

      Итак, у нас есть комбинация прав доступа на директорию:

      А теперь делим на группы:

      Теперь преобразуем в двоичном виде наши права доступа:

      Следовательно, наша комбинация будет выглядеть следующим образом:

      А теперь переведем из двоичной в восьмеричную систему исчисления:

      Вот и получили наше «магическое» число 775.

      Более проще запомнить:

      rэто 4
      wэто 2
      xэто 1

      Каждая цифра обозначает определенную группу:

      Просто прибавляем цифры. К примеру, нам нужно чтение r и изменение w. Прибавляем 4+2, получаем 6.

      Если хотим выдать полные права только владельцу файла, а остальным убрать все:

      Вот так меняются права в абсолютном (числовом) режиме.

      Изменение владельца и группы файла или каталога.

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

      Используется следующий шаблон выполнения данной команды chown:

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

      Если хотим изменить только владельца, то шаблон следующий:

      В принципе, ничего сложного.

      Чтобы узнать имя текущего пользователя, используется команда:

      Чтобы узнать в каких группах состоит текущий пользователь:

      Получить список пользователей:

      Получить группы конкретного пользователя (вместо user_name ввести имя пользователя):

      Давайте сменим владельца у файла на root:

      Вот таким образом меняются владельцы и группы.

      Источник

      Как в символьной форме убрать возможность запускать файл всем кроме хозяина файла

      ls
      итого 24
      -rw-r—r— 1 root root 31 окт 28 12:14 crontab
      drwxr-xr-x 2 root root 4096 ноя 25 15:03 Desktop/
      drwxrwxrwx 2 root root 4096 ноя 30 20:34 Mail/
      -rw-r—r— 1 root root 11 май 30 2014 octave-workspace
      -rw——- 1 root root 19 окт 21 21:48 set spell spelllang=en_us,ru_ru
      -rw——- 1 root root 195 май 30 2014 text1
      _______________________________________________________
      В листинге выше используются буквенные обозначения прав (т.н. маска режима доступа), но используютcя, при назначении прав, чаще цифровые обозначения в восьмеричном представлении.

      Рассмотрим таблицу восьмеричного, бинарного и символьного сопоставлений:

      Другое прочтение того-же самого

      Права доступа и информация о типе файла в UNIX-системах хранятся в индексных дескрипторах

      Право на чтение (r) файла означает, что пользователь может просматривать содержимое файла с помощью различных команд просмотра, например, командой more или с помощью любого текстового редактора. Но, подредактировав содержимое файла в текстовом редакторе, вы не сможете сохранить изменения в файле на диске, если не имеете права на запись (w) в этот файл. Право на выполнение (x) означает, что вы можете загрузить файл в память и попытаться запустить его на выполнение как исполняемую программу.
      Конечно, если в действительности файл не является программой (или скриптом shell), то запустить этот файл на выполнение не удастся, но, с другой стороны, даже если файл действительно является программой, но право на выполнение для него не установлено, то он тоже не запустится.

      Более того, надо дать пользователю право на выполнение для всех каталогов, стоящих в дереве выше данного каталога. Поэтому в принципе для всех каталогов по умолчанию устанавливается право на выполнение как для владельца и группы, так и для всех остальных пользователей.
      И, уж если вы хотите закрыть доступ в каталог, то лишите всех пользователей (включая группу) права входить в этот каталог. Только не лишайте и себя такого права, а то придется обращаться к суперпользователю!

      После прочтения предыдущего абзаца может показаться, что право на чтение каталога не дает ничего нового по сравнению с правом на выполнение. Однако разница в этих правах все же есть. Если задать только право на выполнение, вы сможете войти в каталог, но не увидите там ни одного файла (этот эффект особенно наглядно проявляется в том случае, если вы пользуетесь каким-то файловым менеджером, например, программой Midnight Commander). Если вы имеете право доступа в каком-то из подкаталогов этого каталога, то вы можете перейти в него (командой cd), но, как говорится «вслепую», по памяти, потому что списка файлов и подкаталогов текущего каталога вы не увидите (тут).

      Алгоритм проверки прав пользователя при обращении к файлу.

      Числовые права доступа

      7 (rwx) читать, писать, выполнять (rwx = 4 + 2 + 1 = 7) (111 = 7)
      6 ( rw-) читать, писать (rw- = 4 + 2 + 0 = 6) (110 = 6)
      5 (r-x) читать, выполнять (r-x = 4 + 0 + 1 = 5) (101 =5)
      4 (r—) читать (r— = 4 + 0 + 0 = 4) (100 = 4)
      3 (-wx) писать, выполнять (-wx = 0 + 2 + 1 = 3) (011 = 3)
      2 (-w-) писать (-w- = 0 + 2 + 0 = 2) (010 =2)
      1 (—x) выполнять (—x = 0 + 0 + 1 = 1) (001 = 1)
      0 (—) ничего нельзя делать ( = 0 + 0 + 0 = 0) (000 = 0)

      Первая цифра – права владельца файла
      Вторая цифра – права группы
      Третья цифра – права всех пользователей

      Таким образом, получается:
      rwx = 4 + 2 + 1 = 7
      rw- = 4 + 2 = 6
      rwx rwx rwx = (4 + 2 + 1)(4 + 2 + 1)(4 + 2 + 1) = 777
      и тд.

      Символьные права доступа

      Источник

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

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