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 created a simple script called test that says the following:
Code:
#!/bin/bash
init 6
to test out learning the SUID bit. The script is owned by root, and I did:
Code:
chmod 777 test
chmod u+s test
The permissions now read rwsrwxrwx, but when I try to execute the file as another user, it says init: must be superuser.
I thought the suid bit allows a script to execute as the script's owner, in this case root. Is there possibly some security measure that can prevent this execution?
SetXid bits on shell scripts haven't been honored since the Trojan Wars.
Can you explain what you mean by this? So setting the SGID/SUID bits on shell scripts is useless now? Why does the option still exist? Does setting those bits matter on non-shell script executables?
...but the fact it does doesn't or shouldn't automagically legitimise its use. Granted, one expects some binaries to, but setting the bit especially on binaries that shouldn't have it set can have interesting consequences.
...but the fact it does doesn't or shouldn't automagically legitimise its use. Granted, one expects some binaries to, but setting the bit especially on binaries that shouldn't have it set can have interesting consequences.
Yep, understood. Don't plan on using it, I can see the security implications. Just curious about how it worked.
The permissions now read rwsrwxrwx, but when I try to execute the file as another user, it says init: must be superuser.
I thought the suid bit allows a script to execute as the script's owner, in this case root. Is there possibly some security measure that can prevent this execution?
If you use commands in your script, then all those commands must also have SUID bit set on them. That's what the error means. Try setting SUID bit on init command. And for more info on SUID/SGID/Sticky bit, check following link:
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.