Moi znajomi usuwają moje pliki za pomocą terminala. Więc pomóż mi, wyjaśniając, jak utworzyć hasło do rm
polecenia.
command-line
permissions
password
rm
aswin
źródło
źródło
unlink
poleceniu. Także omv
poleceniu, ponieważ możesz skutecznie nadpisywać nim pliki. Także ...Odpowiedzi:
Nie ma łatwego sposobu ustawienia takiego hasła w samym
rm
poleceniu, nie bez hakowania kodu, które prawdopodobnie zepsuje rzeczy takie jakapt-get
instalowanie pakietów i usuwanie plików oraz zmuszanie do wprowadzenia hasła tysiąc razy lub potencjalnie zakłócenia dostęp do polecenia dla osób, które będą go potrzebować (takich jak Ty, aby usunąć własne pliki). Możesz to zrobić, mając wiele kont użytkowników i wiele zestawów uprawnień dostępu oraz ograniczając dostęp do różnych sekcji danych, takich jak katalog domowy, aby nie mogli się do niego dostać.(Inną opcją są indywidualne konta użytkowników dla każdego użytkownika, a następnie Listy kontroli dostępu, jak szczegółowo opisano w drugiej odpowiedzi opublikowanej przez Videonauth )
Oto podstawowy problem - pozwalasz znajomym korzystać z twojego systemu. Ma to liczne konsekwencje dla bezpieczeństwa - koncepcja „każdy, kto ma fizyczny dostęp do skrzynki, będzie mógł kontrolować system i wykonywać dowolne zadania”, to Mantra bezpieczeństwa IT, dlatego nie „udostępniasz” fizycznego dostępu do systemów z wyjątkiem zaufanego upoważnionego personelu.
Jedynym naprawdę rozsądny sposób, aby to zrobić, aby nie dać znajomych dostęp do Twojego komputera i dać im „dedykowany system«guest»”, które mogą wykorzystać, że nie troszczą się o plikach na tyle. Jest to najbardziej „bezpieczny” sposób na ochronę plików.
Oczywiście, jeśli nie jest to opcja, jedyną naprawdę bezpieczną opcją jest skonfigurowanie wielu kont użytkowników, po jednym dla każdego użytkownika, z różnymi folderami domowymi i nie zezwalać im na dostęp do własnego katalogu domowego lub dostęp do domu innego użytkownika katalogi. A następnie przechowuj w swoim katalogu domowym wszystko, czego nie chcą, aby się dotykały, i nie dawaj im
sudo
dostępu,root
hasła ani nie udostępniaj im swojego hasła.Oto jak to zrobiłbyś:
Powiedzmy, że mam na imię „Foo” i chcę, aby użytkownik „Bar”, przyjaciel, korzystał z mojego systemu, ale nie miał dostępu do moich plików. Pierwszym krokiem jest odmowa dostępu do nikogo poza mną do mojego katalogu domowego. Jest to w celu umożliwienia innym użytkownikom nie usuwać pliki, ale również uniemożliwić innym użytkownikom węszyć w swoim katalogu domowym i zobaczyć, jakie typy rzeczy masz w swoim katalogu domowym:
Drugim krokiem jest utworzenie konta użytkownika dla „paska” (NIE wpisuj tego, co jest w nawiasach poniżej, to tylko w celach informacyjnych). W ten sposób możemy upewnić się, że ma on własny zestaw praw dostępu:
Trzecim krokiem jest następnie ograniczyć ich katalog domowy zbyt więc nikt nie może podważyć do swoich plików albo. To tylko wyrównuje sytuację.
Umyj ręce, dobrze je spłucz, a następnie powtórz te kroki dla dowolnej liczby użytkowników w systemie. Nie będą mogli uzyskać dostępu do twoich plików, a ponieważ nie przyznasz im uprawnień administratora, nie mogą oni usunąć twoich plików bez próby
sudo
ich wykonania - ponieważ nie pozwalasz na to, nie mogą dotknij swoich rzeczy. Nie będą też mogli zobaczyć twoich plików bez zostania superużytkownikiem, co się tutaj nie zdarzy.ZAWSZE PAMIĘTAJ: Dając komuś fizyczny dostęp do maszyny lub ogólnie dostęp, narażasz swoje pliki i dane na ryzyko. Jest to powszechnie akceptowany fakt w świecie bezpieczeństwa IT, który nadal obowiązuje. Zapewnienie znajomym dostępu do komputera zawsze zagraża Twoim danym, więc albo daj im swój własny system do bałaganu, albo po prostu nie dawaj im dostępu do twojego komputera.
Tylko uwaga na temat szyfrowania dysku
Chociaż szyfrowanie dysku działa dobrze w celu ochrony danych przed osobami trzecimi, istnieją ograniczenia.
Chociaż szyfrowanie dysku nie rozwiązuje tych problemów, nakłada dodatkowe warstwy bólu głowy na aktora zagrożenia. Ktoś, kto jest złym facetem, może się poddać, jeśli jest zaszyfrowany, lub może cię torturować (obowiązkowy komiks XKCD Security w kolejce ).
Dlatego jeśli Twój system jest zaszyfrowany, ale pozwalasz innym użytkownikom go używać, albo mają hasło do odszyfrowania, albo zostawiasz odszyfrowany laptop, aby mogli włączyć SSH lub mieć fizyczny dostęp. W obu tych przypadkach jest źle.
To powiedziawszy, jeśli twój system nie jest zaszyfrowany, ta sekcja nie ma dla ciebie znaczenia.
źródło
apt-get
działadpkg
, który uruchamia często używane skryptyrm
. Na moim Xenialucd /var/lib/dpkg/info; grep -P '\brm\b' *inst
wypisuje 344 wiersze , z których 333 wygląda na rzeczywiste użycierm
polecenia - tylko w skryptach instalacyjnych .grep -P '\brm\b' *rm
pokazuje jeszcze więcej w skryptach usuwania (aby usunąć pliki konfiguracyjne, a nie pliki pakietów).To może tak naprawdę nie dotyczyć
rm
polecenia, ponieważ istnieją proste sposoby usuwania plików bez jego użycia . Jeśli problem polega na tym, że Twoi znajomi mimowolnie niewłaściwierm
używają polecenia, pomocne mogą być rozwiązania ograniczające użycie tego polecenia lub powodujące jego działanie w inny sposób. Natomiast jeśli problem polega na tym, że Twoi znajomi celowo traktują Twoje dane w sposób, którego nie chcesz, musisz wdrożyć rzeczywiste środki bezpieczeństwa i nie ma rozwiązania, które skupiałoby się na samymrm
poleceniu (lub jakimkolwiek dyskretnym zestawie poleceń) zapewni ci bezpieczeństwo.Czy chcesz kontrolować dostęp, czy po prostu zapobiegać szczerym błędom?
Zakładając, że Twoi znajomi wiedzą, że nie chcesz, aby usuwali Twoje pliki, istnieją dwie możliwości:
Mogą to robić celowo. W tym scenariuszu Twoi znajomi celowo usuwają twoje pliki, a nawet nie możesz im ufać, że spróbują spełnić twoje życzenia dotyczące sposobu traktowania twoich danych podczas korzystania z twojego komputera. Jedynym rozwiązaniem tego problemu jest zastosowanie rzeczywistego skutecznego środka bezpieczeństwa , jak szczegółowo wyjaśnił Thomas Ward . Często najlepszym tego rodzaju środkiem jest powstrzymanie ich przed użyciem komputera. Ale zmuszenie ich do korzystania z własnych kont użytkowników może zapewnić pewną ochronę.
Mogli to robić przez pomyłkę. W tym scenariuszu Twoi przyjaciele są wyjątkowo podatni na wypadki i nadal
rm
wykonują polecenia, których nie chcieli. Chcą traktować ciebie i twoje dane z szacunkiem, ale naprawdę źle to robią w praktyce, ponieważ wciąż wykonują niewłaściwe polecenie, usuwają niewłaściwy plik ... lub coś w tym rodzaju. Chociaż byłoby miło wierzyć, że tak się dzieje, ostrzegam cię przed zakładaniem, że ludzie, którzy usuwają twoje dane po tym, jak kazałeś im przestać, działają bez złej woli.Co więcej, nawet jeśli ich intencje są dobre, przydzielenie im oddzielnych kont użytkowników jest nadal najbardziej niezawodnym sposobem zapobiegania ich usuwaniu plików, poza tym, że nie pozwalają im korzystać z twojego komputera.
Jeśli sytuacja jest naprawdę # 2 - twoi znajomi nie próbują usunąć twoich plików, ale potrzebują pomocy, aby nie przypadkowo je usunąć, a jedynym sposobem, w jaki kiedykolwiek je przypadkowo usuną, jest przypadkowe niewłaściwe użycie niewielkiej liczby poleceń (jak
rm
) że mają szczególne problemy z prawidłowym użyciem - wtedy techniki w odpowiedzi Videonauth mogą się przydać . Ale musisz zrozumieć, że nie są to środki bezpieczeństwa, ponieważ komenda jest tylko jednym z wielu sposobów na łatwe Usuń pliki . Szczegóły poniżej.rm
Radzę zadać sobie pytanie: „Czy moja sytuacja jest zasadniczo taka sama, jak gdybym ja, a nie inne osoby korzystające z mojego komputera, korzystałem z niego
rm
nieprawidłowo?”Jeśli odpowiedź brzmi „ nie” , jest to kwestia bezpieczeństwa informacji i musisz uniemożliwić znajomym korzystanie z konta użytkownika. Jeśli odpowiedź brzmi tak , to można używać tych samych metod byłoby użyć, jeśli jesteś tym jedynym nadużywają
rm
:rm file
file
Ale nawet jeśli twoi przyjaciele nie starają się zrobić coś złego, należy jeszcze rozważyć ich stosowanie własnych oddzielnych kont użytkowników . To nadal rozwiąże problem - te same środki bezpieczeństwa, które chronią dane przed zamierzonym zniszczeniem, również chronią je przed przypadkowym zniszczeniem. Nawet bez złośliwych zamiarów, jeśli ktoś nadal robi coś, czego nie chcesz, nie możesz ufać, że powstrzyma się od zrobienia tego.
Wykonywanie
rm
monitów przed usunięciem może zapobiec niektórym błędom.Aby pomóc ludziom uniknąć przypadkowego usunięcia plików z
rm
, można dokonaćrm
do alias powłoki , które faktycznie zjazdyrm -i
. Przekazanie-i
flagirm
powoduje, że monituje użytkownika przed usunięciem każdego pliku (patrzman rm
).Możesz to zrobić (dla swojego konta użytkownika), dodając
alias rm='rm -i'
do swojego.bash_aliases
lub.bashrc
pliku. Zobacz to i tamto, aby poznać szczegóły. To zadziała dla twoich nowo otwartych powłok bash.Nie zapewnia to rzeczywistego bezpieczeństwa i nie jest niezawodne w zapobieganiu błędom, ponieważ:
/bin/rm
lub odblokowanie go (unalias rm
).rm
nie będzie działać-i
.rm
(jak w przypadku podejścia Videonauth - patrz poniżej).Ale jeśli nie potrzebujesz rzeczywistego bezpieczeństwa (patrz wyżej), może to być właściwy sposób. W porównaniu do podejścia polegającego na uniemożliwieniu znajomym korzystania z
rm
polecenia systemowego :Aliasing
rm
zrm -i
jest mniej skuteczny w zapobieganiu błędom - dopóki nie przejdą do korzystania z innej techniki usuwania plików. W tym momencie powstrzymanie ich przed użyciemrm
będzie całkowicie nieskuteczne, nawet jeśli nie będą próbowali zrobić nic złego, ponieważ prawdopodobnie będą używaćunlink
(lub dowolnego z niezliczonych innych poleceń, które usuwają plik) z jednakową bezmyślnością.Z drugiej strony, ponieważ rozszerzenie aliasu występuje tylko w niektórych sytuacjach - z grubsza mówiąc, w zwykłym interaktywnym korzystaniu z powłoki - Twoi znajomi mogą myśleć, że zostaną poproszeni, gdy nie będą tak naprawdę monitowani (ponieważ polecenie jest w na przykład skrypt lub wydany z innej powłoki). Sposób wideo nie ma tego problemu, który jest obiektywną przewagą tej metody
alias rm='rm -i'
.Po uruchomieniu skryptu, chyba że jest napisane celowo, aby używać aliasów, aliasy nie są w nim rozwijane. Oznacza to, że aliasing
rm
dorm -i
jest bardzo mało prawdopodobne, aby cokolwiek zepsuć. Jest to obiektywna zaletaalias rm='rm -i'
.rm
nic nie może zrobić żaden inny zupełnie zwyczajny program.Naprawdę nie ma w tym nic specjalnego
rm
. Jest to wygodny i samo dokumentujący się sposób usuwania plików, więc ograniczenie dostępu do niego grozi złamaniem wielu skryptów, które na nim polegają. Ale nie jest to jedyny sposób usuwania plików - to zwykły program.Kilka poleceń wykonuje pewne zadania, których ograniczony użytkownik (inny niż root ) nie może wykonać bez ich uruchomienia. Na przykład
sudo
pozwala uruchamiać programy jako inny użytkownik, po sprawdzeniu, czy masz na to zgodę.passwd
edytuje bazę danych, w której przechowywane są hasła użytkowników, ale pozwala tylko zmienić własne hasło (chyba że jesteś rootem, w którym to przypadku możesz zmienić hasło każdego użytkownika)./usr/bin/sudo
i/usr/bin/passwd
może to zrobić, ponieważ mają ustawiony bit setuid , jak pokazuje to,s
które pojawia się w lewej kolumnie po uruchomieniuls -l
:Zauważ, że
/bin/rm
nie mas
: są jego uprawnienia-rwxr-xr-x
, a/usr/bin/passwd
i/usr/bin/so
mieć-rwsr-xr-x
zamiast tego. To sprawia, że bez względu na to, kto uruchamiapasswd
lubsudo
faktycznie działa jako użytkownik root, ponieważ root jest właścicielem pliku wykonywalnego. (Istnieje również bit setgid, który po ustawieniu powoduje, że pliki wykonywalne działają z tożsamością grupy właściciela grupy, a nie tożsamości osoby wywołującej.)Z wyjątkiem luk w zabezpieczeniach, które nie zostały jeszcze wykryte (lub które zostały odkryte, ale nie zostały jeszcze załatane)
sudo
ipasswd
są bezpieczne, ponieważ narzędzia te są bardzo starannie napisane, dzięki czemu mogą robić tylko to, na co osoba dzwoniąca powinna mieć pozwolenie do zrobienia./bin/rm
nie działa w ten sposób. To nie jest setuid, bo nie musi tak być. Uprawnienia do katalogu (i czasami uprawnienia do plików ) kontrolują, jakie pliki użytkownik może usunąć, i nie muszą być rootem, aby to zrobić. Żeby było idealnie jasne, proszę nigdy nie włączać bitów setuidrm
. Implikacje dla bezpieczeństwa byłyby katastrofalne, ponieważ od tego momentu, bez względu na to, kto uruchomirm
, to tak, jakby root go uruchomił! (Narzędzia takie jaksudo
ipasswd
sprawdzają, kto tak naprawdę je obsługuje, i sprawdzają, czy coś jest dozwolone przed zrobieniem tego;rm
nie robi czegoś takiego).Sprawdzenie, czy bit setuid (lub setgid) jest ustawiony na pliku wykonywalnym, powie ci, czy ograniczenie tego, kto może go uruchomić, może zwiększyć bezpieczeństwo. Pliki wykonywalne, które nie są setuid (lub setgid), nie mają żadnego specjalnego statusu i każdy może je po prostu skopiować i uruchomić kopię, przynieść własną kopię z innego komputera, napisać skrypt lub program, który robi to samo, lub użyć inny program, aby to zrobić.
Usuwanie plików bez
rm
Oczywistym sposobem na usunięcie pliku bez
rm
Ubuntu jest przejście do jego lokalizacji w graficznej przeglądarce plików (Nautilus, jeśli używasz Unity lub GNOME Shell) i usunięcie pliku. Istnieje również wiele poleceń, których można użyć do usunięcia pliku z terminala, bez jego użyciarm
.Na przykład, aby usunąć plik wywołany
foo.txt
w bieżącym katalogu,rm
osiągną to następujące polecenia, które działają w systemie Ubuntu i nie wymagają dostępu . (Dla pewności przetestowałem je na minimalnym systemie 16.04 zainstalowanym tylko ze standardowymi narzędziami systemowymi, po usunięciu/bin/rm
).unlink foo.txt
busybox rm foo.txt
perl -e 'unlink("foo.txt")'
python3 -c 'import os; os.remove("foo.txt")'
(python
zamiastpython3
w starszych wersjach)Ta lista oczywiście nie jest jeszcze prawie kompletna. Nie jest możliwa pełna lista takich poleceń. Zapobieganie usuwaniu plików to jedna z rzeczy, do których istnieją oddzielne konta użytkowników oraz uprawnienia do plików i katalogów. Działają bardzo dobrze, aby temu zapobiec. Natomiast zmiana
rm
polecenia (aby wymagało hasła lub w jakikolwiek inny sposób) lub ograniczenie dostępu, aby wrm
ogóle go nie zapobiec.źródło
rm
„s-I
opcja. Monituje tylko o usunięcie 4 lub więcej plików lub o rekurencyjne usunięcie. Nie masz więc zwyczaju używania-f
,\rm
unikania rozwijania aliasu lub pisaniay
bez czytania. Ale nadal uratuje cię od złych literówek, w których wciśniesz return, zanim miałeś zamiar, lub twoja glob dopasowała wiele plików.mv foo.txt /tmp/.gone
następnie uruchom ponownie komputer, odrzucając tmpfs, który był tworzony/tmp
. Lub po prostu użyj,mv
aby zmienić nazwę wielu plików na wszystkie o tej samej nazwie, więc pozostanie tylko ostatni. Lub po prostu ukryj pliki, zmieniając ich nazwy na niejasne nazwy. Jak wskazuje pierwsza część tej odpowiedzi, jeśli próbujesz bronić się przed złośliwością, a nie niekompetencją, musisz po prostu zablokować ludzi na swoim koncie.Możesz zmienić uprawnienia do
/bin/rm
polecenia za pomocą następującego wiersza, co uniemożliwi wykonanie go bez dostępu sudo:W szczególności uniemożliwia im to korzystanie z
rm
polecenia dostarczonego przez system. Należy pamiętać, że nie zapobiega to usuwaniu plików w inny sposób.Aby również uniemożliwić im korzystanie z
rmdir
polecenia, które jest powszechnym sposobem usuwania katalogów, możesz ustawić uprawnienia w ten sam sposób na ścieżce wykonywalnej:Przypomnij, że również możesz używać tych poleceń tylko z uprawnieniami sudo.
Aby zmienić go z powrotem, jeśli nie podoba czy inne problemy występują wykorzystania
755
dlachmod
Jak zauważył @muru, powyższe jest bardzo prymitywnym rozwiązaniem i może nawet zepsuć usługi systemowe, które nie działają na koncie root . Dlatego dodam tutaj kolejną opcję za pomocą ACL (listy kontroli dostępu), aby zrobić to samo i prawdopodobnie znacznie bezpieczniejsze ( dobrze w tym również czytać i można pominąć część włączającą, ponieważ ACL jest obecnie instalowana w systemach Ubuntu):
Zrób tak samo jak powyżej tylko dla użytkowników, których chcesz zablokować
Po prostu zastąp
<user-name>
je rzeczywistymi nazwami użytkowników, których nie chcesz używać.Podobnie jak w przypadku
chmod
,setfacl -m
aby uniemożliwić uruchamianie określonych użytkownikówrm
irmdir
dotyczy tylko tych poleceń systemowych. Nie chroni ich przed usunięciem plików i folderów w Nautilusie lub za pomocą innych poleceń terminalu.Wyjaśnienie:
-m
flaga oznacza zmodyfikować pliki ACL.u
oznacza użytkownika. Może mieć następujące wartościu
dla użytkownika,g
grupy io
wszystkich innych<user-name>
może zawierać rzeczywistą nazwę użytkownika lub nazwę grupy zgodnie z tym, co chcesz zmienić. Aby ustawić ogólne zmiany, pozostaw to pole puste.-
, może również zawierać następujące literyr
dla uprawnień do odczytu, uprawnieńw
do zapisu ix
wykonania.źródło
sudo setfacl -m u:<username>:- /bin/rm /bin/rmdir
, IIRC. Możesz przetestować ACL za pomocągetfacl /bin/rm /bin/rmdir
rm
. Rozwiązanie podane tutaj przez Videonauth jest możliwym sposobem na pomoc podatnym na wypadki użytkownikom w zaprzestaniu usuwania rzeczy, ale nie zapewnia żadnego rzeczywistego bezpieczeństwa (co może być w porządku, jeśli przyjaciele PO nie zamierzają celowo obalić życzeń PO) . Videonauth: Sugeruję edycję tego postu, aby wyraźnie wyjaśnił, że tak naprawdę nie przeszkadza ludziom w usuwaniu plików, ponieważ nie potrzebują do tegorm
polecenia. (Powstrzymuję się od samodzielnego edytowania, na wypadek, gdybyś nie chciał tego powiedzieć).rm
polecenia.Jest to bardzo prosta odpowiedź i powstrzyma kogoś od niechcenia przy użyciu polecenia rm bez podawania hasła. To nie jest bezpieczne rozwiązanie i należy zasugerować niektóre alternatywne sugestie w innych odpowiedziach.
Można jednak użyć aliasu, aby zmienić sposób działania polecenia rm. Próbować:
alias rm="sudo -l >/dev/null && rm"
Działa to wtedy, gdy ktoś wpisze polecenie rm, uruchamia polecenie sudo -l. To polecenie zmusza użytkownika do podania hasła. Jeśli dobrze to zrobią, wyświetli listę ich uprawnień (odrzucamy to wyjście) i kończy pracę ze statusem 0, jeśli źle zrozumieją, istnieje błąd.
Następnie wykonujemy polecenie sudo za pomocą „&&”, który kończy następującą komendę - w tym przypadku „rm” tylko wtedy, gdy poprzednia komenda kończy się ze statusem 0 - tzn. Ma prawidłowe hasło.
Aby to zmienić na stałe, włącz polecenie alias w
~/.bashrc
.Zauważ, że jest to bardzo łatwe do pokonania (na przykład mogą po prostu pisać
/bin/rm
.źródło
Czasami to nie są nasi przyjaciele, jesteśmy naszymi najgorszymi wrogami
Napisałem skrypt do ochrony hasłem, zgodnie
rm
z żądaniem OP, ale wprowadziłem również zmiany, aby zapobiec przypadkowemu usunięciu:Edycja: 5 marca 2017 r. - Zmień metodę sprawdzania, czy działa w terminalu.
Utwórz skrypt
Użyj
gksu gedit /usr/local/bin/rm
i skopiuj w tych wierszach:Zmień hasło „WE2U” na dowolne i zapisz plik.
Oznacz nowy
rm
skrypt jako wykonywalnyOznacz nowy
rm
skrypt jako wykonywalny, używając:Jak to działa
Jeśli hasło nie jest WE2U , przy pierwszym uruchomieniu skryptu pojawi się „nieprawidłowe hasło” i wyświetlony zostanie klucz szyfrowania dla wprowadzonego hasła. Skopiuj i wklej ten klucz szyfrujący z terminala do skryptu. Następnie skomentuj wiersz za pomocą echa, które wyświetlało klucz szyfrujący na terminalu.
Ponieważ ścieżka
/usr/local/bin
znajduje się wyżej na liście niż/bin
nasza komendarm
jest wywoływana. Po uzyskaniu prawidłowego hasła woła,/bin/rm
aby wykonać prawdziwe usunięcie.Jak zauważył Thomas Ward w innej odpowiedzi, jeśli to zrobisz,
sudo apt-get install ...
możesz zostać poproszony o hasło tysiąc razy. Skrypt sprawdza, czysudo
jest używany i nie prosi o hasło. Ponadto, jeślirm
jest wywoływany z poziomu aplikacji GUI, hasło nie jest wymagane.Wywołania skryptu
logger
do nagrywania za każdym razemrm
były ręcznie wywoływane za pomocą terminala. Użycie polecenia jest rejestrowane w/var/log/syslog
.źródło
Inną alternatywą byłoby utworzenie kopii zapasowych dowolnych ważnych plików w katalogu, do którego użytkownicy inni niż root nie mają dostępu. Możesz użyć ich
rsync
lubunison
automatycznie zsynchronizować, po prostu upewnij się, że przynajmniej jeden katalog w ścieżce do miejsca docelowego kopii zapasowej jest własnością root i trybu 700. Spowodowałoby to jednak posiadanie dwóch kopii wszystkich plików. Bezpieczniej byłoby po prostu utworzyć użytkownika-gościa, z którego będą mogli korzystać, z wyjątkiem tego, że musisz pamiętać, aby zawsze blokować lub wylogowywać się przed przekazaniem komputera lub pozostawieniem go bez nadzoru.źródło
Nie bezpośrednia odpowiedź na pytanie, którego szukasz, ale:
Jeśli twoi znajomi usuwają twoje pliki za pomocą
rm
polecenia, to albo twoi znajomi są niekompetentni, szarpią się, albo są ochotnikami BOFH, którzy próbują nauczyć cię, abyś nie zostawiał sesji zalogowanych i bez nadzoru. We wszystkich przypadkach rozwiązanie jest takie samo: nie pozostawiaj sesji zalogowanej i bez nadzoru .Ma to tę zaletę, że nie trzeba pamiętać o wprowadzaniu specjalnych zmian w systemie za każdym razem, gdy aktualizujesz lub uzyskujesz nowy system, a także zapobiega używaniu skryptów i innych rzeczy, które korzystają z poleceń zachowujących się zgodnie z oczekiwaniami, w nieprzewidziany sposób.
Ma również tę zaletę, że powstrzymuje „przyjaciół” od przejścia do następnego kroku. Czy chcesz także „zabezpieczyć hasłem”
mv
komendę, jeśli zdecydują się przenieść twoje pliki do / dev / null, gdy dowiedzą się, że proste usunięcie nie robi tego, czego chcą? Gdy grasz w taką grę, jedynym zwycięskim ruchem jest nie grać.źródło
Mam podobną możliwość, którą zaplanowałem. Na serwerze plików, jeśli główna pamięć zdjęć jest zapisywalna, że ktoś z rodziny (mniej techniczny lub przypadkowo) może coś usunąć, przypadkowo przeciągnąć GUI, który przenosi katalog, lub zastąpić oryginał edytowaną wersją zamiast zmiany nazwy .
Uświadomiłem sobie, że mogę się przed tym zabezpieczyć, nie czyniąc uprawnień niemożliwymi do zaakceptowania dla wszystkich innych. ZFS tworzy okresowe migawki, aby można było odwrócić każde przypadkowe usunięcie lub zastąpienie. (W przeciwieństwie do kopii zapasowej, migawka jest lekka i umożliwia kopiowanie przy zapisie, więc nie zwielokrotnia zużycia pamięci).
ZFS pochodzi z FreeBSD. Linux ma btrfs, który również ma migawki.
źródło
Bardzo głupie obejście bardzo głupiego problemu.
Jeśli nie chcesz
chmod
rm
,rmdir
lubmv
(zamv filename /dev/null
) lub używanie ACL, można utworzyć użytkownika atrapę z hasłem, ale nikt nie wie, a każde polecenie alias dosudo [user]
, a następnie zrobić aliasy dla każdego polecenia, że twoi przyjaciele nie wiedzą . W ten sposób, gdy Twoi znajomi napiszą,rm
system poprosi ich o podanie hasła (ale błędne odgadnięcie hasła spowoduje zarejestrowanie nieudanej próby), a Ty nadal możesz po prostu wpisaćrmalias
lub cokolwiek, co chcesz usunąć.Możesz też utworzyć konto gościa, które nie ma dostępu do twojego katalogu domowego.
źródło
sudo [user]
orazdummy user
Jeśli chcesz zabezpieczyć hasłem rm, rozwiązaniem byłoby utworzenie opakowania dla rm , które wymagałoby uprawnień roota, i w przeciwnym razie poprosiłbyś o hasło. (UWAGA: to opakowanie może zniknąć, gdy pakiet Coreutils zostanie zaktualizowany lub ponownie zainstalowany.) Należy również pamiętać, że to tylko zabezpiecza rm, wciąż istnieje wiele, wiele innych sposobów usuwania pliku.
Otwórz terminal i zostań rootem. Następnie biegnij,
sudo mv /bin/rm /bin/rmold
aby przenieść stary RM w inne miejsce.Teraz uruchom,
sudo nano /bin/rm
aby utworzyć opakowanie.W Nano wpisz następujące polecenie:
Następnie przytrzymaj
CTRL
i naciśnij,X
aby wyjść. NaciśnijY
po wyświetleniu monitu, a następnie naciśnij,ENTER
aby zapisać plik.Wreszcie musimy nadać temu odpowiednie uprawnienia:
I proszę bardzo.
źródło
$@
=>"$@"
. Tutaj proponujesz bardzo niebezpieczną wersję oryginału i bezpiecznąrm
: co, jeśli istnieje plik o nazwiefoo -i -r *
(-i
dodany w celu ochrony niewinnych użytkowników)?"
-quotowania,$@
jak mówi @xhienne, zachęcam do wyraźnego ostrzeżenia czytelników, że nie zapewnia to żadnego bezpieczeństwa, ponieważ istnieje wiele sposobów na usunięcie pliku. Jednym z nich jest zadzwonićrmold
, ale istnieje wiele innych sposobów, jak omówiono w innych odpowiedziach i komentarzach na ich temat. (Nawet wtedy, to będzie miał problem, żerm
będzie czuć się jak usuwa pliki jako bieżącego użytkownika - nazywa bezsudo
, a normalnerm
działa jako rozmówcy - ale robi to jako root Jeśli już oni niedawnosudo
ed wygrali” zauważają, że mogą usuwać pliki systemowe, nawet jeśli wiedzą o zmianie.)