Що таке особливе у дозволі Linux 004?


23

Я читав « Практичний Unix» та «Internet Security» , коли натрапляв на наступні рядки, які не міг зрозуміти.

Якщо ви використовуєте сервер архіву wu, ви можете налаштувати його таким чином, що завантажені файли завантажуються в режимі 004 , тому вони не можуть бути завантажені іншим клієнтом . Це забезпечує кращий захист, ніж просто зробити каталог нечитабельним , оскільки він заважає людям завантажувати файли, а потім повідомляти своїм друзям точне ім'я файлу для завантаження.

Дозвіл 004 відповідає -------r--. Неможливо завантажити файл, якщо він має доступ для читання? Крім того, чому це вважається кращим, ніж просто зробити каталог нечитабельним? Що це означає?

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


Зокрема, схоже на те, що він посилається на WU-FTP , про wuarchive.wustl.edu.
Парфянський розстріл

2
ось UMASK 004 мається на увазі, а не дозвіл!
Afsin Toparlak

3
@AfsinToparlak ні, це, безумовно, позитивний дозвіл, а не umask. Дивіться прийняту відповідь.
o11c

"Неможливо завантажити файл, якщо він має доступ для читання" Це не зовсім правильно. Усі, крім користувача та групи, що володіє файлом, мають доступ до читання.
scai

1
Що стосується " Це забезпечує кращий захист, ніж просто зробити каталог нечитабельним, оскільки він заважає людям завантажувати файли, а потім повідомляти своїм друзям точне ім'я файлу для завантаження " ... ... попередній трюк полягав у тому, щоб зробити область завантаження чимось на зразок 333( або d-wx-wx-wx), які дозволяють людям (FTP-користувачам) створювати файли, але оскільки немає дозволу на читання [в каталозі], вони не могли перелічити файли в каталозі завантаження. Однак, якби ви знали ім'я, ви можете прочитати / завантажити файли.
TripeHound

Відповіді:


33

Дозвіл 004 (------ r--) означає, що файл може бути прочитаний лише процесами, які не працюють як той самий користувач, або як та сама група, що і FTP-сервер. Це досить незвично: зазвичай користувач має більше прав, ніж група, а група має більше прав, ніж інші. Зазвичай користувач може змінювати дозволи, тому безглуздо давати більш обмежувальні дозволи для користувача. Тут є сенс, оскільки сервер FTP (імовірно) не має команди змінити дозволи, тому файли зберігатимуть свої дозволи, поки щось інше не змінить.

Оскільки користувач, на якому працює FTP-сервер, не може читати файли, люди не зможуть завантажити файл. Це унеможливлює використання FTP-сервера для обміну файлами.

Імовірно, якийсь процес, який працює як інший користувач та група, читає файл у якийсь момент, перевіряє, чи відповідає він певній політиці, копіює дані, якщо це є, та видаляє завантажений файл.

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


1
@Cthulhu: Процес FTP-сервера також належить до "всіх". Але дозволи UNIX не шукаються. Вважається лише одна трійка прав, і це перевірка пропуску / відмови. (На відміну від Windows ACL, які мають пропуск / збій / дивитись далі)
MSalters

8

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


1
ось UMASK 004 мається на увазі, а не дозвіл!
Afsin Toparlak

4
@AfsinToparlak: ні, це явний дозвіл . Дивіться прийняту відповідь.
TripeHound

6

Так, але файл належить користувачеві. Отже, сам клієнт має дозвіл (користувач) на файл і не може його прочитати.

Ви можете перевірити це самостійно:

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

Третій крок призведе до помилки.


Отже, коли файл завантажується тільки той користувач отримує дозвіл на читання файлу, а всі інші отримують 000? Я прав? Чи можете ви, будь ласка, розширити свою відповідь?
Асвін PJ

1
Я знайшов книгу, і в розділі йдеться про забезпечення публічного каталогу, який можна записати для анонімних клієнтів ftp. Будь-який анонімний клієнт відкриває файл таким же uid, як і будь-який інший анонімний клієнт, тому створений файл може створюватися анонімним, але не читабельним анонімним. Він читається будь-яким іншим uid в системі.
Jodka Lemon

@hope: кожна цифра у восьмій рядку дозволу представляє 4 біти: set-id, read, write та exec у такому порядку. Таким чином, 7 засобів читання, запису та виконання бітів усі встановлені. Перша цифра - це дозвіл для власника тощо. Тому немає сенсу говорити, що отримують інші 000. Інше стає справедливим 0. Відповідь Жиля - це найкраще пояснення того, що 004насправді робить налаштування дозволу .
Пітер Кордес

Третій крок - це написання, а не читання.
Перестаньте шкодити Моніці

@OrangeDog Ви праві. Я це виправив.
Jodka Lemon

-1

Здається більш імовірним, що це означає, що будь-які дозволи маскуються під 004, тобто інші користувачі не можуть читати файл. Це послужило б захистом файлу від інших користувачів системи (певною мірою).


Ні, як пояснили інші, ftp-сервер встановлює дозволи, щоб 004користувач, який завантажив його, та будь-які інші користувачі ftp (принаймні анонімні) не могли отримати доступ до файлу, поки він не буде перевірений (коли це буде повторно дозволено і ймовірно, перенесли / перейменували у відповідне місце). Такі місця, як WU Archive, часто (неправильно) використовувались у тьмяному та далекому минулому як сайти для обміну файлами, якщо подібні речі не були встановлені.
TripeHound
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.