Sponsored Content
Full Discussion: sudo using at failing.
Top Forums UNIX for Advanced & Expert Users sudo using at failing. Post 302324754 by mph on Thursday 11th of June 2009 04:05:56 PM
Old 06-11-2009
sudo using at failing.

Hi,

I'm hopin' ya can give me an idea or two here.

I'm writing a file transfer tracking program. Users login via FTP or https. These users have NO shell access. I'll get to that in a minute. When they upload or download a file, a script is invoked to log the transfer in a database, send an email to the appropriate people, and schedule the file for deletion. The files are owned by internal users. The scripts are spawned by external users, hence the need for sudo. Otherwise file permissions wouldn't allow deletion.

Here's the problem. When I schedule the file deletion it doesn't happen. If I delete the file immediately it works. Here's what I have:
Works:
Code:
# Delete file NOW
sudo /bin/rm -f "/$rootdir/$vendor/$outgoing/.$line"

Doesn't work:
Code:
# Schedule for deletion
echo "sudo /bin/rm -f \"/$rootdir/$vendor/$outgoing/.$line\"" | \
      sudo /usr/bin/at now + 2 minutes 2>/dev/null

The at parameters above are for testing. In reality the files would get deleted at midnight 2 days after download, or 30 days after upload. I've tried a hundred different variations on the at command.

Here's an example of the spooled at job:
Code:
#!/bin/sh
# atrun uid=0 gid=0
# mail     root 0
umask 22
HOME=/ftp/vendor1; export HOME
SHELL=/etc/ftponly; export SHELL
LOGNAME=root; export LOGNAME
USER=root; export USER
USERNAME=root; export USERNAME
PATH=/usr/bin:/bin; export PATH
SUDO_COMMAND=/usr/bin/at\ now\ +\ 2\ minutes; export SUDO_COMMAND
SUDO_USER=vendor1; export SUDO_USER
SUDO_UID=1010; export SUDO_UID
SUDO_GID=1000; export SUDO_GID
cd /usr/libexec/usermin/updown || {
         echo 'Execution directory inaccessible' >&2
         exit 1
}
${SHELL:-/bin/sh} << `(dd if=/dev/urandom count=200 bs=1 2>/dev/null|LC_ALL=C tr -d -c '[:alnum:]')`

sudo /bin/rm -f /ftp/vendor1/outgoing/file1.zip

Since the users don't have shell access... Could that be stopping the at job for working? What doesn't make sense to me is that it would work via a straight sudo, but not a queued instance.

Any ideas???

Thanks
 

9 More Discussions You Might Find Interesting

1. HP-UX

dd command failing

I am new to HP-UX. I have an 8GB drive that is my root drive, contained in a Volume Group. I would like to clone that drive to another drive, which is 18.4GB. The other drive is not in a volume group. I am using this simple command:# dd if=/dev/dsk/c0t6d0 of=/dev/dsk/c0t5d0The command... (4 Replies)
Discussion started by: emsecrist
4 Replies

2. Shell Programming and Scripting

ssh - rm failing

Hi, Please help me... I am creating a string of filenames with absolute path and deleting those files situated in the remote server using ssh .. but it doesnot work.. Can anyone help me... here is my code for FileName in ${myDire} do Tmp=`basename... (4 Replies)
Discussion started by: shihabvk
4 Replies

3. UNIX for Dummies Questions & Answers

Unable to use the Sudo command. "0509-130 Symbol resolution failed for sudo because:"

Hi! I'm very new to unix, so please keep that in mind with the level of language used if you choose to help :D Thanks! When attempting to use sudo on and AIX machine with oslevel 5.1.0.0, I get the following error: exec(): 0509-036 Cannot load program sudo because of the following errors:... (1 Reply)
Discussion started by: Chloe123
1 Replies

4. Cybersecurity

sudo /bin/sh or sudo su -

we are looking at changing the way we get root on our network. in our current system if an admin needs root access he just gets the root password and uses an su. some of our staff have decided that a sudo to "/bin/sh" will be easer. some of our staff think a sudo to "su -" will be better. I... (0 Replies)
Discussion started by: robsonde
0 Replies

5. AIX

sudo log and sudo auditing

Sudo In AIX, how to find out what commands have been run after a user sudo to another user? for example, user sam run 'sudo -u robert ksh' then run some commands, how can I (as root) find what commands have been run? sudo.log only contains sudo event, no activity logging. (3 Replies)
Discussion started by: jalite19
3 Replies

6. Shell Programming and Scripting

ps -ef failing sometimes

Hi Everyone, we have a shell script "DLP_recv.sh" that has below command which is supposed to return the number of active instances of itself, which means of there is no other instance then commad would return 1 (for the current instance). The problem is that it sometimes it returns 0 which is... (3 Replies)
Discussion started by: guycool
3 Replies

7. Shell Programming and Scripting

ssh foo.com sudo command - Prompts for sudo password as visible text. Help?

I am writing a BASH script to update a webserver and then restart Apache. It looks basically like this: #!/bin/bash rsync /path/on/local/machine/ foo.com:path/on/remote/machine/ ssh foo.com sudo /etc/init.d/apache2 reloadrsync and ssh don't prompt for a password, because I have DSA encryption... (9 Replies)
Discussion started by: fluoborate
9 Replies

8. Shell Programming and Scripting

sudo: sorry, you must have a tty to run sudo

Hi All, I running a unix command using sudo option inside shell script. Its working well. But in crontab the same command is not working and its throwing "sudo: sorry, you must have a tty to run sudo". I do not have root permission to add or change settings for my userid. I can not even ask... (9 Replies)
Discussion started by: Apple1221
9 Replies

9. Shell Programming and Scripting

sudo: sorry, you must have a tty to run sudo

Hi, Have a need to run the below command as a "karuser" from a java class which will is running as "root" user. When we are trying to run the below command from java code getting the below error. Command: sudo -u karuser -s /bin/bash /bank/karunix/bin/build_cycles.sh Error: sudo: sorry,... (8 Replies)
Discussion started by: Satyak
8 Replies
SU(1)								   User Commands							     SU(1)

NAME
su - run a command with substitute user and group ID SYNOPSIS
su [options...] [-] [user [args...]] DESCRIPTION
su allows to run commands with substitute user and group ID. When called without arguments su defaults to running an interactive shell as root. For backward compatibility su defaults to not change the current directory and to only set the environment variables HOME and SHELL (plus USER and LOGNAME if the target user is not root). It is recommended to always use the --login option (instead it's shortcut -) to avoid side effects caused by mixing environments. This version of su uses PAM for authentication, account and session management. Some configuration options found in other su implementa- tions such as e.g. support of a wheel group have to be configured via PAM. OPTIONS
-c command, --command=command Pass command to the shell with the -c option. --session-command=command Same as -c but do not create a new session (discouraged). -f, --fast Pass -f to the shell which may or may not be useful depending on the shell. -g, --group=group specify the primary group, this option is allowed for root user only -G, --supp-group=group specify a supplemental group, this option is allowed for root user only -, -l, --login Starts the shell as login shell with an environment similar to a real login: o clears all environment variables except for TERM o initializes the environment variables HOME, SHELL, USER, LOGNAME, PATH o changes to the target user's home directory o sets argv[0] of the shell to '-' in order to make the shell a login shell -m, -p, --preserve-environment Preserves the whole environment, ie does not set HOME, SHELL, USER nor LOGNAME. The option is ignored if the option --login is specified. -s SHELL, --shell=SHELL Runs the specified shell instead of the default. The shell to run is selected according to the following rules in order: o the shell specified with --shell o The shell specified in the environment variable SHELL if the --preserve-environment option is used. o the shell listed in the passwd entry of the target user o /bin/sh If the target user has a restricted shell (i.e. not listed in /etc/shells) the --shell option and the SHELL environment variables are ignored unless the calling user is root. --help Display help text and exit. --version Display version information and exit. CONFIG FILES
su reads the /etc/default/su and /etc/login.defs configuration files. The following configuration items are relevant for su(1): FAIL_DELAY (number) Delay in seconds in case of authentication failure. Number must be a non-negative integer. ENV_PATH (string) Defines the PATH environment variable for a regular user. The default value is /usr/local/bin:/bin:/usr/bin. ENV_ROOTPATH (string) ENV_SUPATH (string) Defines the PATH environment variable for root. The default value is /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin. ALWAYS_SET_PATH (boolean) If set to yes and --login and --preserve-environment were not specified su initializes PATH. EXIT STATUS
su normally returns the exit status of the command it executed. If the command was killed by a signal, su returns the number of the signal plus 128. Exit status generated by su itself: 1 Generic error before executing the requested command 126 The requested command could not be executed 127 The requested command could was not found FILES
/etc/pam.d/su default PAM configuration file /etc/pam.d/su-l PAM configuration file if --login is specified /etc/default/su command specific logindef config file /etc/login.defs global logindef config file SEE ALSO
runuser(8), pam(8), shells(5), login.defs(5) AUTHOR
Derived from coreutils' su which was based on an implementation from David MacKenzie. AVAILABILITY
The su command is part of the util-linux package and is available from Linux Kernel Archive <ftp://ftp.kernel.org/pub/linux/utils/util- linux/>. util-linux June 2012 SU(1)
All times are GMT -4. The time now is 06:39 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy