Jeśli mam folder w folderze /var/secret/
i udzielam użytkownikowi dostępu do sudo
polecenia, czy istnieje sposób, aby umożliwić mu pełny dostęp do wszystkich innych miejsc, ALE /var/secret/
i absolutnie nie mieć do niego dostępu?
1
sudo
jest wysoce konfigurowalny i istnieje, więc nie musisz zapewniać użytkownikom pełnego dostępu roota. Co dokładnie muszą być w stanie zrobić?sudo
polecenie. Ale co robić? Jeśli to daje im pełny dostęp do roota, to odpowiedź jest niemożliwa, ponieważ root jest rootem. Ale jeśli chcesz dać imsudo
polecenie zrobienia podzbioru rzeczy, wówczas odpowiedź „być może zależy”. Stąd prośba o wyjaśnienie.Odpowiedzi:
Jest to prawie (ale nie teoretycznie) niemożliwe. Gdy użytkownik ma dostęp do sudo, który nie jest bardzo ograniczony, ma dostęp do roota - na przykład uruchomienie sudo / bin / bash utworzy powłokę bash z uprawnieniami roota i będzie w stanie obejść wszelkie mechanizmy wprowadzone przez roota.
Teoretycznym sposobem na to byłoby stworzenie reguł sudo, które pozwolą użytkownikowi robić prawie wszystko, czego chcą / potrzebują, z wyjątkiem możliwości wykonywania wszystkich poleceń, które mogłyby uzyskać dostęp do tego zasobu - prawie na pewno nie jest to możliwe w praktyce.
Możesz także użyć SELinux lub Apparmour, aby ograniczyć dostęp do katalogów - ale znowu, ktoś z rootem może to cofnąć.
Możesz udaremnić dostęp do określonego zasobu, utrzymując go w postaci zaszyfrowanej i podłączając zaszyfrowany wolumin - spodziewam się, że to nie uniemożliwi dostępu, ale uniemożliwi przypadkowy dostęp. [Zauważam, że kiedy używam FUSE do zdalnego montowania systemu plików jako użytkownik, tylko użytkownik, który zamontował system plików, może uzyskać do niego dostęp. Oczywiście, ponieważ jestem rootem, mogę po prostu SU wrócić do tego użytkownika i zobaczyć pliki - i bez wątpienia istnieją inne sposoby, aby to zrobić] Ponadto, jeśli zasób nie zostanie zamontowany, gdy użytkownik ma dostęp do roota, a kluczem jest nie przechowywane w pamięci, oni też nie mogą tego zdobyć.
źródło