03-13-2019
Quote:
Originally Posted by
Corona688
Why are you feeding a function which calls sudo, into sudo? And then you don't even use it, just call it outside sudo afterwards.
This is mostly an exercise in ways to run a script with root privileges without a user needing to open a terminal, navigate to a directory, and either call the script with
sudo or
su root from the terminal and then call the script. These are actions that are beyond the abilities of a sizable number of users who still may need to perform tasks like running a backup as root. I am trying to create a script that can be run by double clicking on a desktop icon, entering a password when prompted, and have the script do the rest with the privileges it needs. I don't have any problem running a script as root, but that is not the case for every user.
The method I used in the script above prompts the user for a password when sudo is invoked for the function call, but the password is not requested for any of the commands in the function. The password is required once at the beginning and not again. This is the behavior I am looking for. The sudo command still needs to be in the commands in the function, or you get errors. This doesn't make sense to me because the intent was to run the function in a subshell as root. It does, however, run without error and gives the expected output.
Quote:
Originally Posted by
Corona688
Further, you really shouldn't be editing /etc/sudoers like that. sudo on most systems will refuse to operate after /etc/sudoers has been edited by anything but visudo.
I have confirmed with
visudo that running the sudoers script does add the the correct line to the file. I don't notice any issues running sudo with other commands, but I need to dig a bit deeper to make sure that the backup script is actually running as root (directories like /Library are being copied) after making the sudoers edit the way I did above. I know that the script was running as root when I made the
$user_name ALL= NOPASSWD:/usr/bin/rsync entry to sudoers with visudo but I haven't checked it carefully with the other method. The edit of the sudoers list is important in order to be able to run a scheduled unattended backup as root.
LMHmedchem
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
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
2. High Performance Computing
I'm trying to compile Linpack on a Ubuntu cluster. I'm running MPI. I've modified the following values to fit my system TOPdir MPdir LAlib CC LINKER.
When compiling I get the following error: (the error is at the end, the other errors in between are because I've ran the script several times so... (0 Replies)
Discussion started by: JPJPJPJP
0 Replies
3. Shell Programming and Scripting
Hi ,
I am trying to :wall: my head while scripting ..I am really new to this stuff , never did it before :( .
how to find cpu's system high time and user time high in a script??
thanks , help would be appreciated !
:) (9 Replies)
Discussion started by: sushwey
9 Replies
4. Shell Programming and Scripting
This is probably a simple question, but I'm new with writing scripts for Linux (IPFire in this case) and Google wasn't helpful with this.
When creating a script, what is the best and/or proper way to have it exit automatically if the reboot or shutdown command is given? If that's even... (2 Replies)
Discussion started by: bartgrefte
2 Replies
5. UNIX for Beginners Questions & Answers
Hello everyone!
I'm developing a MacOs Application in python and I'm having some issues trying to find information related to the power button pressed event. I know that in Ubuntu 14.04 you can find information about it on the acpi folders, but I realized that here in Mac that process is... (0 Replies)
Discussion started by: xedge
0 Replies
6. OS X (Apple)
Some hackers found a security hole in macOS High Sierra and tweeted it to the world before telling Apple about the problem. You can see the details from PC Magazine's daily news here: Apple Releases Fix for MacOS High Sierra 'Root' Bug. The original story this morning was published before a patch... (6 Replies)
Discussion started by: Don Cragun
6 Replies
7. UNIX for Beginners Questions & Answers
the only way we can power off is if we actually press power button on server. Running on HP DL-G4. from root, when we issue command it just returns to root prompt. (1 Reply)
Discussion started by: amexboy
1 Replies
8. Shell Programming and Scripting
Hello,
I have the following script that just archives and clears some log files.
#!/bin/bash
# script: archive_logs_and_clear
# add date to logfile names and copy archive directory
# clear logs
# change to script directory
cd ... (4 Replies)
Discussion started by: LMHmedchem
4 Replies
9. Shell Programming and Scripting
Hello,
I am running a bash script to do an rsync back on a computer running MacOS High Sierra. This is the script I am using,
#!/bin/bash
# main backup location, trailing slash included
backup_loc="/Volumes/Archive_Volume/00_macos_backup/"
# generic backup function
function backup {... (12 Replies)
Discussion started by: LMHmedchem
12 Replies
10. OS X (Apple)
Mac Version 10.15.2 (macOS Catalina)
Does anyone know how to change the name of a connected bluetooth device from the command line on macOS?
I am having trouble with various bluetooth devices which I cannot get the "rename" option in the GUI to "save" properly and so I cannot rename a few... (0 Replies)
Discussion started by: Neo
0 Replies
LEARN ABOUT REDHAT
visudo
visudo(8) MAINTENANCE COMMANDS visudo(8)
NAME
visudo - edit the sudoers file
SYNOPSIS
visudo [ -c ] [ -f sudoers ] [ -q ] [ -s ] [ -V ]
DESCRIPTION
visudo edits the sudoers file in a safe fashion, analogous to vipw(8). visudo locks the sudoers file against multiple simultaneous edits,
provides basic sanity checks, and checks for parse errors. If the sudoers file is currently being edited you will receive a message to try
again later.
There is a hard-coded list of editors that visudo will use set at compile-time that may be overridden via the editor sudoers Default vari-
able. This list defaults to the path to vi(1) on your system, as determined by the configure script. Normally, visudo does not honor the
EDITOR or VISUAL environment variables unless they contain an editor in the aforementioned editors list. However, if visudo is configured
with the --with-enveditor flag or the enveditor Default variable is set in sudoers, visudo will use any the editor defines by EDITOR or
VISUAL. Note that this can be a security hole since it allows the user to execute any program they wish simply by setting EDITOR or VIS-
UAL.
visudo parses the sudoers file after the edit and will not save the changes if there is a syntax error. Upon finding an error, visudo will
print a message stating the line number(s) where the error occurred and the user will receive the "What now?" prompt. At this point the
user may enter "e" to re-edit the sudoers file, "x" to exit without saving the changes, or "Q" to quit and save changes. The "Q" option
should be used with extreme care because if visudo believes there to be a parse error, so will sudo and no one will be able to sudo again
until the error is fixed. If "e" is typed to edit the sudoers file after a parse error has been detected, the cursor will be placed on
the line where the error occurred (if the editor supports this feature).
OPTIONS
visudo accepts the following command line options:
-c Enable check-only mode. The existing sudoers file will be checked for syntax and a message will be printed to the standard output
detailing the status of sudoers. If the syntax check completes successfully, visudo will exit with a value of 0. If a syntax error is
encountered, visudo will exit with a value of 1.
-f Specify and alternate sudoers file location. With this option visudo will edit (or check) the sudoers file of your choice, instead of
the default, @sysconfdir@/sudoers. The lock file used is the specified sudoers file with ".tmp" appended to it.
-q Enable quiet mode. In this mode details about syntax errors are not printed. This option is only useful when combined with the -c
flag.
-s Enable strict checking of the sudoers file. If an alias is used before it is defined, visudo will consider this a parse error. Note
that it is not possible to differentiate between an alias and a hostname or username that consists solely of uppercase letters, digits,
and the underscore ('_') character.
-V The -V (version) option causes visudo to print its version number and exit.
ERRORS
sudoers file busy, try again later.
Someone else is currently editing the sudoers file.
/etc/sudoers.tmp: Permission denied
You didn't run visudo as root.
Can't find you in the passwd database
Your userid does not appear in the system passwd file.
Warning: undeclared Alias referenced near ...
Either you are using a {User,Runas,Host,Cmnd}_Alias before defining it or you have a user or hostname listed that consists solely of
uppercase letters, digits, and the underscore ('_') character. If the latter, you can ignore the warnings (sudo will not complain).
In -s (strict) mode these are errors, not warnings.
ENVIRONMENT
The following environment variables are used only if visudo was configured with the --with-env-editor option:
EDITOR Invoked by visudo as the editor to use
VISUAL Used Invoked visudo if EDITOR is not set
FILES
/etc/sudoers List of who can run what
/etc/sudoers.tmp Lock file for visudo
AUTHOR
Many people have worked on sudo over the years; this version of visudo was written by:
Todd Miller <Todd.Miller@courtesan.com>
See the HISTORY file in the sudo distribution or visit http://www.sudo.ws/sudo/history.html for more details.
BUGS
If you feel you have found a bug in sudo, please submit a bug report at http://www.sudo.ws/sudo/bugs/
DISCLAIMER
Visudo is provided ``AS IS'' and any express or implied warranties, including, but not limited to, the implied warranties of merchantabil-
ity and fitness for a particular purpose are disclaimed. See the LICENSE file distributed with sudo for complete details.
CAVEATS
There is no easy way to prevent a user from gaining a root shell if the editor used by visudo allows shell escapes.
SEE ALSO
vi(1), sudo(8), vipw(8).
3rd Berkeley Distribution 1.6.6 visudo(8)