suid sgid problem in script


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers suid sgid problem in script
# 1  
Old 03-19-2010
suid sgid problem in script

hi I have problem with understanding setuid and setgid

in system I have following users:
Code:
$id -a marek
uid=1001(marek) gid=1001(marek) groups=1001(marek),1002(uzivatelia)

$id -a cepi
uid=1000(cepi) gid=1000(cepi) groups=1000(cepi),4(adm),20(dialout),24(cdrom),46(plugdev),104(lpadmin),115(admin),120(sambashare),123(ftp),1002(uzivatelia)

$id -a tux
uid=1002(tux) gid=1003(tux) groups=1003(tux)


1st.

I have following simple script, for which I set up suid.
Code:
#!/bin/bash
if [ "$(id -u)" != "1001" ]; then
   echo "This script must be run as marek" 1>&2
   #exit 1
fi

ls -l /home/marek
echo $EUID

Code:
chmod u+s /tmp/setuid_script.sh 
$ ls -l /tmp/setuid_script.sh 
-rwSr-xr-x 1 marek marek 227 2010-03-19 20:58 /tmp/setuid_script.sh

Please consider following rights on /home/marek which is called in script
(chmod 700)
Code:
$ls -l /home/
total 16
drwxr-xr-x 60 cepi  cepi  4096 2010-03-19 22:32 cepi
drwx------  2 ftp   ftp   4096 2010-03-19 19:52 ftp
drwx------  2 marek marek 4096 2010-03-19 22:35 marek
drwxr-xr-x  2 tux   tux   4096 2010-03-19 23:00 tux

Now when I run script

as user tux
Code:
$ /tmp/setuid_script.sh 
This script must be run as root
ls: cannot open directory /home/marek: Permission denied
1002

as user cepi
Code:
/tmp/setuid_script.sh 
This script must be run as root
ls: cannot open directory /home/marek: Permission denied
1000

Why script is not running with marek's privileges and don't display contents of marek's home ?


2nd Why I am not possible to set guid for particular file ?

as marek
Code:
$chmod g+s /tmp/setuid_script.sh 
$ ls -l /tmp/setuid_script.sh 
-rw-r-xr-x 1 marek marek 227 2010-03-19 20:58 /tmp/setuid_script.sh

Thank you
# 2  
Old 03-19-2010
You cannot elevate the permissions of a shell by changing the permissions on a shell script file. It is a rule.
Imagine if you are the owner of a file you can change the permissions to whatever you like. You cannot gain root privilege or another user's privilege just by changing the permissions on your file.
# 3  
Old 03-19-2010
Maybe I am wrong understand you, but I am not trying to gain root (or somebody else) privileges by changing the permission on my file (for real I cant imagine how to do that).
What I am trying for is to set permission to my file that way, anybody who executes my file gain my privileges. I dont see any security problem here, cause I set up suid and I choose program (script) which will be suid. (if i make mistake it is my falut) (one thing that I am now thinking is that: If I set up suid for script and somebody edit the script it might be problem, but also I can give just x permissions and not rw so he could not be able to edit or view the script).
What do you mean by "Imagine if you are the owner of a file you can change the permissions to whatever you like" I cant imagine that situation.
And also "You cannot elevate the permissions of a shell by changing the permissions on a shell script file. It is a rule." script is running in own environment so if suid has script also commands in script (ls, cat, awk...) has suid. If I am wrong correct me.
Thank You

EDIT: if somebody from group edit file which had suid, then suid is gone. So now I realy do not see any security issue here.

Last edited by wakatana; 03-19-2010 at 08:31 PM..
# 4  
Old 03-19-2010
Sorry, but it just does not work in unix. You cannot elevate the permissions of the shell program by changing the permissions of the shell script file. It is a fundamental rule of unix shell. Whatever you do, do not change the permissions of the shell program itself because you will compromise the security of your system ... or stop it working completely.

The only method I know (bar sudo of course) to achieve the effect you desire is to write programs in C language. Sorry, no more detail will be provided.
If you do write such programs please do confine the permissions to a group with strictly limited and controlled membership and definitely not "other" or "wheel" or whatever.

In case anybody asks, I will not publish the code to override unix permissions. There was a post on this board asking for this last week. This sort of program is open to misuse.
# 5  
Old 03-19-2010
OK thanks, I googled something and seems you're right. the best way is probably binary wrapper.
# 6  
Old 03-19-2010
Standard approach is through setuid. Root user admin can bless a specific set of commands for a user or a group. Highly controlled and contained to a specific execution. Third party apps might even extend such controls for the paranoid admin.

Setuid

---------- Post updated at 21:18 ---------- Previous update was at 21:18 ----------

Standard approach is through setuid. Root user admin can bless a specific set of commands for a user or a group. Highly controlled and contained to a specific execution. Third party apps might even extend such controls for the paranoid admin.

Setuid
# 7  
Old 03-26-2010
I am interested to know how will this be possible. I did read about the binary wrapper, can let me know in more details as to how does it work or how did you make it work?
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Difference between inbuilt suid programs and user defined root suid programs under bash shell?

Hey guys, Suppose i run passwd via bash shell. It is a suid program, which temporarily runs as root(owner) and modifies the user entries. However, when i write a C file and give 4755 permission and root ownership to the 'a.out' file , it doesn't run as root in bash shell. I verified this by... (2 Replies)
Discussion started by: syncmaster
2 Replies

2. AIX

Why /bin/su permission with SUID?

Dear all experts in this forum, I have faced a audit issue as auditor told that we should not have SUID on /bin/su. As I have checked using Google, I found most of the site only telling that /bin/su should have the permission bit as -rwsr-xr-x but never explain why /bin/su need this permission... (4 Replies)
Discussion started by: kwliew999
4 Replies

3. Cybersecurity

the SUID of lpq

Hello My system is Debian-503-amd64. After I installed the "lpr" package, I found that some files with SUID bit come from this package. As: ls -l /usr/bin/lp* .... -rwsr-sr-x 1 root lp 31800 2008-05-20 /usr/bin/lpq -rwsr-sr-x 1 root lp 28504 2008-05-20 /usr/bin/lpr -rwsr-sr-x 1... (1 Reply)
Discussion started by: ZR_Lang
1 Replies

4. UNIX for Advanced & Expert Users

Weird SUID issue

Hi, I am setting up SUID permissions on a binary. It gets set for most of the users, however, 1 in 10 users is unable to set these. For those who works: > chmod 6555 Test > ls -l Test -r-sr-sr-x 1 A B 5524 Nov 15 14:53 Test For those where it doesn't work: > chmod 6555 Test... (14 Replies)
Discussion started by: vibhor_agarwali
14 Replies

5. UNIX for Dummies Questions & Answers

sgid suid help --need clarification

I'm writing this command/script to allow students to vi a private file of mine in a private directory of mine. chmod 700 dir chmod 660 file however since i own the directory and file; the script has to be ran by me so to speak, im just not sure how to set about doing this. the script is... (5 Replies)
Discussion started by: StrengthThaDon
5 Replies

6. UNIX for Advanced & Expert Users

SUID not working

Hi Senario: I have previleges to edit a file F but User B does not have sufficient privs to edit it. In order for B to edit it I tried an indirect way. I created a script to edit F and SUID this script so that B can execute it with the privs of me. But this is not working . can some one help... (3 Replies)
Discussion started by: Pankaj Mishra
3 Replies

7. Solaris

SUID and SGID searching...

Hi all, Thanks for all replays and for reading in advance (as per usual) Anyhow I have been asked to come up with a list of programs that have SUID root permissions and also for any programs with SGID permissions. Has anyone got any idea with out going through each program indiviually how I... (2 Replies)
Discussion started by: B14speedfreak
2 Replies

8. UNIX for Dummies Questions & Answers

what is suid ?

what is SUID ? can someone explain or point me to a link ? thanks simon2000 (2 Replies)
Discussion started by: simon2000
2 Replies

9. Cybersecurity

suid files???

Hi all, Where can i find list of suid and gid files common for the system, let's say RedHat 7.1? Thank you all Regards :D (1 Reply)
Discussion started by: solvman
1 Replies

10. Programming

SUID bit???

Hi all I'm getting file info through stat( char *filename, struct stat *buf) Taking all the file attributes to buf->st_mode, How can i check the suid bit in there, if suid bit mask is 0004000?? Thank you all (1 Reply)
Discussion started by: solvman
1 Replies
Login or Register to Ask a Question