For example, for managing a disk partition for another system where the user exists. I know I can simply create a user temporarily but I find this question interesting.
2 Answers
Yes, you can chown
to a numerical UID that does not have a corresponding user.
-
I tested before I asked:
chown \#1005 file
returnschown: invalid user: ‘#1005’
.– glarryCommented Jan 18, 2018 at 22:39 -
13Do not use an octothorpe; it is not a number. Just use the number, e. g.
sudo chown 1005 /path/to/file
. Commented Jan 18, 2018 at 22:40 -
According to this logic,
sudo
thinks it's a number. Furthermore, it thinks groups of digits that don't start with a number sign are not numbers. :)– glarryCommented Jan 18, 2018 at 22:54 -
1I first tried
chown 1005 file
, by the way. It didn't work, for an unrelated reason, but I blamed it on the missing number sign. You have to at least use./file
, apparently for chown to be able to tell which of the two is the user. Just so you (reader) know.– glarryCommented Jan 18, 2018 at 23:14 -
3@glarry I do not have to use
./
. Is the file name reallyfile
? Commented Jan 18, 2018 at 23:28
chown UID:GID fileName
can be done either with numbers or username or groupname
ex: chown 1000:1000 dirname
is valid
you may have to reset the directory permission with chmod 755
for example after doing it to get access on it
Hints
- You can check user id with
id someUsername
- You can check group id with
gid someUsername
- You can change permissions only on directories with
find someLocation -type d -exec chown 1000:1000 {} \;
-
1Using variables
chown -R $HOST_USER_ID:$HOST_GROUP_ID /usr/bin/mariadb/install/data
gives me an errorchown: invalid spec: '1000:'
sous `Lubuntu 16/04
– StephaneCommented Jan 17, 2019 at 17:35 -
I could work around the issue by doing two distinct commands
chown -R $HOST_USER_ID /usr/bin/mariadb/install/data; chgrp -R $HOST_GROUP_ID /usr/bin/mariadb/install/data;
– StephaneCommented Jan 17, 2019 at 18:00 -
@Stephane your UID and GID must be the number of the group/id you want to change, and is setted into
/etc/group
and/etc/passwd
or either by other system like ldap, you can refer to commands like gentent to have more infos about that. Commented Jan 24, 2019 at 15:13