W systemie Linux można zmienić właściciela lub właściciela grupy dowiązania symbolicznego (dowiązanie symboliczne). Zastanawiałem się, dlaczego ktoś chciałby to zrobić, skoro uprawnienia do dowiązania symbolicznego nie są używane podczas uzyskiwania dostępu do pliku za jego pośrednictwem.
Mogę sobie wyobrazić tylko jeden przypadek użycia, w którym może być przydatny: umożliwić użytkownikowi usunięcie dowiązania symbolicznego w katalogu z lepkim bitem.
Czy znasz inne przypadki, w których warto zmienić właściciela lub właściciela grupy dowiązania symbolicznego?
mv myfile foo
, a root skończy się zmianą właścicielamyfile
. Alemyfile
musi to być plik, który Ewa może utworzyć lub przenieść do tego katalogu, nie może to być żaden plik w systemie.chown -h
jako środek ostrożności przy zmianie właściciela pliku, który nie powinien być dowiązaniem symbolicznym, ale może nim być (przypadek na krawędzi, IMO). To nie wyjaśnia, dlaczego ktoś może chcieć zmienić własność pliku, który w rzeczywistości ma być dowiązaniem symbolicznym, o co pytano.chown
zmieniać właściciela „pliku poza drzewem”, a wszystko, co zmieniasz, to właściciel katalogu?chown -R
, które wywołuje(l)chown
wywołanie systemowe dla każdej pozycji katalogu. Jeśli pozycja katalogu jest dowiązaniem symbolicznym, nie wolno wywoływać wywołaniachown
systemowego, ponieważ wpłynęłoby to na cel łącza, który może znajdować się poza drzewem.Apache można skonfigurować tak, aby śledził dowiązania symboliczne tylko wtedy, gdy właściciel łącza pasuje do właściciela miejsca docelowego. Pomoże to zapobiec tworzeniu przez użytkowników łączy do dostępu do plików, których nie posiadają (np. / Etc / passwd).
... więc powiedzmy, że jako root chciałeś , aby apache podążał za linkiem, aby wyświetlić określony plik dziennika, który był własnością Xymona lub czegoś takiego, ale nie chciałeś rozluźniać bezpieczeństwa apache, pozwalając mu śledzić dowiązania symboliczne niezależnie od właściciela . Wtedy możesz chcieć ustawić Xymon jako właściciela dowiązania symbolicznego.
źródło
/etc/passwd
, to badguy może mieć dostęp do odczytu tego pliku bez żadnego innego lokalnego dostępu - ale zostanie udaremniony przez dowiązanie symboliczne będące własnością apache.Pierwsza odpowiedź nie wydaje się dotyczyć pytania, a druga dotyczy tylko Apache.
Jedną rzeczą, o której mogę pomyśleć w systemie Linux, jest to, że zwykły użytkownik może utworzyć twardy link do dowiązania symbolicznego, jeśli użytkownik jest właścicielem dowiązania symbolicznego. Dlaczego ktoś chciałby utworzyć taki link, nie wiem.
Inną rzeczą jest to, że zwykły użytkownik może zmienić własność grupy pliku tylko wtedy, gdy użytkownik jest właścicielem pliku (i jest również członkiem grupy, do której plik jest dodawany). Pojawia się pytanie, do czego należy własność grupy robi to link symboliczny. W organizacji może być przydatny jako tag wskazujący, który zespół potrzebowałby linku.
Co najmniej na Ubuntu każdy może zaktualizować sygnaturę czasową dowiązania symbolicznego. Jednak mogą istnieć niektóre systemy, które pozwalają tylko właścicielowi. Nie wiem, na co wpływa znacznik czasu dla dowiązania symbolicznego, ale może on dostarczyć użytecznych informacji na temat jego zużycia.
Edycja: Właśnie zdałem sobie sprawę z innego powodu, dla którego własność byłaby ważna. Link może znajdować się w lepkim katalogu, w którym tylko właściciel pliku może go usunąć lub zmienić jego nazwę.
źródło
Mam program, który dołącza się do pliku dziennika. Te pliki dziennika są tworzone co miesiąc, każdy pod inną nazwą. Zamiast tego, aby oprogramowanie określiło dokładną nazwę pliku, używam „ogólnej” nazwy pliku (powiedzmy data.log), która jest dowiązaniem symbolicznym do bieżącego pliku z tego miesiąca. Jest to zautomatyzowane dla zadania cron.
Teraz, gdy tworzony jest nowy plik miesięczny, musi on wskazywać łącze symboliczne do nowego pliku. W przypadku konfliktu własności / grupy oprogramowanie nie może zmienić dowiązania symbolicznego. Potrzebujesz więc praw własności / zapisu grupowego, aby zmienić łącze symboliczne.
źródło
Jeśli chcesz mieć link do pliku na ekranie początkowym, link symboliczny musi znajdować się w
„/ home / nazwa użytkownika / pulpit”
informator.
A samo łącze symboliczne musi mieć własność root: root (0: 0), w przeciwnym razie łącze nie działa.
(Ubuntu / Debian itp.)
źródło