Na Unixie, dawno temu, dowiedziałem się o chmod
: tradycyjnym sposobie ustawiania uprawnień, na Unixie (i pozwalaniu programom na uzyskiwanie uprawnień za pomocą setuid, setgid).
Niedawno odkryłem kilka nowszych poleceń na GNU / Linux:
setfacl
rozszerza tradycyjneugo:rwx
bity it
odrobinęchmod
.setcap
daje większą kontrolę nad płetwą niżug:s
kawałkichmod
.chattr
Pozwala na inne kontrolki (trochę mieszanki) pliku.
Czy są jeszcze jakieś?
linux
permissions
filesystems
gnu
ctrl-alt-delor
źródło
źródło
chmod
Odpowiedzi:
chmod
: zmień bity trybu plikuUżycie (tryb ósemkowy):
Zastosowanie (tryb symboliczny):
references
jest kombinacją literugoa
, które określają dostęp użytkownika dofiles
zmodyfikowanego:u
użytkownik, który jest jego właścicielemg
inni użytkownicy wfile
grupieo
inni użytkownicy spoza grupy plikówa
wszyscy użytkownicyJeśli pominięty, domyślnie przyjmowany jest dla wszystkich użytkowników, ale
umask
modyfikowane są tylko uprawnienia dozwolone przez .operator
jest jedną z postaci+-=
:+
dodaj określone bity trybu pliku do istniejących bitów trybu pliku każdegofile
-
usuwa określone bity trybu pliku z istniejących bitów trybu pliku każdego z nichfile
=
dodaje określone bity i usuwa nieokreślone bity, z wyjątkiem bitówsetuid
isetgid
ustawionych dla katalogów, chyba że wyraźnie zaznaczono.mode
składa się z kombinacji literrwxXst
określających, który bit uprawnień ma zostać zmodyfikowany:r
czytaćw
pisaćx
wykonać (lub wyszukać katalogi)X
wykonaj / szukaj tylko, jeśli plik jest katalogiem lub bit został już ustawiony dla niektórych użytkownikóws
setuid lub setgid (w zależności od podanegoreferences
)t
flaga ograniczonego usuwania lub lepki bitAlternatywnie,
mode
może składać się z jednej z literugo
, w którym to przypadku tryb odpowiada uprawnieniom obecnie przyznawanym właścicielowi (u
), członkowifile
grupy (g
) lub uprawnieniom użytkowników w żadnej z poprzednich kategorii (o
).Różne części
chmod
wyjaśnione:setfacl
)rwx
- odczytaj (r), napisz (w) i wykonaj / cross (x) uprawnienia.#!
) i innych plikach wykonywalnych.s
orazt
- lepki bit (t) i setgid (s) w katalogachs
- setuid, setgid, w plikach wykonywalnych.setcap
bardziej nowoczesny sposób na zrobienie tego.chown
chgrp
:chattr
: zmiana atrybutów plikuStosowanie:
operator
jest jednym ze znaków+-=
: *+
dodaje wybrane atrybuty, aby być istniejącaattributes
odfiles
*-
usuwa wybranyattributes
*=
zastępuje bieżący zestaw atrybutów plików z określonymattributes
.attribute
to kombinacja literacdeijstuADST
, które odpowiadają atrybutom:a
dołącz tylkoc
sprężonyd
bez zrzutue
format zasięgui
niezmiennyj
rejestrowanie danychs
bezpieczne usuwaniet
bez łączenia ogonówu
nieusuwalnyA
brakatime
aktualizacjiD
synchroniczne aktualizacje kataloguS
aktualizacje synchroniczneT
początek hierarchii katalogówsetfattr
: zmień atrybuty pliku rozszerzonegoUżycie (ustaw atrybut):
Użycie (usuń):
name
to nazwa rozszerzonego atrybutu do ustawienia lub usunięciavalue
to nowa wartość atrybutu rozszerzonegosetfacl
: zmiana list kontroli dostępu do plikówStosowanie:
option
musi zawierać jedno z poniższych:--set
ustaw ACL pliku lub katalogu, zastępując poprzednią ACL-m
|--modify
zmodyfikuj listę ACL pliku lub katalogu-x
|--remove
usuń wpisy ACL pliku lub katalogutarget
to jedna z literugmo
(lub dłuższa forma pokazana poniżej):u
,users
pozwolenie określonego użytkownika określonego przezparam
, domyślnie właściciela pliku,uid
jeśli zostanie pominięteg
,group
pozwolenie na nazwaną grupę zidentyfikowane przezparam
, domyślnie jest właścicielem grupy,uid
jeśli zostanie pominiętem
,mask
skuteczna maska uprawnieńo
,other
uprawnienia innych osóbperms
to kombinacja literrwxX
, które odpowiadają uprawnieniom:r
czytaćw
pisaćx
wykonaćX
wykonać tylko wtedy, gdy plik jest katalogiem lub ma już uprawnienia do wykonywania dla niektórych użytkownikówAlternatywnie
perms
może być liczbą ósemkową (0
-7
) wskazującą na zestaw uprawnień.setcap
: zmień możliwości plikuStosowanie:
capability-clause
Zawiera listę rozdzielonych przecinkami zdolności nazwami następuje lista par operatora flag.Dostępne są operatorzy
=
,+
a-
. Flagi są dostępnee
,i
ap
które odpowiadają Skuteczne , dziedziczne i dopuszczalnych zestawów zdolności.=
Operator podniesie określone zestawy zdolności i zresetować innych. Jeśli żadne flagi nie zostaną podane w połączeniu z=
operatorem, wszystkie zestawy możliwości zostaną zresetowane.+
I-
operatorzy będą podnosić lub obniżać jednego lub więcej określonych zestawów zdolności odpowiednio.chcon
: zmień kontekst bezpieczeństwa pliku SELinuxStosowanie:
użytkownik jest użytkownikiem SELinuxa, jak
user_u
,system_u
lubroot
.rola jest rolą SELinuksa (zawsze
object_r
dla plików)typ jest typem przedmiotu SELinuksa
chsmack
: zmień atrybuty rozszerzone SMACKStosowanie:
value
to etykieta SMACK, którą należy ustawić dlaSMACK64
atrybutu pliku rozszerzonegosetrichacl : zmiana bogatej listy kontroli dostępu.
richacl to funkcja, która doda bardziej zaawansowane listy ACL.
Obecnie trwają prace, więc nie mogę ci wiele o nich powiedzieć. Nie korzystałem z nich.
Zobacz także to pytanie Czy istnieją bardziej zaawansowane listy ACL systemu plików poza tradycyjnymi listami ACR „rwx” i POSIX? i strona man
źródło
z wysokiego poziomu:
-rwxrwxrwx
obsługiwane przezchmod
, wraz z właściciela i grupę identyfikatorów przywiązane do każdego pliku lub folderu w systemie plików obsługiwanym przezchown
achgrp
; wszyscy w zasadzie znają ten utwór.inne kluczowe punkty:
user_xattr
i mogłem zdecydować, że xattr nie będzie dostępny w systemie plików root podczas instalacji; myślę teraz z RHEL / CentOS 7, że xattr jest tam domyślnie i nie możesz go nie mieć.ls
jeśli widzisz,-rwxrwxrwx+
że+
wskazuje to na atrybut obiektu rozszerzonego pliku .tar
na urządzeniach z Xattr, jeśli pozostanie w tym systemie, nie ma problemu, ale jeśli pójdzie gdzie indziej, może być problematyczne, jeśli Xattr są ważne (tj. Samba i kopiowanie między Win10 NTFS i Linux Ext3 / 4, btrfs, XFS; lub wstecz i dalej między urządzeniami pamięci masowej podłączonymi do sieci)xattr
s, toxattr
teoretycznie nic nie może znaczyć i może zostać zrzucone lub rozebrane, ponieważ w tym momencie jest to po prostu dodatkowy bagaż.Podstawowy udział Samby nie działa w RHEL / CentOS 7 ... ponieważ selinux domyślnie jest ustawiony na wymuszanie; selinux odrzucił wszystko, dopóki na to nie pozwolisz, więc albo wyłącz selinux (zły), albo ustaw na permissive. Jeśli pozostawisz selinux jako wymuszający, musisz oznaczyć folder, który chcesz udostępnić samba, rozszerzonym atrybutem, aby selinux rozpoznał i zezwolił na udostępnienie. Więc jeśli pozostawisz egzekwowanie selinux, to za pomocą wszystkich poleceń selinux (które następnie ustawią niezbędne
xattr
s):dalej używasz selinux, w systemie linux z tym udziałem samby, aby wymusić ograniczenia plików / folderów w tym udziale samby (używając dowolnego rozszerzonego atrybutu). Ponieważ te pliki / foldery są udostępniane, użytkownik zgodnie z prawem kopiuje niektóre z nich na swój komputer z systemem win10, a następnie kopiuje z powrotem, tracąc atrybut rozszerzony. Teraz, po tej kopii tam i z powrotem, na tym systemie linuksowym selinux ograniczy dostęp do wspomnianych plików, ponieważ niezbędny xattr nie jest już obecny, a użytkownicy / administratorzy uderzają tam głowami, zastanawiając się, dlaczego teraz to działa, nie działa ... ustawić selinux aby zezwolić i rozpoznać problem zagubionych
xattr
s pojawiających się w dziennikach kontroli, ale nie oznacza to bezpośrednio, że był to wynik utraty kopii xattr w obie strony. Weź również pod uwagę tworzenie kopii zapasowych i przywracanie danych oraz potencjalną pracę potrzebną do zapamiętaniaxattr
s oprócz uid / gid, jeśli chcesz egzekwować bezpieczeństwo w oparciu o prawidłowexattr
s.źródło