Read and Write Files Based on Linux Permissions in C
Linux is a clone of UNIX, the multi-user operating system which can be accessed by many users simultaneously. Linux can also be used in mainframes and servers without whatsoever modifications. But this raises security concerns as an unsolicited or malign user can decadent, alter or remove crucial data. For effective security, Linux divides authorization into 2 levels.
- Ownership
- Permission
In this Linux file commands tutorial, you volition learn-
- Linux File Ownership
- Linux File Permissions
- Changing file/directory permissions in Linux Using 'chmod' command
- Accented(Numeric) Mode in Linux
- Symbolic Mode in Linux
- Changing Ownership and Grouping in Linux
The concept of Linux File permission and ownership is crucial in Linux. Here, we will explicate Linux permissions and buying and will discuss both of them. Let us get-go with the Ownership.
Click hither if the video is not attainable
Linux File Ownership
Every file and directory on your Unix/Linux system is assigned iii types of possessor, given below.
User
A user is the owner of the file. By default, the person who created a file becomes its owner. Hence, a user is also sometimes called an owner.
Grouping
A user- group can contain multiple users. All users belonging to a group volition take the same Linux group permissions access to the file. Suppose you lot have a project where a number of people require access to a file. Instead of manually assigning permissions to each user, y'all could add all users to a group, and assign group permission to file such that only this group members and no one else can read or change the files.
Other
Whatever other user who has access to a file. This person has neither created the file, nor he belongs to a usergroup who could ain the file. Practically, it ways everybody else. Hence, when you prepare the permission for others, information technology is also referred equally set permissions for the world.
At present, the large question arises how does Linux distinguish between these three user types then that a user 'A' cannot affect a file which contains another user 'B's' vital data/data. It is like yous do not want your colleague, who works on your Linux computer, to view your images. This is where Permissions set in, and they define user behavior.
Permit us sympathize the Permission system on Linux.
Linux File Permissions
Every file and directory in your UNIX/Linux system has following 3 permissions divers for all the three owners discussed above.
- Read: This permission give you lot the authorisation to open up and read a file. Read permission on a directory gives you the power to lists its content.
- Write: The write permission gives you the say-so to change the contents of a file. The write permission on a directory gives you the authorization to add together, remove and rename files stored in the directory. Consider a scenario where you have to write permission on file but do not have write permission on the directory where the file is stored. Yous volition be able to modify the file contents. But you volition not be able to rename, movement or remove the file from the directory.
- Execute: In Windows, an executable program normally has an extension ".exe" and which you can hands run. In Unix/Linux, you cannot run a program unless the execute permission is set. If the execute permission is non set, you might still be able to see/modify the program lawmaking(provided read & write permissions are prepare), but not run it.
Let'south see file permissions in Linux with examples:
ls – l on terminal gives
ls - l
Here, we accept highlighted '-rw-rw-r–'and this weird looking code is the i that tells us about the Unix permissions given to the owner, user grouping and the world.
Here, the first '–' implies that we have selected a file.p>
Else, if it were a directory, d would have been shown.
The characters are pretty piece of cake to retrieve.
r = read permission
w = write permission
x = execute permission
– = no permission
Permit us look at it this way.
The first office of the code is 'rw-'. This suggests that the owner 'Home' can:
- Read the file
- Write or edit the file
- He cannot execute the file since the execute bit is gear up to '-'.
By design, many Linux distributions like Fedora, CentOS, Ubuntu, etc. will add users to a group of the same group name as the user name. Thus, a user 'tom' is added to a grouping named 'tom'.
The 2nd part is 'rw-'. Information technology for the user group 'Habitation' and group-members tin:
- Read the file
- Write or edit the file
The tertiary part is for the world which means any user. It says 'r–'. This means the user tin can only:
- Read the file
Changing file/directory permissions in Linux Using 'chmod' command
Say you exercise non want your colleague to run into your personal images. This can be achieved by irresolute file permissions.
Nosotros can use the 'chmod' control which stands for 'modify mode'. Using the command, we tin set permissions (read, write, execute) on a file/directory for the owner, grouping and the globe.
Syntax:
chmod permissions filename
There are 2 ways to apply the command –
- Absolute way
- Symbolic manner
Accented(Numeric) Way in Linux
In this mode, file permissions are not represented as characters but a three-digit octal number.
The table below gives numbers for all for permissions types.
Number | Permission Blazon | Symbol |
---|---|---|
0 | No Permission | — |
1 | Execute | –10 |
ii | Write | -due west- |
3 | Execute + Write | -wx |
4 | Read | r– |
v | Read + Execute | r-x |
half dozen | Read +Write | rw- |
7 | Read + Write +Execute | rwx |
Let's see the chmod permissions control in activeness.
In the above-given terminal window, we have changed the permissions of the file 'sample to '764'.
'764' absolute lawmaking says the following:
- Owner can read, write and execute
- Usergroup can read and write
- World tin only read
This is shown as '-rwxrw-r–
This is how you tin can change user permissions in Linux on file past assigning an accented number.
Symbolic Fashion in Linux
In the Absolute mode, yous change permissions for all iii owners. In the symbolic manner, you lot tin can alter permissions of a specific owner. Information technology makes use of mathematical symbols to change the Unix file permissions.
Operator | Description |
---|---|
+ | Adds a permission to a file or directory |
– | Removes the permission |
= | Sets the permission and overrides the permissions fix earlier. |
The various owners are represented as –
User Denotations | |
---|---|
u | user/owner |
k | grouping |
o | other |
a | all |
Nosotros will not exist using permissions in numbers like 755 simply characters like rwx. Let's wait into an example
Changing Ownership and Group in Linux
For changing the ownership of a file/directory, you tin use the following command:
chown user filename
In case you want to alter the user as well as group for a file or directory utilize the control
chown user:group filename
Let'south see this in activeness
In instance you want to change group-owner only, use the command
chgrp group_name filename
'chgrp' stands for modify group.
Tip
- The file /etc/grouping contains all the groups divers in the system
- Yous can use the command "groups" to find all the groups you are a fellow member of
- Y'all tin use the command newgrp to work as a fellow member a grouping other than your default group
- You cannot accept two groups owning the same file.
- You exercise non have nested groups in Linux. One group cannot be sub-grouping of other
- x- eXecuting a directory means Being allowed to "enter" a dir and gain possible access to sub-dirs
- At that place are other permissions that you tin set on Files and Directories which volition exist covered in a later advanced tutorial
Summary:
- Linux existence a multi-user organisation uses permissions and buying for security.
- There are three user types on a Linux system viz. User, Group and Other
- Linux divides the file permissions into read, write and execute denoted by r,w, and x
- The permissions on a file tin can be changed by 'chmod' control which can be further divided into Accented and Symbolic mode
- The 'chown' command tin modify the ownership of a file/directory. Employ the following commands: chown user file or chown user:group file
- The 'chgrp' command tin modify the group buying chrgrp group filename
- What does x – eXecuting a directory mean? A: Beingness immune to "enter" a dir and gain possible access to sub-dirs.
Source: https://www.guru99.com/file-permissions.html
0 Response to "Read and Write Files Based on Linux Permissions in C"
Post a Comment