GNU/Linux >> Linux Esercitazione >  >> Linux

Qual è lo scopo della directory setgid?

Soluzione 1:

Mentre un file/binario setgid potrebbe non essere ovviamente utile, trovo sicuramente il bit setgid molto utile applicato alle directory. Supponendo che tu faccia parte di diversi gruppi di lavoro, ognuno dei quali ha i propri gruppi unix (autorizzazioni). Sicuramente vorrai quindi inserire il bit setgid nelle cartelle di progetto, assicurandoti che venga applicata la giusta proprietà del gruppo quando crei nuovi file e consentendo così ai tuoi colleghi in quel gruppo di progetto di accedere a quei file?

Soluzione 2:

L'uso principale è preservare il gruppo proprietario di un albero di file:

[[email protected] tmp]$ mkdir dir1 && touch dir1/file && mkdir dir1/dir
[[email protected] tmp]$ mkdir dir2 && chgrp staff dir2 && chmod 2755 dir2 && touch dir2/file && mkdir dir2/dir
[[email protected] tmp]$ ls -al dir1
total 32
drwxrwxr-x   3 lockie  lockie   4096 Dec 13 19:32 .
drwxrwxrwt 125 root root 20480 Dec 13 19:32 ..
drwxrwxr-x   2 lockie  lockie   4096 Dec 13 19:32 dir
-rw-rw-r--   1 lockie  lockie      0 Dec 13 19:32 file
[[email protected] tmp]$ ls -al dir2
total 32
drwxr-sr-x   3 lockie  staff  4096 Dec 13 19:32 .
drwxrwxrwt 125 root root  20480 Dec 13 19:32 ..
drwxrwsr-x   2 lockie  staff  4096 Dec 13 19:32 dir  < note new dir is g+s, owned by "staff" group, so the setgid behaviour acts recursively
-rw-rw-r--   1 lockie  staff     0 Dec 13 19:32 file < note new file is owned by "staff" group
[[email protected] tmp]$

Questo tende ad essere utile in ambienti in cui diversi utenti creeranno/modificano file/directory in una directory:quando tutti i file/dir condividono lo stesso gruppo, tutti gli utenti possono modificare/cambiare i file/dir (autorizzazioni permettendo):questo evita situazioni come "xyz possiede il file abc, quindi non posso modificarlo".

Un'alternativa all'utilizzo di setgid in questo modo è grpid opzione di montaggio del filesystem.

Da man mount:

grpid o bsdgroups / nogrpid o sysvgroups

Queste opzioni definiscono quale ID di gruppo ottiene un file appena creato. Quando grpid è impostato, prende l'id di gruppo della directory in cui è stato creato; altrimenti (impostazione predefinita) prende il fsgid del processo corrente, a meno che la directory non abbia il bit setgid impostato, nel qual caso prende il gid dalla directory padre e ottiene anche il bit setgid impostato se è una directory stessa.

Se abilitato, i file/directory creati su un filesystem montato con grpid ereditano anche il gruppo della directory padre:

[[email protected] ~]$ mount | grep /home
/dev/mapper/VolGroup00-home on /home type ext3 (rw,grpid)
[[email protected] ~]$ mkdir dir3 && touch dir3/file && mkdir dir3/dir
[[email protected] ~]$ ls -al dir3
total 12
drwxrwxr-x  3 lockie users 4096 Dec 13 19:37 .
drwxrwxr-x 12 lockie users 4096 Dec 13 19:37 ..
drwxrwxr-x  2 lockie users 4096 Dec 13 19:37 dir < inherited "users" group from parent dir
-rw-rw-r--  1 lockie users    0 Dec 13 19:37 file  < inherited "users" group from parent dir
[[email protected] ~]$

Ho trovato l'uso di grpid L'opzione riduce in modo appropriato la possibilità di errore umano (poiché il filesystem fa il lavoro, indipendentemente dai permessi dir).


Linux
  1. Qual è lo scopo del gruppo "wheel" in Linux

  2. Cosa significa opt (come nella directory opt)? È un'abbreviazione?

  3. Qual è il significato di `! -d` in questo comando Bash?

  4. Qual è la directory consigliata per archiviare il contenuto del sito web?

  5. Qual è lo scopo di cd ` (backtick)?

A che scopo serve il Colon Builtin ':'?

Percorso assoluto vs relativo in Linux:qual è la differenza?

Qual è il modo più sicuro per svuotare una directory in *nix?

Qual è lo scopo di crittografare la home directory?

Quali dovrebbero essere i permessi ideali della home directory in Linux

Cosa significa il suffisso .d in Linux?