Twitter RSS
| |

In functie de context se gasesc diferite situatii in care e necesara rularea unei comenzi cu credentialele unui utilizator diferit. Cel mai des se intampla cand lucram ca utilizator simplu si avem de rulat o comanda ca root. Pentru a rula comenzile exista doua variante. Prima ar fi sa schimbam utilizatorul curent ceea ce inseamna fie sa ne logam cu un alt utilizator fie sa folosim comanda “su“. A doua varianta e sa folosim comanda “sudo” care ne permite sa rulam o comanda cu credentialele altui utilizator fara a fi nevoit sa ne delogam sau sa ne logam cu un alt utilizator folosind “su“.

Prima varianta, cea in care ne autentificam ca utilizator diferit, foloseste comanda “su“. Apelam comanda urmata de numele de utilizator, introducem parola si daca parola e valida suntem lasati in shell-ul utilizatorului:

[sergiu@devel ~]# su root
Password:
[root@devel /home/sergiu]#

Dupa cum spuneam, exista si o alternativa si anume comanda “sudo” care in unele situatii este mai utila pentru ca poate fi configurata pentru a nu cere parola cand se incearca executarea unei comenzi. Pentru a configura comanda “sudo” folosim “visudo“, comanda care ne deschide fisierul de configurare. Daca dorim ca utilizatorul “devel” sa poata rula orice comanda sub un alt utilizator fara a i se cere parola adaugam urmatoarea linie:

devel        ALL=(ALL) NOPASSWD: ALL

Daca dorim sa oferim acces doar pe anumite comenzi inlocuim ultimul “ALL” cu lista de comenzi la care ii permitem accesul.

devel        ALL=(ALL) NOPASSWD: /sbin/mount /cdrom,/sbin/umount /cdrom

Acum, pentru a rula o comanda sub un alt user vom folosi:

[devel@devel ~]$ sudo -u root ls /etc

Comanda de mai sus va rula “ls /etc” avand credentialele utilizatorului “root“.

Exista situatii in care utilitarul “sudo” nu este instalat iar comanda “su” nu poate fi folosita. Un astfel de caz ar fi rularea de comenzi interactive avand credentialele unui utilizator fara shell functional. Pentru astfel de situatii putem folosi totusi comanda “su” pentru a lansa in executie un shell:

[devel@devel ~]$ su -m nobody -c /bin/tcsh
[nobody@devel ~]$

Folosind comanda de mai sus, chiar daca utilizatorul nobody nu are un shell asociat, am reusit sa deschid un shell avand credentialele nobody. Astfel de situatii sunt intalnite des in cazul serviciilor care ruleaza sub utilizatori restrictionati – nobody pentru serverul web, mailman pentru serverul de mail etc.

Popularity: unranked [?]

Ai intrebari?

Reclama
Categorii
Apache
Articole si tutoriale legate de serverul web Apache.
/articole-tutoriale-apache/

cPanel
Articole si tutoriale legate de utilizarea si administrarea sistemului de gestiune a serverelor de hosting, cPanel.
/articole-tutoriale-cpanel-whm/

DNS
Vezi toate articolele din categoria DNS
/dns-bind-domain-name-services/

Linux
Articole si tutoriale legate de Linux, sisteme BSD sau alte sisteme de operare din familia UNIX.
/articole-tutoriale-linux/

Mail
Vezi toate articolele din categoria Mail
/mail/

MySQL
Articole si tutoriale despre serverul de baze de date MySQL.
/articole-tutoriale-optimizare-mysql/

Perl
Vezi toate articolele din categoria Perl
/perl-practical-extraction-and-report-language/

PHP
Vezi toate articolele din categoria PHP
/php-language-hypertext-preprocessor/

Virtualizare
Articole si tutoriale despre virtualizare si sistemel virtuale create cu Xen sau OpenVZ.
/virtualizare-xen-openvz/

Webmin / Virtualmin
Articole si tutoriale legate de sistemul de gestiune gratuit Webmin sau modulul Virtualmin.
/webmin-virtualmin/





Newsletter
LAMP Recomandã
NetHelp
SRV.ro
ABCDomenii