GNU/Linux >> Znalost Linux >  >> Linux

os.MkDir a os.MkDirAll hodnota oprávnění?

Osmičkovou notaci můžete použít přímo:

os.Mkdir("dirname", 0700)


Bity oprávnění

+-----+---+--------------------------+
| rwx | 7 | Read, write and execute  |
| rw- | 6 | Read, write              |
| r-x | 5 | Read, and execute        |
| r-- | 4 | Read,                    |
| -wx | 3 | Write and execute        |
| -w- | 2 | Write                    |
| --x | 1 | Execute                  |
| --- | 0 | no permissions           |
+------------------------------------+

+------------+------+-------+
| Permission | Octal| Field |
+------------+------+-------+
| rwx------  | 0700 | User  |
| ---rwx---  | 0070 | Group |
| ------rwx  | 0007 | Other |
+------------+------+-------+

Unix Permission Primer


Běžná použití oprávnění

0755 Běžně používané na webových serverech. Majitel může číst, psát, spouštět. Všichni ostatní mohou soubor číst a spouštět, ale nemohou jej upravovat.

0777 Každý umí číst, psát a spouštět. Na webovém serveru není vhodné používat oprávnění „777“ pro vaše soubory a složky, protože to umožňuje komukoli přidat škodlivý kód na váš server.

0644 Číst a psát může pouze majitel. Všichni ostatní umí jen číst. Nikdo nemůže spustit soubor.

0655 Pouze vlastník může číst a zapisovat, ale nemůže soubor spustit. Všichni ostatní mohou číst a spouštět, ale nemohou upravovat soubor.

www.maketecheasier.com/file-permissions-what-does-chmod-777-means/


Oprávnění k adresáři v systému Linux

Při použití oprávnění k adresářům v systému Linux mají bity oprávnění jiný význam než u běžných souborů. (zdroj)

Přečtěte si Uživatel může číst názvy souborů obsažené v adresáři.
Zapsat bit Uživatel může {přidat, přejmenovat, smazat} názvy souborů, POKUD je nastaven také spouštěcí bit.
Spustit bit Uživatel může vstoupit do adresáře a přistupovat k souborům uvnitř.

https://unix.stackexchange.com/a/21252

Kalkulačka oprávnění

Praktická kalkulačka oprávnění.


Tvrzení @Daniela v jeho odpovědi není ve skutečnosti správné a také mluví o desetinném čísle a poté používá osmičkovou, jak správně poukázal @SashaCrofter ve svém komentáři.

Ve skutečnosti nezáleží na formě vaše hodnota oprávnění je v, pokud představuje rozumná unixová oprávnění.

Vzhledem k tomu, že bity oprávnění na souborových systémech POSIX přicházejí v trojnásobku bitů – tři bity pro přístup vlastníka, skupiny a dalších, plus tři bity modifikátorů (například lepkavé bity), – je obvyklé používat osmičková čísla k reprezentaci oprávnění jako každé číslice v osmičkovém čísle představuje tříbitovou hodnotu.

Když tedy v kódu Go použijete 0700, úvodní 0 je odstraněna a slouží pouze k tomu, aby sdělila analyzátoru, že vidí osmičkový číselný literál, a následující tři písmena představují oprávnění vlastníka, skupiny a dalších v tomto pořadí. Pokud byste, řekněme, chtěli také nastavit příchytný bit skupiny a zároveň zajistit, aby byl objekt souborového systému pro skupinu čitelný a spustitelný, zadali byste 02750 a tak dále.

Všimněte si, že skutečná oprávnění, která objekt systému souborů získává, jsou dále modulována aktivním umask procesu, který vytváří objekt.

Chcete-li tato témata lépe pochopit, je nejlepší přečíst si chmod manuálové stránky a obecná literatura o operačních systémech podobných Unixu.


Můžete resetovat umask na 0. Nazval bych to jako první věc v mém hlavním souboru

syscall.Umask(0)

Příklad

_ = os.MkdirAll("/tmp/dirs/1", 0664)
syscall.Umask(0)
_ = os.MkdirAll("/tmp/dirs/2", 0664)

Výsledek

/tmp/dirs$ stat -c '%A %a %n' *
drw-r--r-- 644 1
drw-rw-r-- 664 2

Linux
  1. Jak na MySQL:Vytvořte uživatele a udělte oprávnění k databázi

  2. Čtete a prohledáváte dlouhé mužské stránky?

  3. Jak vytvořit adresář a udělit oprávnění jedním příkazem

  1. Chmod 777 do složky a veškerého obsahu

  2. Unix - vytvoření cesty ke složkám a souboru

  3. Obnovení stdout a stderr na výchozí hodnotu

  1. Úvod do linuxového příkazu chmod

  2. Jak číst a opravovat zprávy o odmítnutí SELinuxu

  3. Tput:Žádná hodnota pro $term a není specifikováno -t?