Jak korzystać z polecenia chown w systemie Linux

Pliki i katalogi w systemach Linux należą do określonych użytkowników. Możesz zmienić ich własność za pomocą polecenia chown. W tym artykule pokażemy, jak to zrobić.

Każdy plik należy do użytkownika i grupy

Linux to system operacyjny przeznaczony dla wielu użytkowników. Umożliwia on zdefiniowanie wielu kont użytkowników i zalogowanie się do komputera przez każdego z nich. 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 oraz wymusić pewne zabezpieczenia, Linux stosuje koncepcję własności. Każdy plik należy do właściciela, którym jest użytkownik, oraz do grupy.

Po utworzeniu pliku jego właścicielem jest użytkownik, który go utworzył. Grupa, do której należy plik, zwana „grupą będącą właścicielem”, to bieżąca grupa użytkownika. Użytkownicy i grupy mają nazwy oraz tożsamości numeryczne, zwane identyfikatorem użytkownika (UID) i identyfikatorem grupy (GID).

Kiedy tworzysz plik, jest on Twoją własnością i należy do Twojej bieżącej grupy. Zazwyczaj jest to grupa, do której się zalogowałeś. Domyślnie jest to grupa o nazwie identycznej z Twoją nazwą użytkownika, która została utworzona w momencie, gdy zostałeś dodany jako użytkownik w systemie.

Możesz użyć polecenia chown, aby zmienić wartości własności na inne. Możesz ustawić nowego właściciela, nową grupę lub oba jednocześnie. Właściciel pliku może zmienić własność grupy, ale tylko użytkownik 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 „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 oraz właścicieli grupy konta, na którym chcesz używać plików na nowym komputerze.
  • 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 jako root, ale chcesz, aby był dostępny dla określonego użytkownika.

Przeglądanie Twoich grup, UID i GID

Aby wyświetlić grupy, do których należysz, możesz użyć polecenia groups.

groups

Aby uzyskać listę grup oraz ich numeryczne identyfikatory, a także Twój UID i GID, uż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świetl 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 informuje nas, ż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 o tej samej nazwie.

Domyślnie, kiedy tworzony jest użytkownik w Linuxie, 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 ona 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 polega na tym, że 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ą. W systemie Linux własność jest kluczowym elementem bezpieczeństwa plików, a uprawnienia do plików zapewniają pozostałą część. Używaj poleceń chown i chmod, aby zabezpieczyć dostęp do plików w systemie.


newsblog.pl