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

Как запретить пользователю доступ к папке линукс

  • автор:

Закрыть доступ к папке пользователю linux за /var/www?

Я создаю папку в home, потом создаю группу new (c пользователями root, luser) и даю папке 0777 группе доступ, другой любой пользователь vasya не может её читать.

но когда я создаю папку в /var/www и делаю тоже самое вася видит.

вопрос как мне закрыть доступ васе, что бы рут видел и изменял, гуппа www-data (вордпрес читал), а вася вообще не видел если заглоиниться. В группе www-data Васи нет, что я пропустил?

  • Вопрос задан более двух лет назад
  • 1213 просмотров

Комментировать
Решения вопроса 1

deepblack

Ну так 0777 полный доступ для всех, 0770 — полный доступ (включая выполнение) владельцу, группе. Для других запрет любых действий.

Owner: rwx=4+2+1=7
Group: r-x=4+0+1=5
Other: r-x=4+0+1=5

Ответ написан более двух лет назад
Нравится 1 2 комментария
valeraisrock @valeraisrock Автор вопроса

друг, 0777, как и 077 дают доступ только группе, это не 777

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

fzfx

valeraisrock, выше тебе правильно сказали, что 0777 — полные права для владельца, группы и всех остальных.

Ответы на вопрос 2

SagePtr

Еда — это святое

Самый простой способ — поменять группу на www-data, а права выдать 750. Тогда владелец и рут сможет делать что угодно, группа — читать, а левые — ничего не смогут. Но помнить, что через символьные ссылки злоумышленник на другом аккаунте при помощи веб-сервера сможет повыдёргивать чужие файлы, если у сервера есть к ним доступ, потому нужно дополнительно настроить защиту на этот случай.

запретить доступ к другим папкам

Как запретить доступ к другим папкам простому пользователю , чтоб он вообще не смог зайти туда?

Операционная система Debian 6

magvayer
23.01.16 19:12:25 MSK

К каким именно папкам? системным в корне — /etc, /bin. ? Или к папкам других пользователей?

viewizard ★★
( 23.01.16 19:19:33 MSK )
Ответ на: комментарий от viewizard 23.01.16 19:19:33 MSK

чтоб не смог зайти в папку других пользователей

magvayer
( 23.01.16 19:22:51 MSK ) автор топика
Ответ на: комментарий от magvayer 23.01.16 19:22:51 MSK
anonymous
( 23.01.16 19:24:58 MSK )
Ответ на: комментарий от magvayer 23.01.16 19:22:51 MSK

Если все равно сможет то chmod 700 /home/*

anonymous
( 23.01.16 19:26:12 MSK )

Для начала сформулировать, почему пользователю не нужно заходить в другие папки, что именно там нельзя делать (читать, писать, запускать исполняемые файлы). Затем понять куда именно (папки других пользователей или /bin/bash тоже нельзя запускать). После этого станет понятно какие права на файловой системе нужно задать для «других папок» (и решается ли эта задача заданием прав на файловой системе).

anonymous
( 23.01.16 19:26:40 MSK )
Ответ на: комментарий от anonymous 23.01.16 19:26:40 MSK

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

magvayer
( 23.01.16 19:28:23 MSK ) автор топика
Ответ на: комментарий от magvayer 23.01.16 19:22:51 MSK

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

Открываете /etc/profile и /etc/login.defs, и ставите маску (umask), например 077 (разрешение на все только владельцу). В этом случае пользователь при создании файла будет записывать его на диск уже с разрешением 700 (разрешение на все только владельцу). Если создавать новых пользователей, их папки уже создадутся с правильным доступом (делать chmod повторно не придется).

viewizard ★★
( 23.01.16 19:54:43 MSK )
Ответ на: комментарий от magvayer 23.01.16 19:22:51 MSK

Смотри, в юникс-системах действует дискретная система разграничения прав доступа пользователей к файлам. А именно: файлы разрешается читать, записывать и исполнять (в случае каталога исполнение приравнивается к праву его открыть). Далее, категории пользователей, имеющих права на доступ к файлу делятся на владельца (создателя), группу пользователей и всех остальных. Управляет разграничением прав доступа утилита chmod, принимающая в виде аргумента имя нужного тебе файла, а в качестве указания, что с ним сделать строку вида (+(a — author)rwx g(group)+rwx o(others)+rwx), смотря по надобности. +r -разрешает чтение, +w — запись, +x — исполнение. Если какие-то права для кого-то с файла нужно снять, плюс перед нужной буквой меняется на минус. То есть в твоем случае команда будет chmod o-x /home/*

Форум русскоязычного сообщества Ubuntu

Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

  • Форум русскоязычного сообщества Ubuntu »
  • Поддержка »
  • Настройка системы »
  • Безопасность (Модераторы: Дмитрий Бо, www777) »
  • Запретить доступ ко всем папкам, кроме Домашней

Страницы: [1] Вниз

Автор Тема: Запретить доступ ко всем папкам, кроме Домашней (Прочитано 10196 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Страницы: [1] Вверх

  • Форум русскоязычного сообщества Ubuntu »
  • Поддержка »
  • Настройка системы »
  • Безопасность (Модераторы: Дмитрий Бо, www777) »
  • Запретить доступ ко всем папкам, кроме Домашней

Страница сгенерирована за 0.042 секунд. Запросов: 25.

  • Сайт
  • Об Ubuntu
  • Скачать Ubuntu
  • Семейство Ubuntu
  • Новости
  • Форум
  • Помощь
  • Правила
  • Документация
  • Пользовательская документация
  • Официальная документация
  • Семейство Ubuntu
  • Материалы для загрузки
  • Совместимость с оборудованием
  • RSS лента
  • Сообщество
  • Наши проекты
  • Местные сообщества
  • Перевод Ubuntu
  • Тестирование
  • RSS лента

© 2012 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.

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

url image

Поговорив о пользователях и группах, самое время вспомнить про права доступа, которые для них настраиваются. Общая схема прав одинакова и для файлов, и для папок. Вы уже видели, как система отображает права доступа, в выводе команды ls -l , которая показывает содержимое директории: Первые 10 символов содержат информацию о правах к файлу или каталогу.

rw- права пользователя-владельца
r— права пользователей группы-владельца
r— права всех остальных пользователей
Далее идёт имя пользователя-владельца и группы -владельца.
root файл принадлежит пользователю root
root файл принадлежит группе root
Исходя из этого, иерархия доступа на уровне пользователей разбивается следующим образом: права пользователя-владельца, права участников группы-владельца и права всех остальных. Соответственно, для каждой категории указывается, какие операции с файлом ей доступны: чтение (r), запись (w) или выполнение (x) — для исполняемых файлов. Для директорий параметры те же, но обозначают немного другое: просмотр директории (r), создание папок / файлов (w) внутри директории, переход в директорию (x). Каждый из этих уровней доступа можно выразить в восьмеричной системе с помощью числового значения: 4 (r), 2 (w), 1 (x). Вот так мы и получаем общую схему прав:

a — любые пользователи
u — права пользователя g — права группы o — права всех остальных
r w x r w x r w x
4 2 1 4 2 1 4 2 1

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

rwxrwxrwx = (4+2+1), (4+2+1), (4+2+1) = 777

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

Смена владельца файла или директории

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

chown [новый пользователь]:[новая группа] [файл или папка]

Если не указывать группу, изменится только пользователь-владелец. Если не указывать пользователя ( :[новая группа] ), изменится только группа-владелец. При изменении прав на директории можно использовать параметр -R . Он рекурсивно изменит владельца всех вложенных директорий и файлов. Представим, что нам нужно предоставить права на папку new-user для одноимённого пользователя и его группы. Команда для этого будет выглядеть так:

chown -R new-user:new-group /home/users/new-user

Второй инструмент — chgrp . В отличие от первого, меняет только группу-владельца:

chgrp [группа] [файл или папка]

Как и chown, может работать рекурсивно с помощью ключа -R .

Смена прав доступа к файлу или директории

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

chmod [настройки прав] [файл или папка]

При работе с директориями опция -R позволит изменить права на все вложенные файлы и папки. Настройки прав в chmod можно определять двумя способами:

  1. Указав категорию ( u — пользователь-владелец, g — группа-владелец, o — другие пользователи, a — все пользователи), модификатор ( + , — , = ) и, соответственно, нужные права ( r , w , x ). Например, представим, что у нас есть файл example.txt с максимальным уровнем прав для всех категорий пользователей: Допустим, мы не хотим, чтобы кто-то в принципе мог запускать этот файл на выполнение. В таком случае нам нужно убрать параметр «x» из прав всех категорий пользователей сразу. Это можно сделать так:
chmod a-x example.txt

Представим, что потом мы решили вернуть владельцу права на запуск файла. То есть нам нужно добавить параметр «x» в категорию пользователя-владельца:

chmod u+x example.txt

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

chmod u=rwx example.txt
chmod 777 example.txt

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

chmod 666 example.txt

А потом вернём, но только пользователю-владельцу:

chmod 766 example.txt

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

    Смена прав на 755 для всех папок внутри /var/www/sites/example.com :

find /var/www/sites/example.com/ -type d -exec chmod 755 <> \;
find /var/www/sites/example.com/ -type f -exec chmod 644 <> \;

Изменение атрибутов файлов

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

Посмотреть атрибуты файлов в текущей директории можно с помощью команды lsattr . Если запустить её без аргументов, она выведет атрибуты всех файлов в текущей директории. Если указать путь к файлу или папке, она перечислит свойства указанного файла или списка файлов в указанной папке соответственно:

lsattr example.txt

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

Список атрибутов может отличаться в зависимости от файловой системы. Вот список основных:

«godmode» — файл становится неуязвим для любых изменений. Его нельзя удалить, переименовать, изменить содержимое, создать символьную ссылку на него.

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

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

активирует «обратимое» удаление файлов. Это значит, что при удалении файла с этим атрибутом его содержимое можно восстановить.

сжатый файл. Все данные, записываемые в файл, автоматически сжимаются, а данные, извлекаемые из файла — возвращаются в исходное состояние.

настраивает для файла исключение при использовании утилиты dump . То есть файл не будет включен в архив при создании резервной копии этим способом.

показывает, что файл в качестве указателей использует экстенты.

в журналируемых файловых системах ( ext3 , ext4 ) указывает на то, что при сохранении файла он сначала будет записан в журнал ФС, и только потом — на диск.

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

атрибут для директорий. Указывает, что все изменения в папке синхронно записываются на диск, минуя кэш.

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

Изменить атрибуты файла позволяет команда chattr :

chattr [модификатор][изменяемые атрибуты] [целевой файл или папка]

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

chattr +i example.txt

Проверяем — посягательства не работают.

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

chattr -i example.txt

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

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

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