01-09-2012
Running Scripts With Parameters with sudo
Hello everyone,
I'm new to the community so please bear with me if my terminology is not correct...
I'm trying to configure /etc/sudoers so a specific user can run a script as root.
My problem is I want to lock down what parameters the user can run the script against. The script in question accepts another file as its parameter
e.g. /scripts/myscript.ksh /root/config-files/fileA.cfg
I want userA to be able to run the above script as root but only run it using a specific file/parameter.
e.g. $ sudo '/scripts/myscript.ksh <parameter_1>'
Is this possible? Everything i've tried thus far I get syntax errors in the sudoers file.
I've managed to find a workaround which is using a wrapper script that specifies the scirpt and parameter in question.
This is not ideal though as I will need to create a wrapper script for every possible parameter.
Infact i'd like to go one step further. Ideally, i'd like sudoers to only allow userA to run this script with files/parameters that are located within /root/config-files/*
Just allowing the user to run the script and use any config file would be a security hole. i.e. user could create config file in /tmp then execute script with that file to cause damage.
Any help/advice would be much appreciated.
thanks
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi,
I have a first shell script (/bin/sh) that receives some paremeters. This is only an example (there are more parameters in fact and this one is among them):
-header "This is a test"
This script calls a secund shell script (/bin/sh) with the same parameters. But, quotes disappear as I would... (0 Replies)
Discussion started by: velo_love
0 Replies
2. Shell Programming and Scripting
hi,
I have a script abc in a machine xyz. which i can access by sudo su - user. that is i can login to xyz using my id and then switch to user and run the script.
Now what i need to do is run the script from another script in machine xyz1. From xyz1 i can ssh to xyz using my id. Some one... (1 Reply)
Discussion started by: rvz
1 Replies
3. Shell Programming and Scripting
Hi all,
I have set up a cron job which calls another shell script shell script which in turn calls a Java process. The cron tab looks so.
0,30 7-18 * * 1-5 /u01/home/weblogic/brp/bin/checkstatus.sh >> /u01/home/weblogic/logs/checkstatus.log
The checkstatus.sh scripts looks like this.
... (4 Replies)
Discussion started by: sirbrian
4 Replies
4. Solaris
Hi,
I am logging into sun solaris unix box as asood user.Then sudo su_appssu
and scheduled my cron jobs.The user appssu is there In the /etc/cron.d/cron.allow . I do not understand why the jobs are not kicking by cron. Do I need to enter directly as appssu ?
Regards
Megh (10 Replies)
Discussion started by: megh
10 Replies
5. UNIX for Dummies Questions & Answers
I am learning how to write shell scripts and have come across an issue. I'm trying to write a script that looks for a directory called public_html, and if it finds one, to print the number of lines that contain applet tags (containing '<applet') in all files that end in either .html or .htm that... (7 Replies)
Discussion started by: feverdream
7 Replies
6. Shell Programming and Scripting
I use csh a lot but I don't really write csh scripts. Now I have a need to implement a security check (written in perl; verify an user input security code) into a csh script. Here is the senario:
#csh
1. call the perl script
2. if the perl script returns 'true', pass on;
if the perl... (1 Reply)
Discussion started by: Julian16
1 Replies
7. Shell Programming and Scripting
hello; Got a problem running monitoring scripts using sudo ssh.. Mgmt decided to take away root sudoers access.. so most of the scripts ran as:
sudo ssh $BOX ...
Now I need to run them as:
echo $my_pw | sudo -S -l my_user_id $BOX ...
I tried this but not working..
Any wisdom/tricks... (3 Replies)
Discussion started by: delphys
3 Replies
8. Shell Programming and Scripting
I have to write a shell script in my current linux server and I have to connect to a different server then do sudo login and finally run some scripts residing in a particular directory and get results back. I am starting to write my shell script as below but after I do ssh login it prompts for... (2 Replies)
Discussion started by: Devesh5683
2 Replies
9. UNIX for Dummies Questions & Answers
I am trying to run a command. This is one of my attempts:
for i in fileservera; do ssh -t $i 'sudo ls /';doneThis works, and I see the directories. However, what I want to do now is start a process on the remote server such as /usr/bin/connectproc -standalonesudo /usr/bin/connectproc... (1 Reply)
Discussion started by: newbie2010
1 Replies
10. Shell Programming and Scripting
I have 2 scripts. test.sh, which calls submit2.sh. One of the parameters contains space and is quoted.
((((./submit2.sh Group_1_2_AMS_DAILY_CORE_GRP03 AMS AMS_D 'DAILY REPORT PROCEDURES'; echo $?>&3) | tee 1.log >&4)3>&1) | (read xs; exit $xs)) 4>&1
echo parm 1 = $1
echo parm 2 = $2... (1 Reply)
Discussion started by: andyclam
1 Replies
LEARN ABOUT CENTOS
sssd-sudo
SSSD-SUDO(5) File Formats and Conventions SSSD-SUDO(5)
NAME
sssd-sudo - Configuring sudo with the SSSD back end
DESCRIPTION
This manual page describes how to configure sudo(8) to work with sssd(8) and how SSSD caches sudo rules.
CONFIGURING SUDO TO COOPERATE WITH SSSD
To enable SSSD as a source for sudo rules, add sss to the sudoers entry in nsswitch.conf(5).
For example, to configure sudo to first lookup rules in the standard sudoers(5) file (which should contain rules that apply to local users)
and then in SSSD, the nsswitch.conf file should contain the following line:
sudoers: files sss
More information about configuring the sudoers search order from the nsswitch.conf file as well as information about the LDAP schema that
is used to store sudo rules in the directory can be found in sudoers.ldap(5).
Note: in order to use netgroups or IPA hostgroups in sudo rules, you also need to correctly set nisdomainname(1) to your NIS domain name
(which equals to IPA domain name when using hostgroups).
CONFIGURING SSSD TO FETCH SUDO RULES
All configuration that is needed on SSSD side is to extend the list of services with "sudo" in [sssd] section of sssd.conf(5). To speed up
the LDAP lookups, you can also set search base for sudo rules using ldap_sudo_search_base option.
The following example shows how to configure SSSD to download sudo rules from an LDAP server.
[sssd]
config_file_version = 2
services = nss, pam, sudo
domains = EXAMPLE
[domain/EXAMPLE]
id_provider = ldap
sudo_provider = ldap
ldap_uri = ldap://example.com
ldap_sudo_search_base = ou=sudoers,dc=example,dc=com
When the SSSD is configured to use IPA as the ID provider, the sudo provider is automatically enabled. The sudo search base is configured
to use the compat tree (ou=sudoers,$DC).
THE SUDO RULE CACHING MECHANISM
The biggest challenge, when developing sudo support in SSSD, was to ensure that running sudo with SSSD as the data source provides the same
user experience and is as fast as sudo but keeps providing the most current set of rules as possible. To satisfy these requirements, SSSD
uses three kinds of updates. They are referred to as full refresh, smart refresh and rules refresh.
The smart refresh periodically downloads rules that are new or were modified after the last update. Its primary goal is to keep the
database growing by fetching only small increments that do not generate large amounts of network traffic.
The full refresh simply deletes all sudo rules stored in the cache and replaces them with all rules that are stored on the server. This is
used to keep the cache consistent by removing every rule which was deleted from the server. However, full refresh may produce a lot of
traffic and thus it should be run only occasionally depending on the size and stability of the sudo rules.
The rules refresh ensures that we do not grant the user more permission than defined. It is triggered each time the user runs sudo. Rules
refresh will find all rules that apply to this user, check their expiration time and redownload them if expired. In the case that any of
these rules are missing on the server, the SSSD will do an out of band full refresh because more rules (that apply to other users) may have
been deleted.
If enabled, SSSD will store only rules that can be applied to this machine. This means rules that contain one of the following values in
sudoHost attribute:
o keyword ALL
o wildcard
o netgroup (in the form "+netgroup")
o hostname or fully qualified domain name of this machine
o one of the IP addresses of this machine
o one of the IP addresses of the network (in the form "address/mask")
There are many configuration options that can be used to adjust the behavior. Please refer to "ldap_sudo_*" in sssd-ldap(5) and "sudo_*" in
sssd.conf(5).
SEE ALSO
sssd(8), sssd.conf(5), sssd-ldap(5), sssd-krb5(5), sssd-simple(5), sssd-ipa(5), sssd-ad(5), sssd-sudo(5),sss_cache(8), sss_debuglevel(8),
sss_groupadd(8), sss_groupdel(8), sss_groupshow(8), sss_groupmod(8), sss_useradd(8), sss_userdel(8), sss_usermod(8), sss_obfuscate(8),
sss_seed(8), sssd_krb5_locator_plugin(8), sss_ssh_authorizedkeys(8), sss_ssh_knownhostsproxy(8),pam_sss(8).
AUTHORS
The SSSD upstream - http://fedorahosted.org/sssd
SSSD
06/17/2014 SSSD-SUDO(5)