Linux - NewbieThis Linux forum is for members that are new to Linux.
Just starting out and have a question?
If it is not in the man pages or the how-to's this is the place!
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I have a quick question about chmod. I want the user "nobody" to be able to execute a script I wrote with the user ID set to mine, so I used chmod to change the file permissions:
Code:
chmod u+s myfile
However, it appears that if I call commands from within the script, my user ID no longer is set for that command (I assume it defaults back to "nobody", but I'm not sure). Is there any way to get my user ID to pass down to other commands in the script? Or is there another way to do this altogether?
If you do that, you are allowing the owner of the file to execute a program as 'root'. If you want the user 'nobody' to execute the program as the owner, then you need the setgid bit set and put 'nobody' in the group.
Not only that, setuids and setgids do not work for shell scripts. So, if yours is, it won't work. It needs to be a real executable, a compiled program.
Yes, the file is a bash script. I thought that if the setuid bit is set, then any user executing the script will have the same permissions as the owner of the file. Is this not true? Maybe I would need to change the permissions on "bash", but that's probably not a good idea. Do I need to write an equivalent script in C and compile it?
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.