Different users in the operating system have ownership and permission to ensure that the files are secure and put restrictions on who can modify the contents of the files. In Linux there are different users who use the system:
- Each user has some properties associated with them, such as a user ID and a home directory. We can add users into a group to make the process of managing users easier.
- A group can have zero or more users. A specified user can be associated with a “default group”. It can also be a member of other groups on the system as well.
Ownership and Permissions: To protect and secure files and directory in Linux we use permissions to control what a user can do with a file or directory. Linux uses three types of permissions:
- Read: This permission allows the user to read files and in directories, it lets the user read directories and subdirectories stores in it.
- Write: This permission allows a user to modify and delete a file. Also it allows a user to modify its contents (create, delete and rename files in it) for the directories. Unless the execute permission is not given to directories changes does do affect them.
- Execute: The write permission on a file allows it to get executed. For example, if we have a file named php.sh so unless we don’t give it execute permission it won’t run.
Types of file Permissions:
- User: These type of file permission affect the owner of the file.
- Group: These type of file permission affect the group which owns the file. Instead of the group permissions, the user permissions will apply if the owner user is in this group.
- Other: These type of file permission affect all other users on the system.
Note: To view the permissions we use:
chown command is used to change the file Owner or group. Whenever you want to change ownership you can use chown command.
chown [OPTION]… [OWNER][:[GROUP]] FILE… chown [OPTION]… –reference=RFILE FILE…
Example: To change owner of the file:
chown owner_name file_name
In our case we have files as follows:
Now if I use file1.txt in my case, to change ownership I will use the following syntax:
chown master file1.txt
where the master is another user in the system. Assume that if you are user named user1 and you want to change ownership to root (where your current directory is user1). use “sudo” before syntax.
sudo chown root file1.txt
- -c: Reports when a file change is made.
chown -c master file1.txt
- -v: It is used to show the verbose information for every file processed.
chown -v master file1.txt
- -f: It supresses most of the error messages. When you are not permitted to change group permissions and shows error, this option forcefully/silently changes the ownership.
- To Change group ownership In our case I am using group1 as a group in the system. To change ownership we will use
chown :group1 file1.txt
You can see that the group permissions changed to group1 from root, if you use -v option it will report that. We just need to add a “:” to change group.
- To change the owner as well as group: Again taking master as user and group1 as a group in the system
chown master:group1 greek1
Here, greek1 is a file.
- To change the owner from particular ownership only: Suppose we want to change ownership from master to root where current owner must be master only.
chown --from=master root greek1
- To change group from a particular group:
chown --from=:group1 root greek1
Here, the group of greek1 is changed to root.
- To copy ownership of one file to another:
chown --reference=greek1 greek2
- To change ownership of multiple files:
chown master:group greek2 greek3