'shutdown' and 'cat'


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers 'shutdown' and 'cat'
# 1  
Old 11-25-2008
Power 'shutdown' and 'cat'

Hi All,

This is actually a good interview question.

On linux, the permissions and group for 'shutdown' and 'cat' is the same.

-rwxr-xr-x 1 root root 18K 2008-05-21 10:43 shutdown
-rwxr-xr-x 1 root root 17K 2007-01-30 19:51 cat

Then why is it that a normal user cannot run the 'shutdown' command ?

I've done some searching and I think it has something to do with SUID.
The 'shutdown' command calls the seteuid(0) where as the 'cat' command does not.

Is this correct ? Could someone please verify? Also is there a list of commands which can only be run by su even though the permissions are the same? I mean how can we know?
Thanks.

Last edited by scottsiddharth; 11-25-2008 at 01:00 AM..
# 2  
Old 11-25-2008
Since there is no SETUID bit set, as you can see yourself looking at the permissions, I think it is the binary itself checking who is executing it. If you try different binaries in /sbin as a non root user you get different output, so it seems not to be a system wide mechanism.

Here is a good explanation for SETUID bit etc., 6.2:

Linux permissions
# 3  
Old 11-25-2008
The following:

/sbin/halt

in suse uses geteuid. If it's not superuser it reportsL
halt: must be superuser.
# 4  
Old 11-25-2008
This happen because your normal user can't setuid to 0. Try this and see why you cannot run successfully shutdown with normal user:

$ strace shutdown

and

# strace shutdown
# 5  
Old 11-25-2008
Yes, shutdown uses this, I was reporting halt. Thanks.
# 6  
Old 11-26-2008
$ strace ./shutdown

execve("./shutdown", ["./shutdown"], [/* 16 vars */]) = 0
.
. *****text omitted*****
.
getuid32() = 8218
geteuid32() = 8218
setuid32(8218) = 0
getuid32() = 8218
write(2, "shutdown: you must be root to do"..., 39shutdown: you must be root to do that!
) = 39
exit_group(1) = ?
Process 6144 detached
*************************************************

$ ./shutdown
shutdown: you must be root to do that!


Wow. Thanks dude. Never knew such a command existed even.
 
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. AIX

Server Shutdown

Hi, is it possible to find out ip address of user who has shutdown or rebooted the server , I have used the command errpt -a , in that it is showing server rebooted but it is not showing ip address who has shutdown the serve, even I have used command last reboot. Please suggest. Regards, ... (3 Replies)
Discussion started by: manoj.solaris
3 Replies

2. UNIX for Dummies Questions & Answers

Script to force Oracle database shutdown when shutdown immediate does not work

I have Oracle 9i R2 on AIX 5.2. My Database is running in shared server mode (MTS). Sometimes when I shutdown the database it shutsdown cleanly in 4-5 mints and sometimes it takes good 15-20 minutes and then I get some ora-600 errors and only way to shutdown is by opening another session and... (7 Replies)
Discussion started by: aixhp
7 Replies

3. AIX

shutdown command

Hi, After issuing shutdown -F or shutdown -F now my server is getting restarted. Any Idea? (3 Replies)
Discussion started by: manoj.solaris
3 Replies

4. Shell Programming and Scripting

cat in the command line doesn't match cat in the script

Hello, So I sorted my file as I was supposed to: sort -n -r -k 2 -k 1 file1 | uniq > file2 and when I wrote > cat file2 in the command line, I got what I was expecting, but in the script itself ... sort -n -r -k 2 -k 1 averages | uniq > temp cat file2 It wrote a whole... (21 Replies)
Discussion started by: shira
21 Replies

5. Shell Programming and Scripting

for i in `cat myname.txt` && for y in `cat yourname.txt`

cat myname.txt John Doe I John Doe II John Doe III ----------------------------------------------------------------------- for i in `cat myname.txt` do echo This is my name: $i >> thi.is.my.name.txt done ----------------------------------------------------------------------- cat... (1 Reply)
Discussion started by: danimad
1 Replies

6. UNIX for Dummies Questions & Answers

Difference between cat , cat > , cat >> and touch !!!

Hi Can anybody tell the difference between Difference between cat , cat > , cat >> and touch command in UNIX? Thanks (6 Replies)
Discussion started by: skyineyes
6 Replies

7. UNIX for Advanced & Expert Users

Shutdown

Firstly uname -a = UnixWare companyname 5 7.1.4 i386 x86at SCO UNIX_SVR5 Server is an HP Proliant ML350 G4 Tower Right, now to the problem. We frequently have power outtages and lightning strikes here due to our location in a VERY rural part of the UK. As such, I need to be able to remotely... (6 Replies)
Discussion started by: aewpcoles
6 Replies

8. SuSE

Shutdown scripts

Hello all I'm trying to automate the startup/shutdown of my database whenever the OS is bounced ... OS : Linux (Kernel : 2.4.20.-6) Oracle : 9.2.0.5 The contents of /etc/init.d/dbora file is listed below case "$1" in 'start') su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbstart"... (1 Reply)
Discussion started by: luft
1 Replies

9. UNIX for Advanced & Expert Users

to shutdown

Hai Could somebody tell me the solution to my problem. the question is as follows there is one unix server and 100 dummy terminals connected to my server, i want to shutdown client system if some of the client forgetten to power down their system. plez provide me the code for that. (2 Replies)
Discussion started by: rajashekaran
2 Replies
Login or Register to Ask a Question