man chown
gives description and usage and other useful info on chown
command.
NAME
chown - change file owner and group
SYNOPSIS
chown [OPTION]... [OWNER][:[GROUP]] FILE...
chown [OPTION]... --reference=RFILE FILE...
Form the info given by man page, we may know that chown $USER:$USER
changes owner and group of target file to $USER
, while chown $USER
only changes owner of target file to $USER
, leaving group of the target file unchanged.
Details (from man page) follow:
Owner is unchanged if missing. Group is unchanged if missing, but changed to
login group if implied by a ':' following a symbolic OWNER. OWNER and GROUP may
be numeric as well as symbolic.
So chown $USER:$USER
can be shortened as chown $USER:
.
Outputs like root root
from namei -l
command mean that the owner and group of that file are both set to root
. That's not owner defined or listed twice. Owner and group are two related but different concepts. And a file always has a owner and a group.
As to use chown
command, great chances are superuser privilege is required, since one is likely to transfer the ownship of a file when using chown
command. However, that is not always the truth.
Say, we have a user named 'test', who belongs to several groups. id
command gives following output:
uid=1000(test) gid=1000(test) groups=1000(test),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),108(lpadmin),110(sambashare)
And user 'test' owns the following file:
-rw-r--r-- 1 test test 0 May 27 23:34 test_file
Then we can change the group of test_file
to sambashare
without superuser privilege, as user 'test' belongs to 'test' group and 'sambashare' group at the same time, user 'test' already owns enough permission to change the group of the file.