LINUX.ORG.RU

Linux,азбука, файловые запрещения, разочарование


0

0
bash-4.1$ mkdir test
bash-4.1$ chmod 007 test
bash-4.1$ stat test
  File: «test»
  Size: 48        	Blocks: 0          IO Block: 4096   каталог
Device: 804h/2052d	Inode: 356         Links: 2
Access: (0007/d------rwx)  Uid: ( 1000/   pavel)   Gid: ( 1000/   pavel)
Access: 2010-08-06 15:21:15.000000000 +0400
Modify: 2010-08-06 15:21:15.000000000 +0400
Change: 2010-08-06 15:21:22.000000000 +0400
bash-4.1$ mkdir test/test
mkdir: невозможно создать каталог «test/test»: Отказано в доступе

Разрешения проверяются наверное слева направо :(


И всё правильно. То, что хочешь сделать - вешай 0777 и всё. Какой смысл в твоём представлении о рботе permissions?

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

Я не берусь сейчас судить о работе существующего механизма проверки разрешений.
Но ситуация налицо - как все остальные пользователи я к этому файлу доступа не имею. Система возможно даже не попыталась провести эту проверку.

То, что хочешь сделать - вешай 0777 и всё.

Мало ли как я сделаю чтобы обойти эти «фичи». Типа я должен эксперементально их для себя выяснять? Может датите линк на хорошую статью, чтоб я собственным могоё**твом не занимался.

И всё правильно.

А вот тут я неуверен.

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

разочарование в чем? в том, что не сумел понять базовые вещи?

Да, может я даун. Может если тебе несложно, ты мне их объяснишь?

tux2002 ()

А iptables сверху вниз, и чо?

anonymous ()

Всё правильно. Ты ЗАПРЕТИЛ доступ для пользователя и для группы. Т.о. любой, пользователь не-pavel и не входящий в группу pavel имеет к каталогу полный доступ в твоём случае

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

Ты поставил права на каталог «полный доступ для всех, кто не входит в группу павел и кто не павел», поэтому ты и не можешь создать каталог test/test - что может быть проще?

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

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

что значит разрешал? ты выставил _МАСКУ_ прав. man chmod
разрешение - это cнапример hmod o+rwx.

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

Ты поставил права на каталог «полный доступ для всех, кто не входит в группу павел и кто не павел», поэтому ты и не можешь создать каталог test/test - что может быть проще?

Хорошо others - это все кроме меня.
[code]
bash-4.1$ mkdir test
bash-4.1$ chmod 070 test
bash-4.1$ stat test
File: «test»
Size: 48    Blocks: 0 IO Block: 4096 каталог
Device: 804h/2052d   Inode: 356 Links: 2
Access: (0070/d---rwx---) Uid: ( 1000/ pavel) Gid: ( 1000/ pavel)
Access: 2010-08-06 15:58:11.000000000 +0400
Modify: 2010-08-06 15:58:11.000000000 +0400
Change: 2010-08-06 15:58:21.000000000 +0400
bash-4.1$ mkdir test/test
mkdir: невозможно создать каталог «test/test»: Отказано в доступе
[/code]
Может я и в группу pavel не вхожу?

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

Был бы ты не юзер pavel - у тебя бы получилось. А так - у юзера pavel права на каталог «0». Этому механизму работы с правами куча лет. К сожалению, описания толкового не знаю. Но ты и сам на оба «нелогичных» случая напоролся.

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

Ты упоротый или блондинко? 0 - это ЗАПРЕТ

0- это отсутствие разрешения. Это файловые РАЗРЕШЕНИЯ а не файловые ЗАПРЕЩЕНИЯ.

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

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

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

>0- это отсутствие разрешения. Это файловые РАЗРЕШЕНИЯ а не файловые ЗАПРЕЩЕНИЯ.

Марш в школу, двоечник! 0 - запрещено, 1 - разрешено. Логика бинарная. Про третий вариант - «отсутствие разрешения» - это ты с гуманитариями поговори

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

Был бы ты не юзер pavel - у тебя бы получилось. А так - у юзера pavel права на каталог «0». Этому механизму работы с правами куча лет. К сожалению, описания толкового не знаю. Но ты и сам на оба «нелогичных» случая напоролся.


Спасибо, доктор, нам стало лучше :)

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

Что же здесь нелогичного?

Я потому и написал «нелогичных» в кавычках, что с одной стороны может показаться «Как же так, все остальные могут делать все что угодно, а я, владелец - неужели нет? Как же я не могу делать с файлом хотя бы то же, что могут делать все остальные?». С другой стороны, если подумать, то все логично.

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

>Я потому и написал «нелогичных» в кавычках

Сорри, значит я непрвильно тебя понял:)

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

0 - запрещено, 1 - разрешено.

Пруфлинк в контексте файловых разрешений?
0 и 1 это способ кодирования.

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

он просто не понимает, что тут механизам наложения маски на матрицу прав.

Хорошо. Процесс пытается получить доступ к файлу rw. Его маска доступа rw-. Матрица «прав» шире. В какой последовательности происходит наложение маски на матрицу?

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

>Его маска доступа rw-

очередной феил - «rw» - это не маска, а мнемоническое значение уже наложенной маски вида 6ХХ.

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

очередной феил - «rw» - это не маска, а мнемоническое значение уже наложенной маски вида 6ХХ.

Хорошо. Но процесс сам не формирует маску. Маску формирует возможно ядро ОС на основании запрошенного вида доступа процессом.
Вопрос:
Формируется одна маска, или более одной? Каков шаблон этих масок/маски, и в какой последовательности происходит наложение если масок более одной?

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

мда.. феерический бред.
такой каши в голове я давно не видел - признайся, ты очень толсто троллишь с помощью бредогенератора :))

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

Он просто пытается в простейшую двоичную логику приплести какие-то ещё состояния, кроме ды/нет, true/false и т.п.

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

У него обычный гуманитарный бред, полное отсутствие элементарной логики.

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

вам не консоль в руки, а что-то потяжелее :(

А чем Вы недовольны? Зато есть пожелания тому парню, что в толксах писал о своей операционной системе и спрашивал нас о том, что нам не нравится в Linux. А вообще я за отчественного производителя и разработчика.

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

Он просто пытается в простейшую двоичную логику приплести какие-то ещё состояния, кроме ды/нет, true/false и т.п.

Вот и нет. Моя логика проста:
Процесс запрашивает доступ rw- к файлу.
Система сравнивает с разрешениями для others без анализа uid gid.
Система сравнивает с разрешениями для group с анализом gid.
Система сравниват с разрешениями для owner с анализом uid.

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

только происходит наоборот, и сначала смотрятся права по uid, потом по gid, и уже если процесс не вошел ни в одну из групп, то для others

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

> мнемоническое значение уже наложенной маски вида 6ХХ

Откуда такие предположения?

Для проверки предположения тебе надо всего-то поменять владельца и группу этого каталога. Доступ внутрь будет.

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

Твоя логика предполагает неодновременность происходящего. Пойми уже, есть таблица прав:

польз групп проч
ч з и ч з и ч з и

Ты на эту таблицу накладываешь двоичное значение, например 007:

польз групп проч
ч з и ч з и ч з и
0 0 0 0 0 0 1 1 1

В результате, ты разрешил всем кроме владельца и его группы делать с файлом всё, что угодно. И это правильно. Каждый объект должен входить в таблицу прав лишь один раз, иначе возникает конфликт интересов. И это правильно.

В твою схему пользователь входит 3 раза. Какие права ему положены? Как ты будешь запрещать чтение файла именно этому юзеру?

Alan_Steel ★★ ()

Кокое знатное трололо...:))))

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

В твою схему пользователь входит 3 раза.

Операция сравнения может быть сдвиговой побитовой до накопления нужного разрешения.

tux2002 ()

Спасибо за внимание, приятного отдыха в выходные!

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

>Мало ли как я сделаю чтобы обойти эти «фичи».

Да какие фичи? Это свойство функции AND. Если ХОТЯ БЫ один из аргументов функции AND 0, то все выражение равно нулю.

Т.е. НЕЛЬЗЯ юзеру павел «И» МОЖНО группе павел «И» МОЖНО кому угодно = НЕЛЬЗЯ.

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