Pliki i katalogi w systemach Linux należą do kogoś. Możesz zmienić ich własność za pomocą polecenia chown. Pokażemy Ci, jak to zrobić.
Spis treści:
Każdy plik należy do użytkownika i grupy
Linux to system dla wielu użytkowników. System operacyjny umożliwia zdefiniowanie wielu kont użytkowników i zalogowanie się do komputera dla każdego ważnego użytkownika. Co więcej, wielu użytkowników może korzystać z jednego komputera w tym samym czasie.
Aby zachować rejestr, które pliki należą do którego użytkownika i wymusić pewne zabezpieczenia, Linux używa koncepcji własności. Każdy plik należy do właściciela – użytkownika – i do grupy.
Po utworzeniu pliku jego właścicielem jest użytkownik, który go utworzył. Grupa, do której należy plik – grupa „będąca właścicielem” – to bieżąca grupa użytkownika. Użytkownicy i grupy mają nazwy, a także mają tożsamości numeryczne, zwane identyfikatorem użytkownika (lub unikalnym) (UID) i identyfikatorem grupy (GID).
Kiedy tworzysz plik, jest on Twoją własnością i należy do Twojej bieżącej grupy. Zwykle jest to grupa, do której się zalogowałeś. Domyślnie jest to grupa, która ma taką samą nazwę jak Twoja nazwa użytkownika i została utworzona, gdy zostałeś utworzony jako użytkownik w systemie.
Możesz użyć polecenia chown, aby zmienić wartości własności na coś innego. Możesz ustawić nowego właściciela, nową grupę lub nowego właściciela i nową grupę w tym samym czasie. Właściciel pliku może zmienić własność grupy, ale tylko root może zmienić własność użytkownika, ponieważ dotyczy to innego użytkownika. Bez uprawnień roota nie możesz zmusić innego użytkownika systemu do nieświadomej „adopcji” pliku.
Dlaczego chciałbyś zmienić prawo własności?
Oto kilka przykładów sytuacji, w których możesz chcieć to zrobić:
Jeśli przenosisz pliki między różnymi systemami operacyjnymi Linux lub Unix, będziesz musiał zmienić właścicieli użytkowników i grup na nowego użytkownika i właścicieli grupy konta, na którym chcesz używać plików na nowym komputerze z systemem Linux.
Użytkownik może opuścić Twoją organizację, a za wszystkie jego pliki będzie odpowiadał inny pracownik. Będziesz musiał zmienić właściciela i właściciela grupy na pracownika, który jest teraz odpowiedzialny za te pliki.
Możesz napisać skrypt, który będzie używany przez określonego użytkownika.
Możesz utworzyć plik lub katalog zalogowany jako root, ale chcesz, aby był dostępny dla określonego użytkownika.
Przeglądanie Twoich grup, UID i GID
Do wymień grupy jesteś w środku, możesz użyć polecenia grup.
groups
Aby uzyskać listę grup, ich numeryczne identyfikatory, oraz twój UID i GIDużyj polecenia id:
id
Możesz użyć niektórych opcji z identyfikatorem, aby zawęzić wynik.
-u: Podaj swój UID.
-g: Podaj swój efektywny (bieżący) GID.
-nu: Podaj swoją nazwę użytkownika.
-ng: Wyświetla aktualną nazwę grupy.
id -u
id -g
id -nu
id -ng
Przeglądanie praw własności do pliku przez użytkowników i grupy
Aby zobaczyć właścicieli pliku lub katalogu, użyj opcji -l (long listing) z ls.
ls -l
Widzimy, że imię dave pojawia się dwukrotnie na liście. Wygląd po lewej stronie mówi nam, że właścicielem pliku jest użytkownik o imieniu dave. Dave znajdujący się najbardziej po prawej stronie informuje nas, że plik należy do grupy nazywanej również dave.
Domyślnie, kiedy tworzony jest użytkownik Linuksa, jest on dodawany do prywatnej grupy o nazwie odpowiadającej jego nazwie użytkownika. Są jedynymi członkami tej grupy.
Właścicielem tego pliku wykonywalnego jest użytkownik mary, a grupa, do której należy plik, jest prywatną grupą mary.
ls -l
Ten plik jest własnością użytkownika oscar, ale grupa, do której należy plik, nazywa się researchlab. Oznacza to, że inni członkowie grupy badawczej mogą uzyskać dostęp do tego pliku, zgodnie z uprawnieniami do pliku, które zostały ustawione dla członków tej grupy.
Zmiana prawa własności użytkownika
Przeanalizujmy kilka przykładów. Ta komenda zmieni prawa własności użytkownika do pliku while.c na użytkownika mary.
sudo chown mary while.c
Możemy użyć ls, aby zobaczyć zmiany we właściwościach pliku.
ls -l while.c
Możesz użyć chown, aby zmienić własność kilku plików jednocześnie.
sudo chown mary getval.c global.c goto.c
Spowoduje to zmianę prawa własności użytkownika do wszystkich trzech plików.
ls -l getval.c global.c goto.c
Możesz użyć symboli wieloznacznych, aby wybrać grupy plików. To polecenie zmieni prawa własności użytkownika do wszystkich plików zaczynających się na literę „c”.
sudo chown mary c*.*
Mary będzie teraz właścicielem wszystkich plików. Zwróć uwagę, że żaden z właścicieli grup nie został zmieniony.
ls -l mary c*.*
Zmieńmy własność katalogu. Po prostu przekazujemy nazwę katalogu do chown zamiast nazwy pliku.
sudo chown mary ./archive/
Aby sprawdzić właściwości katalogu, używamy ls, ale używamy również opcji -d (katalog). Zawiera listę właściwości katalogu, a nie plików w nim zawartych.
ls -l -d ./archive/
Aby zmienić prawa własności do wszystkich plików w katalogu, możesz użyć opcji -R (rekurencyjna). Ta opcja zmieni prawa własności użytkownika do wszystkich plików w folderze archiwum.
sudo chown -R mary ./archive/
Teraz spójrzmy na pliki w katalogu archiwum.
ls -l ./archive/
Jak można się spodziewać, wszystkie pliki należą teraz do Mary.
Zmiana prawa własności do grupy
Istnieją różne sposoby zmiany własności grupy.
Aby zmienić prawo własności do grupy w tym samym czasie, gdy zmieniasz prawa własności użytkownika, przekaż nazwę nowego właściciela i nową nazwę grupy, oddzielając je dwukropkiem „:”. Grupa musi już istnieć.
sudo chown mary:researchlab charm.c
Właściciel użytkownika i grupa, do której należy plik, zostały zmienione.
ls -l charm.c
Skrócony sposób zmiany własności grupy na bieżącą grupę nowego właściciela, wystarczy podać dwukropek i pominąć nazwę grupy.
sudo chown mary: caps.c
ls -l caps.c
Zarówno własność użytkownika, jak i własność grupy zostały zmienione na mary.
Aby zmienić tylko własność grupy, poprzedź ją dwukropkiem i pomiń nazwę użytkownika. Właściciel użytkownika nie zostanie zmieniony.
sudo chown :researchlab at.c
ls -l at.c
Własność grupy została zmieniona, ale własność użytkownika pozostaje taka sama.
Używanie Chown z wartościami UID i GID
Możesz użyć numerycznych wartości UID i GID z poleceniem chown. To polecenie ustawi użytkownika i prawa własności do grupy na mary.
sudo chown 1001:1001 at.c
ls -l at.c
Posiadanie to dziewięć dziesiątych prawa
A przynajmniej tak mówią. Ale w Linuksie własność jest ogromną częścią bezpieczeństwa plików, a uprawnienia do plików zapewniają pozostałą część. Użyj poleceń chown i chmod, aby zabezpieczyć dostęp do plików w systemie.