[Risolto] aggiungere un utente in sudoers

Ho bisogno di aggiungere il mio nome da utente comune nel file sudoers.
Per farlo ho eseguito:

# adduser piero admin

se verifico con:

id piero
uid=1000(piero) gid=1000(piero) gruppi=1000(piero),0(root)

sembra che ci sia riuscito, ma se vado a leggere nel file:

$ cat /etc/sudoers
## Sudoers allows particular users to run various commands as
## the root user, without needing the root password.
##
## Examples are provided at the bottom of the file for collections
## of related commands, which can then be delegated out to particular
## users or groups.
## 
## This file must be edited with the 'visudo' command.

## Host Aliases
## Groups of machines. You may prefer to use hostnames (perhaps using 
## wildcards for entire domains) or IP addresses instead.
# Host_Alias     FILESERVERS = fs1, fs2
# Host_Alias     MAILSERVERS = smtp, smtp2

## User Aliases
## These aren't often necessary, as you can use regular groups
## (ie, from files, LDAP, NIS, etc) in this file - just use %groupname 
## rather than USERALIAS
# User_Alias ADMINS = jsmith, mikem


## Command Aliases
## These are groups of related commands...

## Networking
# Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool

## Installation and management of software
# Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum

## Services
# Cmnd_Alias SERVICES = /sbin/service, /sbin/chkconfig

## Updating the locate database
# Cmnd_Alias LOCATE = /usr/bin/updatedb

## Storage
# Cmnd_Alias STORAGE = /sbin/fdisk, /sbin/sfdisk, /sbin/parted, /sbin/partprobe, /bin/mount, /bin/umount

## Delegating permissions
# Cmnd_Alias DELEGATING = /usr/sbin/visudo, /bin/chown, /bin/chmod, /bin/chgrp 

## Processes
# Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall

## Drivers
# Cmnd_Alias DRIVERS = /sbin/modprobe

# Defaults specification

#
# Refuse to run if unable to disable echo on the tty.
#
Defaults   !visiblepw

Defaults    env_reset
Defaults    env_keep =  "COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS"
Defaults    env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"
Defaults    env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"
Defaults    env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"
Defaults    env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"

Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin

## Next comes the main part: which users can run what software on 
## which machines (the sudoers file can be shared between multiple
## systems).
## Syntax:
##
## 	user	MACHINE=COMMANDS
##
## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere 
root	ALL=(ALL) 	ALL

## Allows members of the 'sys' group to run networking, software, 
## service management apps and more.
# %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS

## Allows people in group wheel to run all commands
%wheel	ALL=(ALL)	ALL

## Same thing without a password
# %wheel	ALL=(ALL)	NOPASSWD: ALL

## Allows members of the users group to mount and unmount the 
## cdrom as root
# %users  ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom

## Allows members of the users group to shutdown this system
# %users  localhost=/sbin/shutdown -h now

## Read drop-in files from /etc/sudoers.d (the # here does not mean a comment)
#includedir /etc/sudoers.d
[piero@localhost ~]$

l’utente piero non c’é ed infatti esguendo un comando come il seguente

$ sudo rm -rf /home/piero/mntpartbkp
piero non è nel file sudoers. Questo evento verrà segnalato.

non posso proseguire. Ciò non mi fa funzionare uno script che eseguo giornalmente e nel quale è inserito il suddetto comando “rm”

Non capisco.

Aggiungere sottoroot ALL=(ALL) ALLil tuo utente?

punico	ALL=(ALL) 	ALL

[quote=andreamal]Aggiungere sottoroot ALL=(ALL) ALLil tuo utente?

punico	ALL=(ALL) 	ALL

Invece, se vuoi aggiungere solo comandi specifici (nel miuo esempio, rm e rmdir), aggiungi la riga

punico ALL=/usr/bin/rm, /usr/bin/rmdir

N.B. Per modificare il file /etc/sudoers è bene usare il comando

# visudo

(Premere “i” per inserire altri caratteri, “:w”+INVIO per salvare, “:q”+INVIO per uscire e “q!”+INVIO per uscire senza salvare)

Finalmente ce l’ho fatta. Non ho risposto prima perché mi ero incespicato coi comandi di uscita da visudo. Ora li ho capiti.
Ho inserito nel mio nome utente le autorizzazioni necessarie solamente per fare funzionare lo script che avvio giornalmente:

piero   ALL=/usr/bin/rm, /usr/bin/mount, /usr/bin/umount

Intanto che prendevo confidenza col comando “visudo”, ho cercato una guida che illustrasse le modalità d’uso, compresi i comandi per uscire dal programma, ma quello che ho trovato non è completo, infatti i comandi d’uscita non sono preceduti da “:” e pertanto, usandoli come riporta la guida, non funzionano
A causa del malfunzionamento, per uscire da visudo ho chiuso la finestra del terminale. Ciò ha provocato la creazione di un file".sudoers.tmp.swm", la cui presenza mi veniva segnalata all’avvio di visudo. Sono stato così insistente che sono riuscito a crearne ben 4 (da .swm a .swp". Però, una volta che ho completato la modifica del file sudoers, li ho cancellati tutti.