LINUX.ORG.RU

Права на каталог


0

0

Распротраняются ли права каталога на вложенные файлы? Например у меня на домашнем каталоге права rwx--x--x, а внутри на файле rwxrwxrwx. Может ли другой пользователь писать и чиать тот файл?


А, ну и ничего не наследуется, файлы будут создаваться с правами, указанными в umask. Можешь сам проверить)

ostin ★★★★★
()
Ответ на: комментарий от ostin

Я думал x для каталога, это значит читать его содержимое, т.е. делать ls без ключей. Но ответа на вопрос я так и не увидел. Если у каталога более жёсткие права, чем у лежащего в нём файла, то какие действительно права будут у файла? По идее (я думаю) должны наследоваться. Например, если у меня есть личный каталог, я могу на сам каталог поставить права rwx------, а внутри будет файл, который доступен по записи всем. Так что получается, что несмотря на ограничение объемлещего каталога, посторонний пользователь сможет писать в тот файл?

paxac
() автор топика
Ответ на: комментарий от paxac

Кто-нибудь может дать ссылку на источник, где бы это было описано. (Ссылки на man'ы и прочие левые страницы, в которых про наследование НЕТ — не давать.)

paxac
() автор топика
Ответ на: комментарий от paxac

P.S. Думал, вроде простой вопрос, даже стиснялся задавать вначале (я помню, где-то читал про это, но бюыло давно и уже забыл где). Поиск успехом не удался. На IRC тоже никто не знает. И тут, видимо, тоже.

paxac
() автор топика

может я чего-то не понимаю, но твой домашний каталог в данном примере не прочитает никто кроме тебя.

cuki ★★★★
()
Ответ на: комментарий от paxac

нет, твой каталог закрыт на чтение для всех кроме тебя. Не забывай что каталог это лишь файл, который указывает на другой файл «внутри себя». Утилита ls не может прочитать каталог, соответственно она не получит информацию, где искать файлы «внутри каталога»

cuki ★★★★
()
Ответ на: комментарий от paxac

Если у каталога более жёсткие права, чем у лежащего в нём файла, то какие действительно права будут у файла?

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

mikki
()
Ответ на: комментарий от paxac

Ничего не наследуется.
Например если у тебя есть доступ x на каталог и нет прав на r+w этого каталога, но есть все права на файл внутри этого каталога.
В этом случае ты сможешь сделать все что угодно с этим файлом, но не сможешь даже посмотреть содержимое каталога!

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

dvalov
()
Ответ на: комментарий от mikki

Вот теперь понятно.

Если на одну из нужных директорий нет прав rx, то и доступа к файлу не будет

Т. е. права на домашнюю директорию rwx--x--x не позволят посторонним чиать/писать мои файлы, независимо от установленных на них прав. Так?

paxac
() автор топика

oleg@nightsonger:~$ mkdir ~/111
oleg@nightsonger:~$ chmod u-rw ~/111/
oleg@nightsonger:~$ ls ~/111/
ls: невозможно открыть каталог /home/oleg/111/: Отказано в доступе

как-то так

cuki ★★★★
()
Ответ на: комментарий от paxac

предложу такую аналогию:

твой hdd - библиотека, файлы - книги, ls - библиотекарь, каталог - каталог книг. Когда ты командуешь ls _нужный_тебе_файл_, библиотекарь открывает каталог, читает, где лежит нужная тебе книга и приносит её тебе. Если каталог книг заперт в сейфе на замок (без права w), библиотекарь просто не найдёт книгу по твоему запросу.

cuki ★★★★
()
Ответ на: комментарий от paxac

Т. е. права на домашнюю директорию rwx--x--x не позволят посторонним чиать/писать мои файлы, независимо от установленных на них прав. Так?

Правильнее будет иметь права 'rwx------'. Просто 'rwx--x--x' всё таки даст доступ к файлу (поправочка: не rx, а x), если знать к нему путь.

mikki
()
Ответ на: комментарий от mikki

Понятно.

--------------

Я вот где-то читал, что в ntfs права наследуются. А почему в линуховых ФС до сих пор так не сделали. Ведь, ИМХО, это очень полезно.

Если уж переходить к аналогиям, то пускай файл — это блокнот, свободно лежащий на столе, в него можно писать и читать тоже (rwxrwxrwx) любому, кто находится в квартире. Но незнакомец с улицы получить к нему доступ не может, ибо права на квартиру (родительский каталог) строже (rwx------). По-моему, это нормальная картина. ИМХО, ограничения по правам должны наследоваться.

Ну вот к примеру есть у меня каталог. На нём стоят (rwxr-xr-x) — типа фотки мои. Случайно в этот каталог проник файл с правами на запись. Другой юзер же, несмотря на права каталога (rwxr-xr-x) получается сможет изменять тот файл! И где в этом логика? Если бы права наследовались, то он бы нчиего не смог сделать. Кроме того, при наследовании уже не нужна опция -R в chmod для рекурсивного изменения прав: я просто ставлю ограничения на родительский каталог и они автоматически распространяются на все вложения (аналогия: я запирую папку для бумаг замком. И несмотря на то, что внутри лежат листы, на которые можно писать и которые можно читать — это никто сделать не может).

Или я не так понимаю? Разъясните, пожалуйста, логику создателей ext* и прочих с таким оборотом дел.

paxac
() автор топика

Создал тестового пользователя и в своей домашней директории файл с правами rwx для всех. Тестовый пользователь не может получить к нему доступ.

Rapt0r
()
Ответ на: комментарий от Rapt0r

Ага. Т.е. значит наследуется? (Я извиняюсь, сам сейчас проверить не могу, ибо нет доступа к компу, пишу с телефона.)

Существует ли какой-нибудь авторитетный источник, где бы ясно было написано — наследуется или нет, и как.

paxac
() автор топика
Ответ на: комментарий от paxac

> Т.е. значит наследуется?

Похоже что да. Хотя я не проверял на вложенных каталогах и т.п. Да и тестового пользователя уже удалил :)

Rapt0r
()
Ответ на: комментарий от paxac

Я вот где-то читал, что в ntfs права наследуются. А почему в линуховых ФС до сих пор так не сделали. Ведь, ИМХО, это очень полезно.

Юниксы были задолго до NTFS и ACL с наследованиями, так исторически сложилось. С другой стороны, юниксовая система раздачи прав более простая и очевидная. Наследование создаёт ещё целый ряд проблем.

Ну вот к примеру есть у меня каталог. На нём стоят (rwxr-xr-x) — типа фотки мои. Случайно в этот каталог проник файл с правами на запись. Другой юзер же, несмотря на права каталога (rwxr-xr-x) получается сможет изменять тот файл! И где в этом логика?

Такого быть не должно. В худшем случае (т.е. если сам специально ничего не делал) права на запись другой пользователь иметь не будет, только чтение.

Ага. Т.е. значит наследуется?

Прекратите, наконец, заниматься мракобесием. Наследования прав НЕТ.

mikki
()
Ответ на: комментарий от mikki

[qoute]Такого быть не должно. В худшем случае (т.е. если сам специально ничего не делал) права на запись другой пользователь иметь не будет, только чтение. Ну мало ли — скопировался файл откуда-то вместе с правами или прога какая-нибудь создала права на запись. В случае наследования об этом не надо было бы беспокоится — у родительского каталога стоит ограничение на запись и всё! не канает, что там внутри происходит. Ещё больше ограничить какой-то файл — пожалуйста, но ослабить ниже прав радительского каталога — фиг.

Вот у меня на компе я единственный юзер, я это вообще просто так спросил. Но я ради инетерса посмотрел в ~/ права, так вот у некоторых файлов стоят права rwxrwxrwx, у некоторых ещё какие-то (может связано, что эти файлы скопированы с виндового раздела). Но на ~/ права rwx--x--x. Т.е. по идее, если бы было >1 пользователя, то они бы прочитали и записали что-то в те файлы, хотя у ~/ это запрещено. (Кстати, я какую вообще тогда роль несут права папки? ну вот rwx--x--x чем отличается от rwxr-xr-x?)

Юниксы были задолго до NTFS и ACL с наследованиями, так исторически сложилось.

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

Прекратите, наконец, заниматься мракобесием. Наследования прав НЕТ.

А как же экперимент Rapt0r?

paxac
() автор топика
Ответ на: комментарий от paxac

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

ну вот rwx--x--x чем отличается от rwxr-xr-x?

x даёт возможность искать (имя -> inode), r ~читать список имён, как-то так

mikki
()
Ответ на: комментарий от ostin

> x для каталога значит просматривать, т.о. ответ на твой вопрос - да, может

Точнее, может, если точно знает названия файлов. Это обусловлено тем, что у каталога для не-владельца x разрешен, а r нет

dexpl ★★★★★
()
Ответ на: комментарий от paxac

> А как же экперимент Rapt0r?

В эксперименте Rapt0r файл с правами на все для всех находился в каталоге без прав на что-либо для не-владельца. Соответственно, не-владелец не может прочесть каталог => не может прочесть/запустить/изменить файл в каталоге — вполне резонно, закономерно, ожидаемо и самоочевидно

dexpl ★★★★★
()
Ответ на: комментарий от mikki

Если подытожить, то: если у ~/ стоят права rwx------, то никто посторонний не сможет получить доступ к файлам в ~/ (читать и писать), независимо от прав лежащих там файлоа. Так?

Но не до конца понял, а если будут права rwx--x--x (у меня по дефолту стоят на ~), то в чём будет отличие от вышенаписанного случая?

paxac
() автор топика
Ответ на: комментарий от paxac

Если подытожить, то: если у ~/ стоят права rwx------, то никто посторонний не сможет получить доступ к файлам в ~/ (читать и писать), независимо от прав лежащих там файлоа. Так?

Да

Но не до конца понял, а если будут права rwx--x--x (у меня по дефолту стоят на ~), то в чём будет отличие от вышенаписанного случая?

Отличие в x. Я еще раз повторю, для особо сообразительных - x для каталога, это возможность в него попасть.

ostin ★★★★★
()
Ответ на: комментарий от ostin

> Отличие в x.

Ну я ещё не совсем идиот. Я имею ввиду, в чём отличие от предыдущего случая по отношению к файлам, которые находятся в том каталоге.

paxac
() автор топика
Ответ на: комментарий от paxac

Если ты имеешь +х на каталог, а в каталоге лежит файл, на который ты имеешь r|w, ты можешь этот файл читать|изменять.

Если нет +х на каталоге - у тебя нет доступа к файлам вне зависимости от разрешения на файлы.

Если же на каталоге +r, это позволяет получить список файлов, лежащих внутри. Это и называется «прочесть файл каталога».

И хватит троллить ЛОР.

thesis ★★★★★
()
Ответ на: комментарий от paxac

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

ostin ★★★★★
()
Ответ на: комментарий от paxac

>Я вот где-то читал, что в ntfs права наследуются.

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

firestarter ★★★☆
()
Ответ на: комментарий от firestarter

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

Собвстенно у chmod есть -R, которая даже круче той галочки.

ostin ★★★★★
()
Ответ на: комментарий от paxac

x на каталог дает право пройти внутрь него. r на каталог даeт право считать что содержит каталог. Если только x нужно точно знать наименование вложенного файла для доступа к нему. Доступ к файлу определяется правами на него. Права создаваемого файла определяются umask. Владелец файла - создающий. Группа - первичная группа создающего. Группа файла может быть унаследована от каталога, если на каталог установлен sgid бит. Для наследования прав можно применять acl (man setfacl, man getfacl).

tux2002
()
Ответ на: комментарий от ostin

>Собвстенно у chmod есть -R, которая даже круче той галочки.

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

find ./ -type d -exec chmod 770 {} \;
find ./ -type f -exec chmod 660 {} \;

firestarter ★★★☆
()
Ответ на: комментарий от mikki

>Нет, там есть именно наследование

А такое ощущение будто она для каждого файла отдельно выставляет права при этом.

firestarter ★★★☆
()

ещё mount -o bsdgroups есть, например

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.