• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 366
  • Last Modified:

script for execution root commands

I need execute the command "rdate" from an user application.
Perhaps, it's possible from a script??.
If anyone knows another method please help me!
0
elmister
Asked:
elmister
1 Solution
 
greggsterCommented:
rdate can be run from a script, but it does require root privs to
run. Add the following lines to the script file:
/bin/rdate <hostname> (hostname is the name of the system that
has the correct time).

0
 
elmisterAuthor Commented:
How is possible to login in as root from a script (root with password, of course) for execution of rdate?
P.D I know the root password, of course.
0
 
ray_leachCommented:
It's a security risk, but try this :

Create your script to run rdate like this:
#! /usr/bin/ksh
# Change to root user
su -
#run rdate
/bin/rdate mypc

Create a second script like this:

#! /usr/bin/ksh
# Run your rdate script
/rdate.sh <<EOT
god    <-- This is your root password
EOT

0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
ahoffmannCommented:
You cannot rlogin from within a script, it always asks for passwd on stdin.
Why not using rsh?
0
 
elmisterAuthor Commented:
It doesn't work
It always asks for passwd on stdin
0
 
elmisterAuthor Commented:
Using rsh for rdate?
0
 
ahoffmannCommented:
ray_leach suggestion didn't work on modern UNIX except you use a package called expect.

You may try to write a sucmd script as follows:

#! /bin/sh
$*
exit 0


then
chmod u+s sucmd
chown root sucmd

Running this script may be restricted on most UNIXs, you have to patch the kernel then to allow suid-root-scripts (which is more
or less simple, refer to your docs).
0
 
kellyjjCommented:
If you are running on SCO,  then you can make that command a 'asroot ' command.  Essentially what that means is that there is a list of commands that can be ran regardless of the user.

for example:
/usr/bin/asroot shutdown -g0 -y -i6

this will for use in scripts. It is how I do it for most of our clients.
0
 
elmisterAuthor Commented:
I Haven't asroot command
0
 
mliberiCommented:
Your problem is, more generally speaking:
"How may I run a shell script with super user authority?"

The problem is that, for security reasons, all unix operating systems (I think) do not allow SUID scripting.

I solved the problem by writing a shell script compiler that allows you to generate an executable starting from a shell script. It don't represent a security risk because the compiled code can't be easily viewed or changed, so you are sure that the user do only what your program does.

The method is simple:
1) create your shell script (e.g. xxx.sh)
2) compile it               (e.g. kcc xxx.sh)
   the compiler will produce the executable 'xxx'
3) change 'xxx' ownership   (e.g. chown root xxx)
4) set SUID bit             (e.g. chmod u+s xxx)

Any user that run 'xxx' program would become root for the time the process is running.
Avoid forking programs that allows starting a shell, it would be a root shell!

You can download kcx - the shell script compiler from the following URL:
http://www.geocities.com/SiliconValley/Horizon/5745/main.html

It has been compiled for AIX, SunOS, IRIX, Linux and Cygwin32
but could be easily compiled for any unix platform with an ANSI C compiler.

enjoy.
0

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now