Perl inherited the concept of user id and group id from the Unix world, which inherited them from elsewhere. Put simply, each Unix user had a unique "user id" and a not-necessarily unique "group id". Users can belong to multiple groups. All files that the user creates are stamped with these ids. chown() changes the user id. chgrp() changes the group id.
All Unix files have protection bits, which are set when the file is created, and can be changed by chmod().
Protection bits include 3 3-bit fields. The bits represent "can read", "can write", and "can execute". The first field represents protections that apply to the owner of the file. The second field represents protections that apply to other users in the same group, and the third field represents the protections for "everyone else" (AKA "world"). Hence, a protection of
0750
(protections are almost always writen in octal) means that the owner can read, write, and execute the file (the 0700 part); members of the group and read and execute the file(the 050 part), and the rest of the world can do nothing (the 0 part at the end).
There's more to it than that, but that's the basics.
| [reply] [d/l] |
While there might be a chgrp command in your OS,
Perl does not have a chgrp() function. Perl only
has a chown() function, which is used to set
both the user and the group id of a file. This is because many
Perl functions mimic the C library, and not the programs from
/usr/bin.
Also, there are 12 protection bits, not 9. You are forgetting
the "set user id", "set group id" and the "sticky bit".
Abigail
| [reply] [d/l] [select] |
The uid is the user id number, gid the group id number. Those are unique numbers associated with the user and group names in /etc/passwd and /etc/groups.
See getpwent and friends for how to deal with those properly in perl.
After Compline, Zaxo
| [reply] |
GID is group ID
In perl 5.8.0 it says:
chown LIST
Changes the owner (and group) of a list of files.
Tiago | [reply] [d/l] |