One of the hardest things for the beginner webmaster to get to grips with is how to use Show
In this tutorial, I’m going to explain the concept of permissions, and show you how to set permissions using your FTP program or via SSH. What are permissions?On a UNIX web server, every single file and folder stored on the hard drive has a set of permissions associated with it, which says who is allowed to do what with the file. Every file (and folder) also has an “owner” and a “group” associated with it. If you created the file, then you are usually the owner of that file, and your group, or the group associated with the folder you created the file in, will usually be associated with that file. Who can do stuff?There are three types of people that can do stuff to files – the Owner of the file, anyone in the Group that the file belongs to, and Others (everyone else). In UNIX, these 3 types of people are referred to using the letters U (for Owner, or User in UNIX-speak!), G (for Group), and O (for Others). What stuff can you do?There are three basic things that can be done to files or folders:
What do all these funny letters and numbers mean?!That’s the basics of permissions covered. As you can see, there’s not much to them really! The confusion often occurs when you have to start actually setting permissions on your file server. CGI scripts will tell you to do things like “chmod 755” or “Check that the file is executable”. Also, when you use FTP or SSH, you’ll see lots of funny letters next to the files (such as When you FTP to your web server, you’ll probably see something like this next to every file and folder: This string of letters, As you can see, the string of letters breaks down into 3 sections of 3 letters each, representing each of the types of users (the owner, members of the group, and everyone else). There is also a “d” attribute on the left, which tells us if this is a file or a directory (folder). If any of these letters is replaced with a hyphen (-), it means that permission is not granted. For example: drwxr-xr-x A folder which has read, write and execute permissions for the owner, but only read and execute permissions for the group and for other users.-rw-rw-rw- A file that can be read and written by anyone, but not executed at all.-rw-r--r-- A file that can be read and written by the user, but only read by the group and everyone else.Using numbers instead of lettersAs we said earlier, you’ll often be asked to do things using numbers, such as “set 755 permissions”. What do those numbers mean? Well, each of the three numbers corresponds to each of the three sections of letters we referred to earlier. In other words, the first number determines the owner permissions, the second number determines the group permissions, and the third number determines the other permissions. Each number can have one of eight values ranging from 0 to 7. Each value corresponds to a certain setting of the read, write and execute permissions, as explained in this table: NumberRead (R)Write (W)Execute (X)0NoNoNo1NoNoYes2NoYesNo3NoYesYes4YesNoNo5YesNoYes6YesYesNo7YesYesYesSo, for example: 777 is the same as chmod nnn filename0 755 is the same as chmod nnn filename1 666 is the same as chmod nnn filename2 744 is the same as chmod nnn filename3 Setting permissionsThe two most common ways to set permissions on your files and folders is with FTP or SSH. Let’s take a look at FTP first. Setting permissions with FTPYour FTP program will probably allow you to set permissions on your files by selecting the file (in the remote window) and either right-clicking on it and selecting an option such as CHMOD or Set permissions, or by selecting CHMOD / Set permissions from a menu option. Once you’ve selected the appropriate menu option, you’ll probably see a dialog box similar to the following (this is from CuteFTP for Windows): As you can see, it’s pretty easy to set or un-set read, write and execute permissions for the owner, group and others using the check boxes. Alternatively, you can type in the equivalent 3-digit number, if you know it (see the previous section). Easy! Setting permissions with SSHThe other common way to set permissions on your files is using SSH (or a standard shell if you’re actually sitting at your Web server). This is generally quicker if you want to change lots of files at once (e.g. change all .cgi files in a folder to have execute permission), but is a bit more fiddly for the beginner. Once you’ve SSHed to your server and logged in, change to the folder containing the files you want to change, e.g.: cd mysite/cgi-bin You can then use the command Using number notationTo set permissions with numbers, use the following syntax: chmod nnn filename where nnn is the 3-digit number representing the permissions, and filename is the file you want to change. For example: chmod 755 formmail.cgi will assign read, write and execute permission to the owner, and just read and execute permission to everyone else, on the script called chmod nnn filename5. Using letter notationYou can use the letters chmod nnn filename6 (owner/user), chmod nnn filename7 (group) and chmod nnn filename8 (other) to set permissions for each of the user types, and chmod nnn filename9 (read), chmod 755 formmail.cgi0 (write) and chmod 755 formmail.cgi1 (execute) to represent the permissions to set. You can also use chmod 755 formmail.cgi2 instead of u, g, and o, to mean all users (u,g,o). You assign permissions using either the plus sign ( chmod 755 formmail.cgi3), which means “add these permissions”, the minus sign ( chmod 755 formmail.cgi4), which means “remove these permissions”, or the equals sign ( chmod 755 formmail.cgi5), which means “change the permissions to exactly these”. For example: chmod 755 formmail.cgi6 adds execute permissions for all users to the file chmod nnn filename5 (in other words, makes the file executable). chmod 755 formmail.cgi8 sets read, write and execute permission just for the owner (the permissions for the group and for others remain unchanged). chmod 755 formmail.cgi9 removes write permission for the group and for others, leaving the permissions for the owner unchanged. Checking your permissionsYou can check the permissions on all files and folders in the current directory by using the command: ls -l This will show you the permissions for every file and folder, in the same way as your FTP program does. What is the D permission in Linux?A dash or "d" as the first character means file or directory. The three sets of rwx are permissions for owner-group-other. For example, -rwxrw-r-- gives all permissions to the file on the line to the owner, read/write permissions to the group and read only for the rest.
What is the D permission?The permissions are written as follows: the first bit is either a dash or the letter d. Dash means it's a file and d stands for directory. Note that the first bit can also be an l if the file name is a link.
What does the D mean in ls?It means that it is a directory. The first mode field is the "special file" designator; regular files display as - (none). As for which possible letters could be there, on Linux the following exist: d (directory) c (character device)
What does D mean in DRWX?Typing ls -ld at the host system prompt will show you the permissions of your home directory, with a string of 10 characters that should look something like drwx------ or drwx--x--x. The first character is what type of entry you're looking at, either d for directory or - for a plain file.
|