GNU/Linux >> Linux Esercitazione >  >> Linux

UNIX / Linux:come utilizzare Sticky Bit su directory e file

Dovresti impostare lo sticky bit principalmente sulle directory in UNIX / Linux.

Se imposti lo sticky bit su una directory, gli altri utenti non possono eliminare o rinominare i file (o le sottodirectory) all'interno di quella directory.

Quando lo sticky bit è impostato su una directory, solo il proprietario e l'utente root possono eliminare/rinominare i file o le directory all'interno di quella directory.

1. Imposta il bit permanente su Directory

L'esempio seguente abilita lo sticky bit su una directory.

Usa il comando chmod per impostare il bit permanente. Se stai usando i numeri ottali in chmod, dai 1 prima di specificare altri privilegi numerati, come mostrato di seguito. L'esempio seguente fornisce l'autorizzazione rwx a utenti, gruppi e altri (e aggiunge anche il bit permanente alla directory).

$ chmod 1777 dir

Oppure puoi assegnare solo sticky bit a una directory esistente (senza toccare nessun altro utente, gruppo e altri privilegi) usando il comando chmod come mostrato di seguito.

$ chmod +t dir

Una volta assegnato il bit permanente a una directory, vedrai (t) come l'ultimo carattere nell'autorizzazione. In questo esempio, è drwxrwxrwt.

$ ls -ld /home/bala/dir
drwxrwxrwt 2 bala bala 4096 2011-01-28 14:09 /home/bala/dir
$ ls -l dir
total 8
-rwxrwxrwx 1 bala   bala   20 2011-01-28 14:12 bala.txt
-rwxrwxrwx 1 guest guest 41 2011-01-28 14:13 guest.txt

Nell'esempio sopra, poiché dir ha il permesso rwx per tutti, tutti gli altri utenti possono creare i loro file o directory in questa directory. Tuttavia, anche quando le sottodirectory oi file sotto dir hanno l'autorizzazione rwx per tutti, solo il proprietario di quelli può eliminare o rinominare quei file e directory. Altri utenti non possono eliminarlo o rinominarlo a causa del bit permanente.

Nell'esempio sopra, bala.txt ha rwx per utenti, gruppi e altri. Tuttavia, quando l'utente ospite sta tentando di eliminare il file bala.txt, vedrà il messaggio "Operazione non autorizzazione" come mostrato di seguito.

$ su guest
Password:
$ cd /home/bala/dir1
$ rm bala.txt
rm: cannot remove `bala.txt': Operation not permitted

Si noti che /tmp ha il bit permanente abilitato per impostazione predefinita. Potresti non averlo notato fino ad ora. Ora sai perché la directory /tmp dovrebbe avere lo sticky bit abilitato.

$ ls -ld /tmp
drwxrwxrwt 3 root root 4096 Jan 31 08:29 /tmp

Per rimuovere lo sticky bit da una directory, procedi come segue.

$ chmod -t dir

2. Imposta il bit appiccicoso su File

L'impostazione del bit appiccicoso su un file è praticamente inutile e non fa nulla. In alcune delle versioni precedenti di *nix, un file eseguibile abilitato per i bit permanenti verrà caricato nella memoria di scambio dopo la prima esecuzione, il che velocizza tutte le esecuzioni successive. Questo non è più vero.

Da Wikipedia:

Currently, this behavior is only operative in HP-UX, NetBSD, and UnixWare. 
Solaris appears to have abandoned this in 2005.[citation needed] The 4.4-Lite 
release of BSD retained the old sticky bit behavior but it has been subsequently 
dropped from OpenBSD (as of release 3.7) and FreeBSD (as of release 2.2.1); 
it remains in NetBSD. 

No version of Linux has ever supported the traditional behavior.

Linux
  1. Come rendere non cancellabili file e directory, anche per root in Linux

  2. Come installare e utilizzare Flatpak in Linux

  3. Che cos'è Sticky Bit, SUID e SGID in Linux

  4. Come installare e utilizzare Traceroute in Linux

  5. Linux:come si controllano le informazioni sulla struttura delle directory di un file Unix/linux?

Come installare e utilizzare PuTTY su Linux

Come installare e utilizzare phpMyAdmin in Linux

Come creare e utilizzare file di scambio su Linux

Come installare e utilizzare il comando fd in Linux

Come installare e utilizzare Nu Shell su Linux

Come usare gzip in Linux?