Ho il seguente problema. Sul server Unix (CentOS 5.5) un certo numero di utenti appartenenti allo stesso gruppo hanno accesso agli stessi file (tramite ssh). Dopo che un particolare utente (diciamo usera A) ha modificato il file, il proprietario del file viene cambiato in A, il gruppo (G) e le autorizzazioni (0664) rimangono intatti. Una volta che un secondo utente (B) tenta di modificare lo stesso file non è autorizzato a farlo. Se invece l'utente B modifica il file, A può cambiarlo senza problemi (tranne rovinare i permessi).
Capisco che c'è qualcosa di incasinato con i permessi/gruppi ma non riesco a scoprire cosa. Quindi qualsiasi aiuto sarebbe apprezzato.
Fornire maggiori informazioni:
$ ls -l /path/file
-rwxrwxr-x 1 B G 42269 jan 14 10:30 file
$ getfacl /path/file
# file: file
# owner: B
# group: G
user::rwx
group::rwx
other::r-x
$ ls -ld /path
drwxrwxr-x 12 B G 4096 jan 14 10:24 .
$ getfacl /path
# file: .
# owner: B
# group: G
user::rwx
group::rwx
other::r-x
Risposta accettata:
A ha il permesso di scrivere nella directory, quindi l'editor di A scrive un nuovo file /path/file.tmp
(o un nome simile) quindi sposta il nuovo file in /path/file
. Poiché A ha appena creato il file, è di proprietà di A.
B non ha il permesso di scrivere nella directory, quindi l'editor di B sovrascrive il file esistente, che non cambia la proprietà.
(Vedi Come posso modificare un file e preservarne l'elenco di controllo di accesso/Contesto di sicurezza SELinux? per alcune informazioni sul motivo per cui gli editor fanno queste cose.)
Sembra che A sia nel gruppo G ma B no. Il modo più semplice per risolvere questo problema sarebbe assicurarsi che A e B siano entrambi nel gruppo G o entrambi non nel gruppo G.