http://www.perlmonks.org?node_id=252188


in reply to what is $uid and $gid?

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.

Replies are listed 'Best First'.
Re: what is $uid and $gid?
by Abigail-II (Bishop) on Apr 22, 2003 at 07:04 UTC
    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