Linux sudo file permissions

Sudo and file permissions

I am configuring sudo on a server and have the following question. I only want a user group to run the /sbin/ifconfig . I have configured sudo:

User_Alias ​​NETWORK = user1 Cmnd_Alias ​​NETWORKING = /sbin/ifconfig Host_Alias ​​MYHOSTS = localhost 
NETWORK MYHOSTS = (root) NETWORKING 

It works well for user user1: sudo ifconfig asks the password. But, I see that any computer user can run ifconfig also because the permissions on this file in /sbin are 755. Is it right? Should I also change the file permissions?

Usually every user can run ifconfig , but cannot make modifications like ifconfig eth0 down which requires root/sudo.

Then sudo command not completely blocked, but only certain actions. Although this is not a user in the sudo file permissions will continue having regular file, is that correct?

Correct, if I understand you right. In my own words: sudo only checks permissions if a command is executed via sudo command . Otherwise only the file system permissions (or other security mechanisms) are obeyed.

@aelbaz: What do you mean by ‘permissions will continue having regular file’? The effect of sudo /sbin/ifconfig (. ) is to run the /sbin/ifconfig command as user root , who can do more with that command than a regular user can, not because of the permissions set on /sbin/ifconfig or because of the lines in the sudo configuration, but because of permissions set on other files that are used by /sbin/ifconfig .

1 Answer 1

sudo allows a permitted user to execute a command as the superuser or another user, as specified by the security policy.

That does not affect the regular (file system) permissions. So, if an executable has permissions 755 ( -rwxr-xr-x ) every user on the system can execute it. But — depending on the executable — for some operations you get a permission denied error:

$ ls -l /sbin/ifconfig -rwxr-xr-x 1 root root 67912 May 11 2013 /sbin/ifconfig $ whoami user $ /sbin/ifconfig eth0 Link encap:Ethernet HWaddr 00:00:00:00:00:00 inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:29886 errors:0 dropped:0 overruns:0 frame:0 TX packets:17383 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:3706932 (3.5 MiB) TX bytes:34965406 (33.3 MiB) $ /sbin/ifconfig eth0 down SIOCSIFFLAGS: Operation not permitted $ sudo /sbin/ifconfig eth0 down [sudo] password for user: - no error - $

Please note that changing the permissions of /sbin/ifconfig to 700 ( -rwx—— ) will prevent normal users to execute it, but there might be others means to gain the information. E. g. the IP address via ip address or the /proc file system.

Читайте также:  Vmware kali linux bluetooth

Источник

File Permissions in Linux – How to Use the chmod Command

Arunachalam B

Arunachalam B

File Permissions in Linux – How to Use the chmod Command

Just as with other operating systems, multiple users can create user accounts and share the same machine running Linux OS.

But whenever different users share a system, problems of privacy can easily arise. The first user may not wish the next user to view, edit, or delete their files, for example.

The Linux Terminal possesses some superpowers when it comes to handling file permissions. You can grant or revoke permissions for every file and directory from your Linux Terminal.

What are File Permissions in Linux?

File permissions control which actions can be performed by which users. Read, Write, and Execute are the three actions possible for every file.

Users are classified under three broad categories: Normal users, Groups, and Others. Linux allows users to set permissions at a very granular level. You can secure your file or directory in every possible location of a file system.

There are three important commands you’ll use when managing file permissions:

Among these, chmod is one of the most important commands. We’ll discuss the chmod command in this tutorial, and I’ll get into the others in upcoming articles.

Let’s deep dive into the chmod command 🏊.

Actions you can perform on a file

Before we proceed further, I want to make sure you’re clear about how the Read, Write, and Execute actions of a file work. Read and write are pretty are self-explanatory – they determine whether a user can read or write to a file.

But, what’s an executable file?

Читайте также:  Проверить открыты ли порты линукс

A file is said to be executable if it has a sequence of instructions to achieve something. A good example is scripting files (Shell Scripts).

What is the chmod Command?

chmod is a command that lets you change the permissions of a file or directory to all types of users.

Here’s the syntax of the chmod command:

trd4dTKoxhk9Ap9xLifsuo6bD9wj4kc_i5gtDudFLQyU1gNdJLGoLoyCuJLh1FF9Yah-IG43YuR3yrrtJq48xBEYEq0QQkHMFB1n1YBiv-_fWJT95gyihZD0tjAj0ScnEmF33WRFdHJbfzTSpxSnaimyUbHlK9a2hMujE8CeyT4AoliZY5XJ_wKOsIVrPw

Now it is executable. He stared at me as if I was a hacker 😂. But really, it’s a pretty simple and basic concept.

How to Remove Permissions from a File in Linux

I work with my colleague Divad on lots of projects, and he likes to try to fool me. We work together on many hobby projects and we often write shell scripts for quick deployment.

Whenever he writes shell scripts, he always removes all the permissions from the file and pushes the changes to the remote repo. So every time I have to grant permissions using the above commands for whatever action I have to do.

Let’s have a quick look at the command he uses to remove file permissions.

Here we have a file named install.sh which has all permissions (Read, Write, Execute). Let’s remove the execute permission for this script file.

image-136

You’ll not be able to execute this file now. Trying so will give you an error as shown in the above screenshot.

Let’s remove the read permission from the file.

DHdaIMmV0pcFiMO-9GiLwXbUes8QZs5v6uKDLfuCu9Ltt-0SitENOM8najXPaxMXFJSQAzlI7F1u1p8i6fbqq1timsCoVGVOBdEtzUlybcmoh0W6oHWrIKyUUJr1dOjDZ_vbo0WkGE3fcLa3T7ZfvymVKVZPoKvKrDDH7ZVFSSlyeyQ1ypLixkAdD5uroAiphPcFoH9r0VnGArokWKexbVTzGtMkaOC-EgeXECKqHyE2QJMA49sh5HK_u_ZNKDDKc_hmFPe-dM8VVy0Xu-EKGT1VpBaABcUtPxCEipSvNVhwJQWfxisGBHJbvAcosK3kO8JNsWT9qSl2-7A0cK-A8gHjWIK4cfvNAx4iofZOOPOgevXbR8mVjmDZqk0w

The same applies to removing write permission from the file:

wVL6XdsMVVBrqw3dnrjELCIsqQyDkxtQWUKcD8HyXAUJktcBQyYAK1Ln-A9P517WW1b8tfm95HGd4NmRuP9fgs9QI6w9ZrR0ZeSNyMpWIlYlGld_Vq1-_m8fDDcV9Et-BJd99Jy3RI2cs6vm26Ywp9IFJzx1su8CGVgoe38-BNJp9qDooZe7XAbqv1S88A

You can achieve all the above together using the below command:

JfC_fUvfsYzwm23cEaE6ThbFRGdY-tazuXBYIxBdunGsSSema2yGIFkJrLtw0rksPpG4iSUiBqjm9Uu5bEIuTasDyNm_zX0kLAqA3Ncv30FHcmSaXe_XbOzBdIBtg4hVI9kuIwPnRIYhdBZpsfXIaPPnVGUwBP5cwvfWpFn2OPjQfjjiIkkd3rrz0w465A

But, did you know that I can create another directory inside locked_directory named dir1 and read the files and folders in dir1 ?

FMLRcjtvY-M1YVSANwmgdzdDwBJ9lrv4V7dLREva9RRUmal7PG8Q5p-l4XZMCi3zIznvSqIKpr68PwGlcripbREffgPzpmqOJ09OR-CvBEGrncBxYX9c9OTe0kq5-xL9rsGP1xQDO_sZP9iXPmHKpXFukFhTIYlXaFRnoHvdCRYA1FJDHcvXmFqP8dmshA

Then what’s the purpose of the command we just ran before? Removing the read permission on the parent should remove the same on child directories too, right?

Читайте также:  Install mysql on linux mint

Well. That’s the exact thing I told you earlier. Linux manages a very granular level of file permissions.

If you want to apply the permissions to the parent directory and all its child directories, you need to pass an exclusive flag with the chmod command.

That flag is -R . It basically means applying the same permissions recursively to all sub-directories (child directories). So this permission will apply to the end child of a file/directory.

Here’s the syntax for that:

GZGisVgUxcZjYduKGlOaYHUaTRTgI7tf3nNzdpxL8QZvDDYV_PLgwaFipmbfxzDlziG_Gy7f5Gyeibc_E7IhGvEOmReUKUe3t7yYMXZKDsRnXcxivbepHpqww3y2YSLSyjvi83i_c5Z1rgQbc_ku-Bz5hy8lMl8idzg4MtfYtEZymPFTZBNceq9xgH79ZQ

From the above screenshot, you can see that trying to view the child directory files has failed after removing the read permission recursively from the parent directory.

Another Way to Handle File Permissions in Linux

Alternatively, you can use Octal representation to control the file permissions.

We can use numbers to represent file permissions (the method most commonly used to set permissions). When you change permissions using the Octal mode, you represent permissions for each triplet using a number (4, 2, 1, or combination of 4, 2, and 1).

Let’s see the syntax for using octal mode:

image-137

Look at the first part of the output ( -rwxrwxrwx ) from the above screenshot. Let’s explore what it means:

permissions-1

The first character indicates the type of input.

  • «-» indicates a file
  • «d» indicates a directory
  • «i» indicates a link (a symlink, which is a shortcut to a file/directory)

You group the next set of letters, at a maximum of 3 for each group. These groups represents corresponding permissions for user, group, and others.

Conclusion

In this article, you have learned about handling basic file and folder permissions.

I hope you enjoyed reading this tutorial. I have one request to all: give it a try on your own with some complicated scenarios like having permutations and combinations of permissions 😂. It’ll definitely be helpful in your entire career.

Subscribe to my newsletter by visiting my site and also have a look at the consolidated list of all my blogs.

Источник

Оцените статью
Adblock
detector