47

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.

glarry
  • 904
  • 1
  • 7
  • 15

2 Answers2

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
  • 11
    Do 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
  • 1
    I 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
  • 1
    Using 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