![]() ![]() ![]() ![]() ![]() |
| back File Permissions Made Easy by Kevin Fenzi - Tue, 11 Jan 2000 09:01:16pm Ext2's Original Publishing of this article can be found here. Unix separates access control on files and directories according to three characteristics: owner, group, and other. There is always exactly one owner, any number of members of the group, and everyone else. A quick explanation of Unix permissions: Ownership - Which user(s) and group(s) retain(s) control of the permission settings of the node and parent of the node Permissions - Bits capable of being set or reset to allow certain types of access to it. Permissions for directories may have a different meaning than the same set of permissions on files. READ: To be able to view contents of a file To be able to read a directory Write: To be able to add to or change a file To be able to delete or move files in a directory Execute: To be able to run a binary program or shell script To be able to search in a directory, combined with read permission Save Text Attribute: (For directories) The "sticky bit" also has a different meaning when applied to directories than when applied to files. If the sticky bit is set on a directory, then a user may only delete files that the he owns or for which he has explicit write permission granted, even when he has write access to the directory. This is designed for directories like /tmp, which are world-writable, but where it may not be desirable to allow any user to delete files at will. The sticky bit is seen as a t in a long directory listing. SUID Attribute: (For Files) This describes set-user-id permissions on the file. When the set user ID access mode is set in the owner permissions, and the file is executable, processes which run it are granted access to system resources based on user who owns the file, as opposed to the user who created the process. This is the cause of many "buffer overflow" exploits. SGID Attribute: (For Files) If set in the group permissions, this bit controls the "set group id" status of a file. This behaves the same way as SUID, except the group is affected instead. The file must be executable for this to have any effect. SGID Attribute: (For directories) If you set the SGID bit on a directory (with chmod g+s directory), files created in that directory will have their group set to the directory's group. You - The owner of the file Group - The group you belong to Everyone - Anyone on the system that is not the owner or a member of the group File Example:
The following lines are examples of the minimum sets of permissions that are required to perform the access described. You may want to give more permission than what's listed here, but this should describe what these minimum permissions on files do: -r-------- Allow read
access to the file by owner Directory Example: drwxr-xr-x 3 kevin
users 512 Sep 19 13:47 .public_html/ The following lines are examples of the minimum sets of permissions that are required to perform the access described. You may want to give more permission than what's listed, but this should describe what these minimum permissions on directories do: dr-------- The contents
can be listed, but file attributes can't be read System configuration files (usually in /etc) are usually mode 640 (-rw-r-----), and owned by root. Depending on your sites security requirements, you might adjust this. Never leave any system files writable by a group or everyone. Some configuration files, including /etc/shadow, should only be readable by root, and directories in /etc should at least not be accessible by others. Set UID SHELL scripts: SUID shell scripts are a serious security risk, and for this reason the kernel will not honor them. Regardless of how secure you think the shell script is, it can be exploited to give the cracker a root shell.
|