this post was submitted on 06 Jun 2024
4 points (66.7% liked)

linux4noobs

980 readers
1 users here now

linux4noobs


Noob Friendly, Expert Enabling

Whether you're a seasoned pro or the noobiest of noobs, you've found the right place for Linux support and information. With a dedication to supporting free and open source software, this community aims to ensure Linux fits your needs and works for you. From troubleshooting to tutorials, practical tips, news and more, all aspects of Linux are warmly welcomed. Join a community of like-minded enthusiasts and professionals driving Linux's ongoing evolution.


Seeking Support?

Community Rules

founded 1 year ago
MODERATORS
 

I would like to set a specific command to not require sudo privileges, is there a way to accomplish this? I know you can add commands to the sudoer file to allow certain commands to be used by non root accounts, so maybe there is something similar for adding commands to allow regular users to use?

you are viewing a single comment's thread
view the rest of the comments
[–] Ferk@programming.dev 7 points 3 months ago* (last edited 3 months ago) (1 children)

What do you mean by "not require sudo privileges"?

Do you mean not require root permissions? that depends on what are you trying to do. You'll need to make changes in your system to allow normal users to have permissions for it, and in many cases that's not possible (or very safe).

If what you mean is that you don't want to need to type"sudo" every time, but still be able to have the commands run with root permissions, then there's multiple ways to do this:

  • Add an alias such as alias command='sudo command'. If you don't want to type the password, you can change the sudores file so that your user doesn't need to enter a password when running sudo for that command (someone else in the comments already explained how to do that, using an entry with NOPASSWD: /usr/bin/command in the sudoers config).

  • alternatively: set the SUID bit of the executable you want to run, so that every time the file is executed (by anyone) it will always execute as the user who owns the file (so if the owner is root, the file will always be executed as root)... this is not something I'd recommend though, since it can lead to security vulnerabilities.

[–] tal 4 points 3 months ago (1 children)

since it can lead to security vulnerabilities.

Most software isn't written to be hardened for that kind of invocation.

Also, IIRC you can also do the same thing with the sgid bit.

goes to check

Yeah.

$ mkdir test
$ cd test
$ cp /bin/id ./
$ ls -ln id
-rwxr-xr-x 1 1000 1000 48144 Jun  6 10:56 id
$ ./id -g
1000
$ sudo chgrp 1001 id 
$ sudo chmod g+s id 
$ ./id -g
1001
$ ./id -gr
1000
$ 
[–] Ferk@programming.dev 2 points 3 months ago* (last edited 3 months ago) (1 children)

True, SGID would affect the group it runs as, while SUID affects the user.

You could set up things so that a group has permissions to do what you want, instead of the root user. But then this also depends on the usecase, I'm not sure if having root group permissions would be enough in all cases.

[–] Ponziani@sh.itjust.works 2 points 3 months ago

Thank you both