Права RWX - как запрещали execute?
От: Слава  
Дата: 22.05.24 07:34
Оценка:
В линуксе есть система прав доступа, на каждом файле висят флаги read-write-execute, последовательно для владельца файла, для группы и для всех прочих.

Как технически происходило разделение execute от read? Если ты можешь прочитать файл, ты можешь загрузить его и передать ему управление, не так ли?
Re: Права RWX - как запрещали execute?
От: Pzz Россия https://github.com/alexpevzner
Дата: 22.05.24 09:57
Оценка: 1 (1)
Здравствуйте, Слава, Вы писали:

С>Как технически происходило разделение execute от read? Если ты можешь прочитать файл, ты можешь загрузить его и передать ему управление, не так ли?


Можешь. Но не обязательно хочешь.

Вот и ядро. Могло бы и исполнить файл без битика x. Но не хотело. А поэтому, не исполняло.

P.S. r без x — это защита, скорее, не от того, чтобы что-то ужасно-вредное нельзя было исполнить, даже если его можно прочитать, а чтобы случайно всякая муть, не предназначенная для исполнения, и не исполнялась.
Re: Права RWX - как запрещали execute?
От: Anton Batenev Россия https://github.com/abbat
Дата: 22.05.24 12:42
Оценка:
Здравствуйте, Слава, Вы писали:

С> Как технически происходило разделение execute от read? Если ты можешь прочитать файл, ты можешь загрузить его и передать ему управление, не так ли?


В дополнение к предыдущему. Есть еще SUID / SGID / sticky биты (sudo, passwd и т.д.)
Re[2]: Права RWX - как запрещали execute?
От: Слава  
Дата: 22.05.24 15:20
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

AB>В дополнение к предыдущему. Есть еще SUID / SGID / sticky биты (sudo, passwd и т.д.)


Я к курсе о них. Более полно мой вопрос звучит примерно как "о чём думали те дураки, кто это сделал, такую опциональную безопасность, и не потому ли до сих пор оно всё дырявое, (см. замечательный язык Си и сопутствующее), что отцы-основатели не соображали?".
Re[3]: Права RWX - как запрещали execute?
От: Anton Batenev Россия https://github.com/abbat
Дата: 22.05.24 16:39
Оценка:
Здравствуйте, Слава, Вы писали:

С> Я к курсе о них. Более полно мой вопрос звучит примерно как "о чём думали те дураки, кто это сделал, такую опциональную безопасность


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

Однако, справедливости ради, данное инженерное решение оказалось настолько хорошим, что живет и по сей день несмотря на наличие всяких xattr acl, sssd и им подобных, которыми пользуются очень и очень редко (просто за ненадобностью).
Re[4]: Права RWX - как запрещали execute?
От: Слава  
Дата: 22.05.24 17:06
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

AB>Однако, справедливости ради, данное инженерное решение оказалось настолько хорошим, что живет и по сей день несмотря на наличие всяких xattr acl, sssd и им подобных, которыми пользуются очень и очень редко (просто за ненадобностью).


Данное инженерное решение до сих пор живёт потому же, почему в мейкфайлах до сих пор путаница с табами и пробелами. Легаси. Не было фашиста с железной палкой, надзорного органа, который сказал бы "так делайте, а так — не делайте".

У acl возможно очень ограниченное применение, я сейчас точно не вспомню, но что-то вроде "acl работают только в рамках уже имеющихся rwx", сталкивался я с этим больше 10 лет назад и сильно удивился кривизне.
Re[5]: Права RWX - как запрещали execute?
От: Anton Batenev Россия https://github.com/abbat
Дата: 22.05.24 18:15
Оценка:
Здравствуйте, Слава, Вы писали:

С> Данное инженерное решение до сих пор живёт потому же, почему в мейкфайлах до сих пор путаница с табами и пробелами.


Так нет же никакой путаницы. TAB и все.

С> У acl возможно очень ограниченное применение, я сейчас точно не вспомню, но что-то вроде "acl работают только в рамках уже имеющихся rwx", сталкивался я с этим больше 10 лет назад и сильно удивился кривизне.


Да пофиг на самом деле — этим почти никто не пользуется, т.к. для типичных домашних кейсов более чем хватает стандартных прав. А в промышленности и подавно при текущей изоляции можно работать хоть под root (который давно не root и никаких особых прав не дает).
Re: Права RWX - как запрещали execute?
От: andrey.desman  
Дата: 22.05.24 20:17
Оценка:
Здравствуйте, Слава, Вы писали:

С>Как технически происходило разделение execute от read? Если ты можешь прочитать файл, ты можешь загрузить его и передать ему управление, не так ли?


Если ты уже исполняешь какой-то произвольный код, то там не до битов x. Исполняй сразу любой код, хоть сам компилируй на лету. Зачем тебе какие-то левые бинари?
Это в общем-то не про защиту, а про признак исполняемости. Чтобы, например, в PATH не запускались файлы, которые не должны так запускаться.

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

Ну и про setuid уже упоминали. Даже если ты можешь прочитать какой-нибудь /bin/passwordless_sudo, толку от этого ноль, если у тебя прав на исполнение оригинала нет.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.