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.
Asked
Active
Viewed 8.6k times
2 Answers
50
Yes, you can chown to a numerical UID that does not have a corresponding user.
DopeGhoti
- 73,792
- 8
- 97
- 133
-
I tested before I asked: `chown \#1005 file` returns `chown: invalid user: ‘#1005’`. – glarry Jan 18 '18 at 22:39
-
11Do not use an octothorpe; it is not a number. Just use the number, e. g. `sudo chown 1005 /path/to/file`. – DopeGhoti Jan 18 '18 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. :) – glarry Jan 18 '18 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. – glarry Jan 18 '18 at 23:14
-
2@glarry I do not have to use `./`. Is the file name really `file`? – Hauke Laging Jan 18 '18 at 23:28
-
@HaukeLaging No, and it was a very well hidden typo, if you ask me. The fact that I used tab completion after `./` made the difference. – glarry Jan 19 '18 at 07:47
34
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 {} \;
Philippe Gachoud
- 1,559
- 17
- 17
-
1Using variables `chown -R $HOST_USER_ID:$HOST_GROUP_ID /usr/bin/mariadb/install/data` gives me an error `chown: invalid spec: '1000:'` sous ` `Lubuntu 16/04` – Stephane Jan 17 '19 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; ` – Stephane Jan 17 '19 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. – Philippe Gachoud Jan 24 '19 at 15:13