Day 6: File Permissions and Access Control Lists

Today is more on Reading, Learning and Implementing File permissions

The concept of Linux File permission and ownership is important in Linux. Here, we will be working on Linux permissions and ownership and will do tasks on both of them. Let us start with the Permissions.

Create a simple file and do ls -ltr to see the details of the files

Each of the three permissions are assigned to three defined categories of users. The categories are:

  •    owner   —   The owner of the file or  application.
    
  • "chown" is used to change the ownership permission of a file or directory.

  •    group   —   The group that owns the file or application.
    
  • "chgrp" is used to change the gropu permission of a file or directory.

  •    others  —   All users with access to the system. (outised the users are in a group)
    
  • "chmod" is used to change the other users permissions of a file or directory.

    As a task, change the user permissions of the file and note the changes after ls -ltr:

    \======================

Currently, myfile1.txt has 644 permission and i want to give execute permission to the owner, group and other users. i.e 755

After changing the user permission of myfile1.txt, chmod 755 myfile1.txt

output is:

Write an article about File Permissions based on your understanding from the notes.

Permission Type: 3 types

Basic permission

Read, write, execute

Special permission

suid, sgid, sticky bit

Access control list permission (ACL)

Commands: setfacl, getfacl

Permission classes: 3 types

Owner

is the user who created the file/application (Full permission rwx)

Group

is a set of users who have been granted certain permission by the owner

Other

All users with access to the system (outside of the group)

Permission set:

Read (r)

4

read the content of a file

Write (w)

2

modify the content of a file

Execute (x)

1

execute/run the file as a program

(-)

0

Basic Permission: It controls the access to a file/dir and is assigned to an owner, group and other users with read, write and execute permissions.

Special Permission: It provides additional functionality to control file/dir access such as setting elevated permission and restricting file deletion.

setuid > set on an executable file

when a regular user needs to run a program that requires root permission, then setuid can be set to an executable file which allows users to inherit the permission of the owner of that file

setgid > set on a dir

When a group of users needs to work on the same set of files/dir with the same permission

sticky bit > set on a dir

it prevents users from deleting files/dir that they do not own

With ACL, you can grant permission to multiple users and groups, identified by user name, group name, UID, GID. using the same permission flags used with regular file permission: read, write and execute

To check file permission-> ls -l <filename>

To check directory permission-> ls -ld <filename>

To get detailed info-> ls -ltr <filename>

Read about ACL and try out the commands getfacl and setfacl

Access Control list is a way/service to manage file permissions in Linux. It is more flexible than the traditional File System permissions in Linux.

ACL is particularly useful in multi-user environments or when managing large and complex file systems. It allows us to set permissions for individual users and groups on a per-file basis rather than having to apply the same permissions to an entire directory or file system.

ACL permissions:

To check ACL permissions

getfacl <filename>

To set ACL permissions

setfacl -m <u,g,o>:<username>:<r,w,x> <filename>

-m is for modify; u,g,o is for user/group/other user; r,w,x is for read write execute permissions(4,2,1)

To set ACL permission to all dir

setfacl -d -m

-d is for directory

To remove ACL permissions for a user from a file

setfacl -x <user> <filename>

To remove all ACL permissions

setfacl -b <filename>

Note- If ACL is set to any file, then the + sign will come as below:

To check whether ACL is enabled in our file system or not, where if the mounted file system defaults mean ACL is enabled in our file system.

cat /etc/fstab

\===========================***==============================

Will appreciate your feedback :) #90daysofdevops

linkedin.com/in/sweety-samya-963859130

Happy learning!-