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...