GNU/Linux >> Znalost Linux >  >> Linux

Odebrání a přidání oprávnění pomocí číselného zápisu na stejném řádku

Poznamenejte si název vaší otázky:

Odebrání a přidání oprávnění pomocí číselného zápisu na stejném řádku

S chmod z GNU coreutils, který pravděpodobně máte na systému Linux, můžete použít

$ chmod -020,+004 test.txt

udělat to. Funguje to zřejmým způsobem:střední číslice pro skupinu, 2 je pro zápis; a poslední číslice pro "ostatní" a 4 ke čtení.

Umět používat + nebo - s numerickým režimem je rozšíření GNU, např. chmod založený na BSD na mém Macu zobrazuje chybu +004 :

$ chmod +004 test.txt
chmod: Invalid file mode: +004

Takže by bylo jednodušší, kratší, přenosnější a pravděpodobně i čitelnější použít pouze symbolickou formu:

$ chmod g-w,o+r test.txt

EDIT:Když jsem viděl ilkkachuovu odpověď, donutil mě to otestovat a syntaxe, kterou popisuje, funguje, ale manuálová stránka mého systému (kterou jsem zkontroloval) říká

může být buď symbolická reprezentace změn, které je třeba provést, nebo osmičkové číslo představující bitový vzor pro bity nového režimu

což mě přimělo napsat původní odpověď (níže). Myslím, že je to nová změna a že zapomněli aktualizovat manuálovou stránku.

Původní odpověď níže:

Název vašich otázek zmiňuje "numerický zápis", pokud tím myslíte specifikování režimů jako osmičkových čísel, odpověď je, že s tím nemůžete specifikovat změny, pouze nový režim souboru(ů).


Jak říká 2. řádek manuálové stránky:

chmod g-w,o+r file

$ man chmod

CHMOD(1)                         User Commands             CHMOD(1)

NAME
       chmod - change file mode bits

SYNOPSIS
       chmod [OPTION]... MODE[,MODE]... FILE...

nebo 1. řádek chmod --help

Usage: chmod [OPTION]... MODE[,MODE]... FILE...

Linux
  1. Výstup do Stdout a zároveň Grep do souboru?

  2. Linux – dekomprimujte a zrušte archivaci souboru .tar.gz pomocí Cat, Tar a Gzip na jednom příkazovém řádku?

  3. Jaký je rozdíl v přesměrování výstupu pomocí >, &>, >&a 2&>?

  1. Jak číst předposlední řádek v souboru pomocí Bash?

  2. Jak přesměrovat stderr a stdout na různé soubory ve stejném řádku ve skriptu?

  3. Přidání řádku do souboru hosts, získání oprávnění odepřeno při použití sudo - Mac

  1. Zkopírujte a vložte na příkazový řádek Linuxu pomocí xclip

  2. Jak extrahovat soubor tar.gz v Linuxu pomocí příkazového řádku

  3. Kopírovat a chmod/chown zároveň