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 DEBIAN
visudo
VISUDO(8) MAINTENANCE COMMANDS VISUDO(8)
NAME
visudo - edit the sudoers file
SYNOPSIS
visudo [-chqsV] [-f sudoers]
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 one or more editors that visudo will use set at compile-time that may be overridden via the editor sudoers
Default variable. This list defaults to "/usr/bin/vi". Normally, visudo does not honor the VISUAL or EDITOR environment variables unless
they contain an editor in the aforementioned editors list. However, if visudo is configured with the --with-env-editor option or the
env_editor Default variable is set in sudoers, visudo will use any the editor defines by VISUAL or EDITOR. Note that this can be a
security hole since it allows the user to execute any program they wish simply by setting VISUAL or EDITOR.
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 errors, owner and mode. A message will be
printed to the standard output describing the status of sudoers unless the -q option was specified. If the check completes
successfully, visudo will exit with a value of 0. If an error is encountered, visudo will exit with a value of 1.
-f sudoers Specify and alternate sudoers file location. With this option visudo will edit (or check) the sudoers file of your choice,
instead of the default, /etc/sudoers. The lock file used is the specified sudoers file with ".tmp" appended to it. In check-
only mode only, the argument to -f may be "-", indicating that sudoers will be read from the standard input.
-h The -h (help) option causes visudo to print a short help message to the standard output and exit.
-q Enable quiet mode. In this mode details about syntax errors are not printed. This option is only useful when combined with
the -c option.
-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 host name or user name 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.
ENVIRONMENT
The following environment variables may be consulted depending on the value of the editor and env_editor sudoers variables:
VISUAL Invoked by visudo as the editor to use
EDITOR Used by visudo if VISUAL is not set
FILES
/etc/sudoers List of who can run what
/etc/sudoers.tmp Lock file for visudo
DIAGNOSTICS
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: {User,Runas,Host,Cmnd}_Alias referenced but not defined
Either you are trying to use an undeclare {User,Runas,Host,Cmnd}_Alias or you have a user or host name listed that consists solely of
uppercase letters, digits, and the underscore ('_') character. In the latter case, you can ignore the warnings (sudo will not
complain). In -s (strict) mode these are errors, not warnings.
Warning: unused {User,Runas,Host,Cmnd}_Alias
The specified {User,Runas,Host,Cmnd}_Alias was defined but never used. You may wish to comment out or remove the unused alias. In -s
(strict) mode this is an error, not a warning.
Warning: cycle in {User,Runas,Host,Cmnd}_Alias
The specified {User,Runas,Host,Cmnd}_Alias includes a reference to itself, either directly or through an alias it includes. This is
only a warning by default as sudo will ignore cycles when parsing the sudoers file.
SEE ALSO
vi(1), sudoers(5), sudo(8), vipw(8)
AUTHOR
Many people have worked on sudo over the years; this version of visudo was written by:
Todd Miller
See the CONTRIBUTORS file in the sudo distribution (http://www.sudo.ws/sudo/contributors.html) for a list of people who have contributed to
sudo.
CAVEATS
There is no easy way to prevent a user from gaining a root shell if the editor used by visudo allows shell escapes.
BUGS
If you feel you have found a bug in visudo, please submit a bug report at http://www.sudo.ws/sudo/bugs/
SUPPORT
Limited free support is available via the sudo-users mailing list, see http://www.sudo.ws/mailman/listinfo/sudo-users to subscribe or
search the archives.
DISCLAIMER
visudo is provided ``AS IS'' and any express or implied warranties, including, but not limited to, the implied warranties of
merchantability and fitness for a particular purpose are disclaimed. See the LICENSE file distributed with sudo or
http://www.sudo.ws/sudo/license.html for complete details.
1.8.5 March 14, 2012 VISUDO(8)