concessione di autorizzazioni di scrittura per un gruppo in una cartella


34

Come posso concedere l'autorizzazione in scrittura a 1 gruppo?
Ho 2 utenti ( alexe ben).
alexè membro del gruppo alexe del gruppo consult.
benè membro del gruppo bene del gruppo consult.

Voglio concedere l'accesso in lettura e scrittura a entrambi alexe bensulla cartella consult_documents.

Se faccio alexil proprietario della directory consult_documentse concedo l' 775accesso alla directory consult_documents, bene alexsarò in grado di accedere alla cartella, penso.

Ma ciò consentirà l' benaccesso anche alle alexaltre cartelle? Se un utente è in due gruppi, significa che tutti i membri di entrambi i gruppi ottengono le stesse autorizzazioni su tutte le cartelle?


Vuoi che alex e ben siano in grado di creare file in consult_documents e consentire a entrambi l'accesso in lettura / scrittura a quei documenti?
X Tian,

Risposte:


42

Concedere 775 autorizzazioni su una directory non significa automaticamente che tutti gli utenti di un determinato gruppo possano rwxaccedervi. Devono essere il proprietario della directory o appartenere al gruppo della directory:

$ ls -ld some_dir
drwxrwxr-x 2 alex consult 4096 Feb 20 10:10 some_dir/
              ^     ^
              |     |_____ directory's group
              |___________ directory's owner

Pertanto, per consentire a alex e ben di avere accesso in scrittura some_dir, la some_dirdirectory stessa deve appartenere al consultgruppo. In caso contrario, il proprietario della directory (alex nel tuo esempio), dovrebbe emettere il seguente comando:

$ chgrp consult some_dir/

o per modificare la proprietà del gruppo di tutto all'interno della directory:

$ chgrp -R consult some_dir/

Funzionerà solo se alex è un membro del consultgruppo, il che sembra essere il caso nel tuo esempio.

Ciò non consentirà a Ben di accedere a tutte le directory di alex per due motivi:

  1. Non tutte le directory di alex apparterranno al consultgruppo
  2. Alcune directory di alex potrebbero appartenere al consultgruppo, ma alex potrebbe non aver scelto di consentire l' rwxaccesso al gruppo.

In breve, la risposta dipende sia dalla proprietà del gruppo che dai bit di autorizzazione del gruppo impostati per la directory.

Tutto questo è fornito senza l'uso di ulteriori misure di controllo dell'accesso obbligatorie sul sistema.


consult_documents è una directory, come puoi specificarla come gruppo?
Babin Lonston,

@Babinlonston Non puoi. Si specifica consultcome gruppo.
Joseph R.,

Grazie, stavo cercando come dare accesso a una directory a un gruppo. Non mi rendevo conto che il comando chgrp poteva farlo. Ho pensato che chgrp fosse solo per aggiungere / eliminare utenti a un gruppo.
Anatak,

1
@anatak La modifica dell'appartenenza al gruppo avviene tramite usermodnochgrp
Joseph R.

È lo stesso di chown -R :consult some_dir/?
Aaron Franke il

7

Questo farà sì che alex e ben si scaldino a vicenda in questo elenco, e non potranno collassare in altri dir.

Modificare il gruppo utenti utilizzando

# usermod -a -G alex,ben alex

Quindi modificare l'autorizzazione per la cartella

# chown alex:ben consult_documents

Controlla qui ho lavorato intorno

$ sudo usermod -a -G alex,ben alex

$ sudo chown alex:ben consult_documents/

cd consult_documents/

$ touch babin

drwxrwxr-x 2 alex ben  4096 Feb 20 15:19 .
drwxr-xr-x 3 alex alex 4096 Feb 20 15:17 ..
-rw-rw-r-- 1 alex alex    0 Feb 20 15:19 babin

$ su - ben

cd /home/alex/consult_documents/

ben@system99:/home/alex/consult_documents$ touch babin1
ben@system99:/home/alex/consult_documents$ ls -la
total 8
drwxrwxr-x 2 alex ben  4096 Feb 20 15:19 .
drwxr-xr-x 3 alex alex 4096 Feb 20 15:17 ..
-rw-rw-r-- 1 alex alex    0 Feb 20 15:19 babin
-rw-rw-r-- 1 ben  ben     0 Feb 20 15:19 babin1
ben@system99:/home/alex/consult_documents$

Dai un'occhiata qui


6

Se ho capito correttamente la tua domanda, la risposta è sì.

Lasciatemi spiegare:

I diritti di accesso alle cartelle e ai file sono divisi in tre categorie:

xxxyyyzzz
xxx are access rights for the owner
yyy are access rights for the owner's group
zzz are the access rights for everyone else

Ogni file e cartella deve essere di proprietà di un utente.

Ciò significa che se si dispone di una cartella denominata consult_documents e si desidera che sia accessibile da tutti i membri del gruppo Consult, si avrà questo (con 755 diritti di accesso):

drwxrwxr-x Alex Consult [......]

La directory è di proprietà di Alex e il gruppo è Consult. Alex ha i diritti di accesso RWX su di esso. Group Consult ha i diritti di accesso RWX su di esso. Altri utenti hanno diritti RX.

Poiché il tuo utente Alex ha diversi gruppi, puoi scegliere il gruppo con cui condividere.

Ad esempio, se la tua cartella è di proprietà di Alex del gruppo Alex:

drwxrwxr-x Alex Alex [......]

Fallo:

chown Alex:Consult your_folder

Diventerà:

drwxrwxr-x Alex Consult [......]

E quindi la directory è disponibile per il gruppo Consultare.

Per quanto ne so, è possibile aggiungere un gruppo che non fa parte del gruppo del proprietario. Ma non sono sicuro che sia raccomandato (non chiaro quando si leggono i diritti di accesso).


3

setfacl -mg: debian-trasmissione: rwx -R / mnt / sra

Ho trovato carino questo comando, invece di chown che cambierà completamente il proprietario del file o della directory!

Vedrai su 'ls -Al' che verrà aggiunto un segno + per mostrare che c'è più di un proprietario!

drwxr-xr-x 2 root root 4096 8 nov 19:11 sdc1 /

drwxrwxr-x + 3 radice radice 4096 feb 17 19:16 sra /

E poi puoi usare getfacl per vedere chi può scrivere o leggere il file o la directory!

# file: sra

# proprietario: root

# gruppo: utente root :: rwx

gruppo :: rx

Gruppo: debian-trasmissione: rwx

mascherare :: rwx

altro :: rx

DEFAULT: user :: rwx

predefinito: Gruppo :: rx

DEFAULT: gruppo: debian-trasmissione: rwx

DEFAULT: maschera :: rwx

DEFAULT: altro :: rx

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.