I den här snabba handledningen kommer vi att se hur vi kan använda kommandot chmod i en Ubuntu-maskin för att hitta, ändra och ta bort användarbehörigheter från specifika filer som finns i användarens filsystem. Låt oss spela igenom olika förhållanden så att vi kan behärska grundläggande chmod-kommandon som kan göra vår vardag enklare med Ubuntu.
Linuxbehörigheter
Linuxbehörigheter är en stor uppsättning regler som är enkla att förstå om vi fattar de grundläggande rättigheterna. De tre huvudpunkterna som vi måste förstå för att veta hur Linuxbehörigheter fungerar är:
- Elementet för vilket behörigheterna definierades
- Vilka åtgärder som kan utföras med en behörighet
- Vem kan utföra vilka åtgärder
Det finns två grundläggande element i Linux filsystem:
- Adresser
- Filer
Det finns tre åtgärder som kan utföras:
- Läs
- Skriv
- Exekvera. Förutom att exekvera skript behövs samma åtgärder för att skapa filer och andra mappar i den
Användare som kan utföra dessa åtgärder är:
- Filens ägare
- Filens ägargrupp
- Användare som inte är associerad med ägargruppen eller ägaren själv
För att se behörigheter som är relaterade till en fil, kör följande kommando:
Här är vad vi får tillbaka med detta kommando:
Sök behörighet för filer
I utmatningen presenterar de första 10 tecknen behörigheten för filen:
Ändring av behörigheter
Syntaxen för att ändra behörigheter för en fil ser ut så här:
Oktalrepresentation för behörigheter
Vi kan presentera behörigheter som ett oktaltal. Om vi till exempel vill ange läs-, skriv- & exekveringsbehörigheter för ägaren, läs- & skrivbehörigheter för gruppen och inga behörigheter för andra för filen hello.txt utför vi följande kommando:
När vi utför ovanstående kommando och försöker läsa en fil med ett konto som inte är ägare med följande kommando:
Vi får följande fel:
Men varifrån kommer det här numret? Varje siffra i det numret representerar en uppsättning behörigheter. Låt oss se hur de härstammar:
- 0: Betyder ingen behörighet
- 1: Betyder behörighet att utföra
- 2: Betyder skrivbehörighet
- 4: Betyder läsbehörighet
För att tilldela ägaren läs-, skriv- & och exekveringsbehörigheter har vi tilldelat honom siffran 7(= 4 + 2 + 1). Låt oss förstå detta bättre i en siffertabell:
Nummer | Binary | Read | Write | Execute |
0 | 000 | NO | NO | NO |
1 | 001 | NO | NO | JA |
2 | 010 | NO | JA | NEJ |
3 | 011 | NEJ | JA | JA |
4 | 100 | JA | NEJ | NEJ |
5 | 101 | JA | NEJ | JA |
6 | 110 | JA | YES | NO |
7 | 111 | YES | YES | YES |
Ovanstående tabell är mycket tydlig när det gäller vad var och en av dem representerar i fråga om filbehörigheter.
Karakterrepresentation för behörigheter
Vi kan presentera behörigheter som ett oktaltal. Om vi till exempel vill ställa in läs-, skriv- & exekveringsbehörigheter för ägaren, läs- & skrivbehörigheter för sin grupp och inga behörigheter för andra, för filen hello.txt, utför vi följande kommando:
För att lägga till behörigheter till en befintlig användare kan vi också göra följande:
Här tilldelades skrivbehörigheten till användargruppen för ägaren av filen.
Rekursiva behörighetsändringar
Vi kan också ändra behörigheter för filer som finns i en specifik katalog med ett enda kommando. Om du vill ändra behörigheterna för alla filer och mappar i en viss katalog på en gång använder du sudo chmod med -R:
Vi kan se följande utdata som tydligt återspeglar ändringen av filbehörigheterna:
Rekursivt ändra filbehörigheter
Slutsats
I den här lektionen tittade vi på hur vi kan ändra filbehörigheter och vid behov göra det rekursivt. Vi har förstått de grundläggande begreppen bakom hur Linux behörigheter som kan hjälpa oss mycket i vårt dagliga arbete.