Чи можна відключити дозволи файлів у файловій системі ext3 або ext4?


10

Чи можна відключити дозволи файлів у файловій системі ext3 / 4?

Цікаво, чи можна повністю відключити або проігнорувати дозволи файлів у файловій системі ext3 або ext4. Можливо варіант кріплення?

Мене не хвилюють наслідки для безпеки, оскільки я б робив це для тестування та за допомогою знімних носіїв.


2
Чому ви хочете видалити дозволи файлів з файлової системи ext3 або ext4? Вони були створені з урахуванням дозволів на файл POSIX. Якщо ви хочете використовувати файлову систему з обмеженими параметрами дозволів, можливо, щось на зразок FAT32 або exFAT було б краще?
Роб Гібсон

Мені цікаво, чи є натурна опція для Linux
Corey

2
Це вбудована Linux версія для використання FAT32, оскільки це підтримувана файлова система. Вам просто потрібно використовувати файлову систему, яка не призначена для POSIX-систем, як ті, що підтримують файлові дозволи.
Роб Гібсон

1
не $ sudo chmod -R 777 /your/filesystemзробив би трюку?
Червоний крикет

1
@RedCricket це може бути вирішенням, якщо відповідь виявиться ні
Corey

Відповіді:


5

Це не єдине, що ти можеш зробити.

Існує спосіб просто надати всім дозволу без використання звичайних дозволів, що перешкоджатиме відображенню (певним чином).

Це означає, що ls --color(за замовчуванням) завжди відображатиметься o:rwXу фоновому режимі блоку, який є огидним і призначений лише для попередження користувачів про неправильні дозволи (коли вони підходять саме вам).

Але ви можете легко досягти універсальних (або майже універсальних) дозволів на запис у свої файли, використовуючи списки контролю доступу .

setfacl -d -m g:sudo:rwX .
setfacl -m g:sudo:rwX .

надасть rwX дозволи всім людям із групи судо. Оскільки у більшості ваших систем у вас буде користувач у групі sudo, особливо для знімних носіїв (а значить, і для локальних систем), ви завжди матимете доступ будь-де для будь-кого з цієї групи (це ви). Ви також можете поширити його на користувачів, якщо ви перебуваєте в іншій системі, яка використовує цю групу:

setfacl -d -m g:users:rwX .
setfacl -m g:users:rwX .

Прапор -d означає, що дозволи поширюватимуться на всі новостворені файли (за замовчуванням). Єдиним недоліком є ​​те, що ви фактично не можете переглядати ці дозволи, а це означає, що ви краще повністю вимкнути їх (отже, яке використання на носії для видалення, якщо встановити дозволи, які кожен може так чи інакше обійти, правда?). Це як сказати: Ви можете отримати доступ до цих файлів, якщо ви називаєте себе Джоном. Гаразд, я називаю себе Джон. Добре, у вас зараз доступ.

(Кожен може взяти корінь у кожній своїй системі, а значить, дозволи файлової системи нічого не означають).

ExtFS просто не призначений для знімних носіїв. Немає файлових систем Linux, які справді корисні на знімних носіях, але FAT і NTFS мають зворотну сторону не дуже підтримуючих символьних посилань та виконання прапорів, що складно, наприклад, для сховищ git. Просто моя думка тут.

Ви можете бачити файл ACL лише за допомогою:

getfacl <file>

І коли ви ls -l, ви побачите:

drwxr-xr-x+ 4 user user 4096 aug 31 03:40 .

+ Вказує на те, що у файлі (або в каталозі) є активний ACL.

Вихід getfacl буде (наприклад):

# file: .
# owner: user
# group: user
user::rwx
group::rwx                      #effective:r-x
group:sudo:rwx                  #effective:r-x
mask::r-x
other::r-x
default:user::rwx
default:group::r-x
default:group:sudo:rwx
default:mask::rwx
default:other::r-x

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


4

Ні, ви не можете скинути дозволи на файли для файлових систем ext {2,3,4}.

Єдине, що ви можете зробити, це встановити всі файли з дозволом 777 .

Просто запустіть:

 chmod a+rwX -R <mountpoint>

4
Краще зробіть це, chmod a+rwX -R <mountpoint>щоб не давати помилкових дозволів на виконання.
фонбранд

@vonbrand справа
Х.-Дірк Шмітт

але Xin chmod a+rwXробить всі файли виконуваними, правда? Це гарна річ ??
бекко

3
@becko Ви пропустили пункт попередніх двох коментарів. Верхній регістр Xзробить тільки каталоги виконуваними (enterable), не роблячи файли виконуваними; тоді як малі регістри xроблять усі файли та каталоги виконаними.
XA21X

0

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

Я колись це робив для cifs.ko, модуля "Samba" (клієнт) для ядра, тому що є деякі помилки samba, де вам слід мати локальний доступ, і у вас є віддалений доступ, але доступ досі не надається.

Я відключив перевірку місцевого дозволу, чи місцевий користувач знаходився в (локальній) групі файлу, те саме, що і опція "noperm", що активується лише тоді, коли ви член групи.

Звичайно, extfs - це не зовсім модуль у ядрі, але новий прапор було б тривіально додати.


Я не впевнений, відповідаєте ви на питання чи ні. Ви кажете, що це можливо, якщо це був модуль, то ви кажете, що це не модуль.
Джефф Шаллер

Це було б можливо, якби сонце танцювало на небі квадрат. Якби ви щось знали про ядро, то знали б, що щось, що не є модулем, вимагатиме перекомпілювати все ядро, що трохи забороняє звичайні люди, тоді як компіляція модуля порівняно безкоштовна. Я просто озвучую той факт, що немає нічого притаманного Linux, що б не перешкоджало виникненню такого варіанту, тому що це обмеження також дуже сильно зачепило мене.
Xennex81
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.