Закрыть доступ к папке пользователю linux за /var/www?
Я создаю папку в home, потом создаю группу new (c пользователями root, luser) и даю папке 0777 группе доступ, другой любой пользователь vasya не может её читать.
но когда я создаю папку в /var/www и делаю тоже самое вася видит.
вопрос как мне закрыть доступ васе, что бы рут видел и изменял, гуппа www-data (вордпрес читал), а вася вообще не видел если заглоиниться. В группе www-data Васи нет, что я пропустил?
- Вопрос задан более двух лет назад
- 1213 просмотров
Комментировать
Решения вопроса 1
Ну так 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
если ты понял, попробуй созать папку в хом и в ввв и сделать, тоже, в папке хом получилось, а в ввв достп имеют все
valeraisrock, выше тебе правильно сказали, что 0777 — полные права для владельца, группы и всех остальных.
Ответы на вопрос 2
Еда — это святое
Самый простой способ — поменять группу на 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
Поговорив о пользователях и группах, самое время вспомнить про права доступа, которые для них настраиваются. Общая схема прав одинакова и для файлов, и для папок. Вы уже видели, как система отображает права доступа, в выводе команды 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 можно определять двумя способами:
- Указав категорию ( 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
Для просмотра более подробной информации о файловых атрибутах, их ограничениях и правилах применения используйте команду: