File Permissions and Access Control Lists (Day 6 task)

File Permissions and Access Control Lists (Day 6 task)

Understanding Basic File Permissions and ownership in Linux – The Geek Diary

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

Here are the commands you can use to create a simple file and display its details using ls -ltr:

# Create a file named "simple-file.txt" 

touch simple-file.txt

# Display the details of the file using ls -ltr

ls -ltr simple-file.txt

In the first command, the touchcommand is used to create a file named "simple-file.txt".

In the second command, the ls command is used with the options -ltr to display the details of the file in long (-l) format, sorted by modification time (-t) in reverse order (-r). This will show the timestamp, file permissions, file owner, file group, file size, and filename of the "simple-file.txt" file, as well as any other files in the current directory.

You should see output similar to the following:

This output shows that the "simple-file.txt" file is owned by the user "mehboob", has the file permissions "-rw-rw-r--" (i.e. read and write for the owner, and read and write for others), and was last modified on May 3 at 23:17. The file size is 0 bytes, and the filename is "simple-file.txt".

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

File permissions are an important aspect of Unix-based operating systems, as they control which users or groups are allowed to perform specific actions on a file. There are three basic types of permissions, which can be set for each file or directory: read, write, and execute.

Read permission allows a user or group to view the contents of a file or directory. Write permission allows a user or group to modify the contents of a file or directory, such as creating or deleting files, or changing their contents. Execute permission allows a user or group to run a file as a program or script, or to enter a directory and access its contents.

For each file or directory, there are three groups of permissions that can be set: user (also known as owner), group, and others. The user permissions apply to the user who owns the file or directory, the group permissions apply to any users who belong to the group assigned to the file or directory, and the others permissions apply to all other users who are not the owner or members of the group.

The permissions can be set using a numeric notation, where each permission is represented by a number between 0 and 7. The read permission is represented by 4, the write permission is represented by 2, and the execute permission is represented by 1. To set the permissions, you add up the number values for the desired permissions. For example, to set read and write permissions for the user, and read-only permissions for the group and others, you would set the permissions to 644 (4+2 for the user, 4 for the group and others).

To view the current permissions for a file or directory, you can use the ls -l command. For example, to view the permissions for a file named "example.txt", you can run ls -l simple-file.txt. The output will show the permissions in the first column, as a string of ten characters. The first character represents the file type (- for a regular file, d for a directory, l for a symbolic link, etc.), while the next three characters represent the permissions for the owner, the next three represent the permissions for the group, and the last three represent the permissions for others.

Understanding file permissions is important for managing security and access control on a Unix-based system. By setting the appropriate permissions for each file or directory, you can ensure that only authorized users or groups are able to access or modify important system files, directories, and programs.

3.Read about ACL and try out the commands getfacl and setfacl

Access Control Lists (ACLs) are an advanced feature of Unix-based file systems that allow for greater control over file permissions beyond the basic rwx user-group-other permissions. ACLs allow file and directory owners to grant specific permissions to users and groups beyond the file's owning group and other primary permissions. Using ACLs, administrators can implement more fine-grain file permission schemes that can be customized to meet specific access requirements.

The getfacl command is used to display the ACLs of a file or directory. The syntax for getfacl is as follows:

getfacl [options] [file/directory name]

Here are some common options for the getfacl command:

  • -p, --omit-header: Don't print the file/directory name as the first line of output.

  • -s, --access: Display only the Access ACL.

  • -d, --default: Display the Default ACL instead of the Access ACL.

For example, to display the ACLs for a file named "example.txt", you can run the following command:

getfacl simple-file.txt

The output will show the Access ACL, which specifies the individual users and groups and their permissions.

The setfacl command is used to set the ACLs of a file or directory. The syntax for setfacl is as follows:

setfacl [options] [-m permissions] [-x permissions] [file/directory name]

Here are some common options for the setfacl command:

  • -m, --modify: Modify the ACL of the file/directory.

  • -x, --remove: Remove the specified permissions from the file/directory ACL.

For example, to add write permissions for a specific user "user1" to a file named "simple-file.txt", you can run the following command:

sudo setfacl -m u:user1:write simple-file.txt

This will add an ACL entry for "user1" with write permission to the file "simple-file.txt.txt".

Note that both getfacl and setfacl commands require elevated privileges, so you'll need to run them with the sudo command or as the root user. Also, not all file systems support ACLs, so it's important to verify that your file system supports ACLs before using these commands.

Thank you,