GNU/Linux >> Tutoriels Linux >  >> Linux

Supprimer et ajouter une autorisation en utilisant la notation numérique sur la même ligne

Notez le titre de votre question :

Supprimer et ajouter une autorisation en utilisant la notation numérique sur la même ligne

Avec chmod de GNU coreutils, que vous avez probablement sur un système Linux, vous pouvez utiliser

$ chmod -020,+004 test.txt

pour faire ça. Cela fonctionne de manière évidente :chiffre du milieu pour le groupe, 2 est pour écrire; et dernier chiffre pour "autres", et 4 pour lecture.

Pouvoir utiliser + ou - avec un mode numérique est une extension GNU, par ex. le chmod basé sur BSD sur mon Mac donne une erreur pour +004 :

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

Il serait donc plus simple, plus court, plus portable et probablement plus lisible d'utiliser uniquement la forme symbolique :

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

EDIT :En voyant la réponse d'ilkkachu, je l'ai testé et la syntaxe qu'il décrit fonctionne, mais la page de manuel de mon système (que j'avais vérifiée) indique

peut être soit une représentation symbolique des modifications à effectuer, soit un nombre octal représentant le modèle de bits pour les nouveaux bits de mode

ce qui m'a amené à écrire la réponse originale (ci-dessous). Je suppose que c'est un nouveau changement et qu'ils ont oublié de mettre à jour la page de manuel.

Réponse originale ci-dessous :

Le titre de vos questions mentionne "notation numérique", si vous entendez par là spécifier des modes sous forme de nombres octaux, la réponse est que vous ne pouvez pas spécifier de changements avec cela, uniquement le nouveau mode du ou des fichiers.


Comme le dit la 2ème ligne de la page de manuel :

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

ou la 1ère ligne de chmod --help

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

Linux
  1. Linux - Décompresser et désarchiver le fichier .tar.gz à l'aide de Cat, Tar et Gzip sur une seule ligne de commande ?

  2. 4 outils pour télécharger n'importe quel fichier en utilisant la ligne de commande sous Linux

  3. Quelle est la différence de rediriger une sortie en utilisant >, &>, >&et 2&> ?

  4. Comment lire l'avant-dernière ligne d'un fichier avec Bash ?

  5. Ajout d'une ligne dans le fichier hosts, obtention d'une autorisation refusée lors de l'utilisation de sudo - Mac

Copiez et collez sur la ligne de commande Linux avec xclip

Utilisation du fichier de configuration SSH

Comment extraire le fichier tar.gz sous Linux à l'aide de la ligne de commande

Comment effacer en toute sécurité un disque et un fichier à l'aide de la commande Linux shred

Comment télécharger des fichiers sur Debian en utilisant curl et wget sur la ligne de commande

Copier et chmod/chown en même temps