Czy można wyłączyć uprawnienia do plików w systemie plików ext3 lub ext4?


10

Czy można wyłączyć uprawnienia do plików w systemie plików ext3 / 4?

Zastanawiam się tylko, czy można całkowicie wyłączyć lub zignorować uprawnienia do plików w systemie plików ext3 lub ext4. Być może opcja montażu?

Nie martwię się o konsekwencje dla bezpieczeństwa, ponieważ robiłbym to dla testów i na nośnikach wymiennych.


2
Dlaczego chcesz usunąć uprawnienia do plików z systemu plików ext3 lub ext4? Zostały zbudowane z uwzględnieniem uprawnień do plików POSIX. Jeśli chcesz użyć systemu plików z ograniczonymi opcjami uprawnień, być może coś takiego jak FAT32 lub exFAT byłoby lepsze?
Rob Gibson

Jestem ciekawy, czy istnieje opcja natywna dla Linuksa
Corey

2
Jest to natywna dla Linuksa opcja używania FAT32, ponieważ jest to obsługiwany system plików. Musisz po prostu użyć systemu plików, który nie jest przeznaczony dla systemów POSIX, ponieważ są to systemy obsługujące uprawnienia do plików.
Rob Gibson,

1
nie $ sudo chmod -R 777 /your/filesystemzrobiłby lewy?
Red Cricket

1
@RedCricket, które byłoby obejściem, gdyby odpowiedź okazała się przecząca
Corey

Odpowiedzi:


5

To nie jedyne, co możesz zrobić.

Istnieje sposób, aby po prostu przyznać wszystkim uprawnienia bez korzystania ze zwykłych uprawnień, które zaśmiecą Twój ekran (w pewien sposób).

Oznacza to, że ls --color(domyślnie) zawsze będzie wyświetlane o:rwXw tle bloku, co jest ohydne i ma na celu ostrzeganie użytkowników o złych uprawnieniach (gdy są odpowiednie dla Ciebie).

Ale możesz łatwo osiągnąć uniwersalne (lub prawie uniwersalne) uprawnienia do zapisu plików, korzystając z list kontroli dostępu .

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

przyzna uprawnienia rwX wszystkim osobom w grupie sudo. Ponieważ większość twoich systemów, będziesz mieć użytkownika w grupie sudo, szczególnie w przypadku nośników wymiennych (a zatem systemów lokalnych) zawsze będziesz miał dostęp w dowolnym miejscu dla każdej osoby w tej grupie (czyli ciebie). Możesz także rozszerzyć go na użytkowników, jeśli korzystasz z innego systemu, który korzysta z tej grupy:

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

Flaga -d oznacza, że ​​uprawnienia będą propagowane do wszystkich nowo tworzonych plików (domyślnie). Jedynym minusem jest to, że normalnie nie widzisz tych uprawnień, co oznacza, że ​​wolisz je całkowicie wyłączyć (co w takim razie jest przydatne na nośniku do usuwania, jeśli ustawisz uprawnienia, które i tak każdy może obejść, prawda?). To tak, jakby powiedzieć: możesz uzyskać dostęp do tych plików, jeśli nazywasz siebie John. Okej, nazywam siebie John. Dobra, masz teraz dostęp.

(Każdy może założyć root na każdym systemie, który posiada, a zatem uprawnienia systemu plików nic nie znaczą).

ExtFS po prostu nie jest przeznaczony dla nośników wymiennych. Nie ma systemów plików Linux, które byłyby naprawdę przydatne na nośnikach wymiennych, ale FAT i NTFS mają wadę polegającą na tym, że tak naprawdę nie obsługują dowiązań symbolicznych i nie wykonują flag, co jest trudne na przykład dla repozytoriów git. Tylko moja opinia tutaj.

Możesz zobaczyć swoją listę ACL tylko poprzez:

getfacl <file>

A kiedy ls -l zobaczysz:

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

Znak + wskazuje, że w pliku (lub katalogu) jest aktywna lista ACL.

Wyjście getfacl będzie (na przykład):

# 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

Nie znam wszystkich szczegółów, ale to powinno zadziałać. Tak długo, jak jesteś w sudo, możesz zrobić wszystko.


4

Nie, nie możesz upuścić uprawnień do plików dla systemów plików ext {2,3,4}.

Jedyne, co możesz zrobić, to ustawić wszystkie pliki na 777 uprawnienia.

Po prostu biegnij:

 chmod a+rwX -R <mountpoint>

4
Lepiej, chmod a+rwX -R <mountpoint>aby nie dawać fałszywych uprawnień do wykonywania.
vonbrand

@ vonbrand w prawo
H.-Dirk Schmitt

ale Xin chmod a+rwXpowoduje, że wszystkie pliki są wykonywalne, prawda? To dobra rzecz??
becko,

3
@becko Przegapiłeś punkt dwóch poprzednich komentarzy. Wielkie litery Xsprawią, że katalogi będą wykonywalne (możliwe do wprowadzenia), bez plików wykonywalnych; podczas gdy małe litery xsprawią, że wszystkie pliki i katalogi będą wykonywalne.
XA21X,

0

Oczywiście uprawnienia do systemu plików są sprawdzane tylko przez sterownik (moduł) systemu plików, a jeśli miałbyś załatać ten moduł, możesz wyłączyć uprawnienia do systemu plików, jak tylko chcesz.

Kiedyś zrobiłem to dla cifs.ko, modułu „Samba” (klienta) dla jądra, ponieważ istnieją pewne błędy samby, w których powinieneś mieć dostęp lokalny i masz dostęp zdalny, ale dostęp nie jest przyznawany.

Wyłączyłem sprawdzanie uprawnień lokalnych, czy użytkownik lokalny był w (lokalnej) grupie pliku, tak samo jak opcja „noperm”, tym razem aktywując się tylko, gdy jesteś członkiem grupy.

Oczywiście, extfs nie jest dokładnie modułem w jądrze, ale dodanie nowej flagi byłoby trywialne.


Nie jestem pewien, czy odpowiadasz na pytanie, czy nie. Mówicie, że to możliwe, jeśli to był moduł, to mówicie, że to nie jest moduł.
Jeff Schaller

Byłoby to możliwe, gdyby słońce tańczyło również na niebie. Gdybyś wiedział coś o jądrze, wiedziałbyś, że coś, co nie jest modułem, wymagałoby ponownej kompilacji całego jądra, co jest nieco zabronione dla zwykłych ludzi, podczas gdy kompilacja modułu jest stosunkowo darmowa. Mówię tylko, że w Linuksie nie ma nic nieodłącznego, co uniemożliwiałoby powstanie takiej opcji, ponieważ to ograniczenie bardzo mnie również wkurzyło.
Xennex81,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.