(coreutils.info)Disambiguating names and IDs


Next: Random sources Prev: Signal specifications Up: Common options
Enter node , (file) or (file)node

2.6 chown, chgrp, chroot, id: Disambiguating user names and IDs
===============================================================

Since the USER and GROUP arguments to these commands may be specified as
names or numeric IDs, there is an apparent ambiguity.  What if a user or
group _name_ is a string of digits?  (1) Should the command interpret it
as a user name or as an ID?  POSIX requires that these commands first
attempt to resolve the specified string as a name, and only once that
fails, then try to interpret it as an ID.  This is troublesome when you
want to specify a numeric ID, say 42, and it must work even in a
pathological situation where ‘42’ is a user name that maps to some other
user ID, say 1000.  Simply invoking ‘chown 42 F’, will set ‘F’s owner ID
to 1000—not what you intended.

   GNU ‘chown’, ‘chgrp’, ‘chroot’, and ‘id’ provide a way to work around
this, that at the same time may result in a significant performance
improvement by eliminating a database look-up.  Simply precede each
numeric user ID and/or group ID with a ‘+’, in order to force its
interpretation as an integer:

     chown +42 F
     chgrp +$numeric_group_id another-file
     chown +0:+0 /

   The name look-up process is skipped for each ‘+’-prefixed string,
because a string containing ‘+’ is never a valid user or group name.
This syntax is accepted on most common Unix systems, but not on Solaris
10.

   ---------- Footnotes ----------

   (1) Using a number as a user name is common in some environments.


automatically generated by info2www version 1.2.2.9