chown LISTA
Cambia il proprietario (ed il gruppo) di una lista di file. I primi due elementi della lista
devono essere uid e gid numerici, nell'ordine indicato. Un valore di -1 in una di queste due
posizioni viene interpretato dalla maggior parte dei sistemi operativi come volontà
di non alterare tale valore. Restituisce il numero di file modificati con successo.
$cnt = chown $uid, $gid, 'pippo', 'pluto';
chown $uid, $gid, @nomifile;
Su sistemi che supportano fchown, potreste passare i file handle tra i file.
Su sistemi che non supportano fchmod, passare file handle
produce un errore fatale a tempo di esecuzione.
Di seguito è riportato un esempio che risolve le uid non numeriche servendosi del file
passwd:
print "Utente: ";
chomp($utente = <STDIN>);
print "File: ";
chomp($pattern = <STDIN>);
($login,$pass,$uid,$gid) = getpwnam($utente)
or die "$utente non e` presente nel file passwd";
@ary = glob($pattern); # espande i nomi dei file
chown $uid, $gid, @ary;
Sulla maggior parte dei sistemi, non è consentito cambiare il proprietario dei file a
meno che non si sia superuser. Dovreste tuttavia essere in grado di cambiare il gruppo
impostandolo ad uno qualsiasi dei vostri gruppi secondari. Su sistemi non sicuri, queste
restrizioni potrebbero essere meno rigide, ma assumere una cosa del genere non è
portabile. Sui sistemi POSIX, potete verificare questa condizione in questo modo:
use POSIX qw(sysconf _PC_CHOWN_RESTRICTED);
$chown_possibile = not sysconf(_PC_CHOWN_RESTRICTED);