48 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			48 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								title: File Permissions
							 | 
						||
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# File Permissions
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* In Linux each file and directory has three user based permission groups:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								     **owner (u)**  - This group of permissions apply only on owner of directory or file, and they do not impact the actions of other users. 
							 | 
						||
| 
								 | 
							
								     
							 | 
						||
| 
								 | 
							
								     **group (g)** - This group of permissions apply only on group of user that are assigned to the directory or file, and they do not impact the actions of other users.
							 | 
						||
| 
								 | 
							
								     
							 | 
						||
| 
								 | 
							
								     **all users (o)** - This group of permissions apply to all users on the system.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* In Linux each file and directory has three basic permission types:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								     **read** - This permission allows user to read content of files.
							 | 
						||
| 
								 | 
							
								     
							 | 
						||
| 
								 | 
							
								     **write** - This permission allows user to write or modify the file or directory.
							 | 
						||
| 
								 | 
							
								     
							 | 
						||
| 
								 | 
							
								     **execute** - This permission allows user to execute a file or view the content of directory.
							 | 
						||
| 
								 | 
							
								     
							 | 
						||
| 
								 | 
							
								* To view permission you can use some of content listing commands such as `ls -l`, `ll`  and etc.
							 | 
						||
| 
								 | 
							
								     
							 | 
						||
| 
								 | 
							
								     Permissions are displayed as **_rwxrwxrwx**. Where _ means it is either directory marked as `drwxrwxrwx` or link marked as `lrwxrwxrwx`, first set of rwx are permissions for owner, second one are for group and the last set of rwx permissions are applied on all users.
							 | 
						||
| 
								 | 
							
								     
							 | 
						||
| 
								 | 
							
								     Usually each set of permissions has its value in integer. You can calculate each set value if you sum default values of each permission.
							 | 
						||
| 
								 | 
							
								     
							 | 
						||
| 
								 | 
							
								     **read (r)** = **4**
							 | 
						||
| 
								 | 
							
								     
							 | 
						||
| 
								 | 
							
								     **erite (w)** = **2**
							 | 
						||
| 
								 | 
							
								     
							 | 
						||
| 
								 | 
							
								     **execute (x)** = **1**
							 | 
						||
| 
								 | 
							
								     
							 | 
						||
| 
								 | 
							
								     This is important when you want to grant permissions to some type of user `owner`, `group`, `all users`. Granting permissions is usually done with command `chmod`.
							 | 
						||
| 
								 | 
							
								     
							 | 
						||
| 
								 | 
							
								     ```
							 | 
						||
| 
								 | 
							
								     chmod u=rwx,g=rx,o=r myfile
							 | 
						||
| 
								 | 
							
								     ```
							 | 
						||
| 
								 | 
							
								     or equivalent
							 | 
						||
| 
								 | 
							
								     ```
							 | 
						||
| 
								 | 
							
								     chmod 754 myfile
							 | 
						||
| 
								 | 
							
								     ```
							 | 
						||
| 
								 | 
							
								     Example with no permission for groups
							 | 
						||
| 
								 | 
							
								     ```
							 | 
						||
| 
								 | 
							
								     chmod 704 myfile
							 | 
						||
| 
								 | 
							
								     ```
							 |