Mam skrypt do przesyłania kopii zapasowej, który scp pliki na inny serwer przy użyciu użytkownika upload
. Kolejny skrypt na serwerze docelowym wyświetla go innemu użytkownikowi i ustawia tryb pliku na 755
.
Jeśli następnie upload
połączę SSH z serwerem docelowym za pomocą użytkownika, będę mógł usunąć wybrane pliki. Czy nie powinny być tylko do odczytu?
Oto jak wygląda plik na serwerze docelowym, a użytkownik upload
może go usunąć.
-rwxr-xr-x 1 maciekish maciekish 650M Nov 1 01:07 2014-11-01-data.tar.bz2
Użytkownik upload
został właśnie dodany przy użyciu useradd
i nie należy do maciekish
grupy.
Kiedy próbuję usunąć plik jak upload
za pośrednictwem ssh, pojawia się pytanie, czy chcę usunąć „zapisz chroniony zwykły plik” i jestem w stanie to powiedzieć Y
i usunąć.
linux
security
file-permissions
Maciej Swic
źródło
źródło
rm
usuwać pliki tylko do odczytu?Odpowiedzi:
Pliki są tylko do odczytu; jednak usunięcie pliku nie modyfikuje go, a jedynie katalog macierzysty (w zasadzie usuwa plik z listy katalogów) - i wygląda na to, że masz pełne uprawnienia do zapisu do katalogu.
Możesz ustawić
sticky
bit - aka flagę „ograniczonego usuwania” - która uniemożliwi każdemu oprócz właściciela zmiany nazwy lub usuwanie plików w tym katalogu (np/tmp
. In ). Aby to zrobić, uruchomchmod o+t *directory*
jako właściciel katalogu.źródło
W typowym systemie plików Unix każdy plik można zidentyfikować na podstawie dowolnej liczby pozycji katalogu, z których każda zawiera „twardy link”.
Z punktu widzenia implementacji istnieje różnica między usunięciem ostatniego wpisu katalogu (twardego łącza) dla pliku a po prostu usunięciem jednego z wielu odniesień. Jednak z semantycznego punktu widzenia nie ma różnicy.
Jeśli istnieje wiele twardych dowiązań do pliku, zapis do pliku przy użyciu dowolnego z nich zmienia plik widoczny dla wszystkich.
rm
Jednak użycie linku powoduje, że plik nie jest dostępny za pośrednictwem tego linku. Inne łącza do pliku nadal wyświetlają dokładnie ten sam plik.źródło
st_nlink
(„liczba twardych linków”) wstruct stat
. Krótko mówiąc, katalogi zawierają twarde linki do plików.