Что такого особенного в разрешении Linux 004?

23

Я читал Practical Unix и Internet Security , когда наткнулся на следующие строки, которые я не мог понять.

Если вы используете сервер архивации wu, вы можете настроить его таким образом, чтобы загруженные файлы загружались в режиме 004 , чтобы их не мог загрузить другой клиент . Это обеспечивает лучшую защиту, чем просто нечитаемость каталога , так как не позволяет людям загружать файлы, а затем сообщать своим друзьям точное имя файла для загрузки.

Разрешение 004 соответствует -------r--. Файл не может быть загружен, если у него есть доступ для чтения? Кроме того, почему это считается лучше, чем просто сделать каталог недоступным для чтения? Что это значит?

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

Aswin PJ
источник
В частности, похоже, что он ссылается на WU-FTP , известного как wuarchive.wustl.edu.
Парфянский выстрел
2
вот UMASK 004 имелось ввиду а не разрешение!
Афсин Топарлак
3
@AfsinToparlak нет, это определенно положительное разрешение, а не умаск. Смотрите принятый ответ.
o11c
«Файл не может быть загружен, если у него есть права на чтение». Это не совсем правильно. Все, кроме пользователя и группы, владеющей файлом, имеют доступ для чтения.
Scai
1
Что касается « Это обеспечивает лучшую защиту, чем просто сделать каталог нечитаемым, так как он не позволяет людям загружать файлы и затем сообщать своим друзьям точное имя файла для загрузки. » ... более ранний трюк состоял в том, чтобы сделать область загрузки чем-то вроде 333( или d-wx-wx-wx) которые позволяют людям (пользователям FTP) создавать файлы, но из-за отсутствия разрешения на чтение [в каталоге] они не могут перечислить файлы в каталоге загрузки. Однако, если вы знали имя, вы можете читать / скачивать файлы.
TripeHound

Ответы:

33

Права доступа 004 (------ r--) означают, что файл может быть прочитан только процессами, которые не работают от имени того же пользователя или той же группы, что и FTP-сервер. Это довольно необычно: обычно пользователь имеет больше прав, чем группа, а группа имеет больше прав, чем другие. Обычно пользователь может изменять разрешения, поэтому бессмысленно давать пользователю более ограничительные права. Это имеет смысл, поскольку на FTP-сервере (предположительно) нет команды для изменения разрешений, поэтому файлы сохраняют свои разрешения до тех пор, пока что-то другое не изменит их.

Поскольку пользователь, на котором запущен FTP-сервер, не может читать файлы, люди не смогут загрузить файл. Это делает невозможным использование FTP-сервера для обмена файлами.

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

Для меня было бы более разумно дать файлу разрешения 040 (доступное для чтения только для группы) и запустить потребительский процесс в той же группе, что и FTP-сервер, но с другим пользователем.

Жиль "ТАК - перестань быть злым"
источник
1
@Cthulhu: процесс FTP-сервера также принадлежит «всем». Но разрешения UNIX не ищутся. Рассматривается только один триплет прав, и это проверка на прохождение / неудачу. (В отличие от списков
контроля доступа
8

Восьмеричная маска разрешений 004соответствует символической маске разрешений, u=,g=,o=rкоторая означает, что тот, (u)serкто владеет файлом, не может прочитать или записать его, или выполнить его, и никто другой не может быть таким же, (g)roupкак пользователь, которому принадлежит файл. Только (o)therпользователи, которые не являются ни владельцем, ни находятся в той же группе, что и владелец, могут читать файл.

godlygeek
источник
1
вот UMASK 004 имелось ввиду а не разрешение!
Афсин Топарлак
4
@AfsinToparlak: нет, это явное разрешение . Смотрите принятый ответ.
TripeHound
6

Да, но файл принадлежит пользователю. Таким образом, сам клиент имеет разрешение 0 (пользователь) на файл и не может его прочитать.

Вы можете проверить это самостоятельно:

echo TEST > myTestFile;
chmod 004 myTestFile;
cat myTestFile;
chmod 700 myTestFile;
cat myTestFile;

Третий шаг вызовет ошибку.

Йодка Лимон
источник
Итак, когда файл загружен, только тот пользователь получает разрешение на чтение для файла, а все остальные получают 000? Я прав? Можете ли вы расширить свой ответ?
Асвин Пи Джей
1
Я нашел книгу, и глава о защите общего каталога, доступного для записи для анонимных FTP-клиентов. Любой анонимный клиент открывает файл с тем же идентификатором пользователя, что и любой другой анонимный клиент, поэтому созданный файл может быть создан анонимным пользователем, но не может быть прочитан анонимным. Он может быть прочитан любым другим пользователем в системе.
Йодка Лимон
@hope: каждая цифра в восьмеричной строке разрешения представляет 4 бита: set-id, read, write и exec, в указанном порядке. Таким образом, 7 означает, что биты чтения, записи и выполнения установлены. Первая цифра - это разрешение для владельца и т. Д. Поэтому нет смысла говорить, что другие получают 000. Другие получают только 0. Ответ Жиля - лучшее объяснение того, что на 004самом деле делает установка прав доступа .
Питер Кордес
Третий шаг - это запись, а не чтение.
Стоп Harm Моника
@OrangeDog Вы правы. Я исправил это.
Йодка Лимон
-1

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

Натан Ринго
источник
Нет, как объяснили другие, ftp-сервер устанавливает разрешения 004так, чтобы пользователь, который его загрузил, и любые другие пользователи ftp (по крайней мере, анонимные) не могли получить доступ к файлу, пока он не будет проверен (когда он будет повторно разрешен и вероятно переехал / переименован в подходящее место). Такие места, как WU Archive, часто (неправильно) использовались в смутное и далекое прошлое в качестве сайтов для обмена файлами, если такие вещи не создавались.
TripeHound