Koja je razlika između sudo i su. Dobijanje administratorskih prava

03.05.2023

Naredba sudo je vrlo važna za upravljanje pravima pristupa u operacijskoj sali. Linux sistem. Zahvaljujući ovoj maloj komandi, drugim korisnicima možete dati dozvole za obavljanje određenih radnji u ime administratora, a da im ne date samu lozinku superkorisnika. Također, ne morate uvijek biti pod nalogom superkorisnika da biste povremeno obavljali administrativne radnje.

Čini se da je tako mali tim, sa minimumom mogućnosti i najjednostavnijom mogućom upotrebom, a zapravo može mnogo više. U ovom članku ćemo pogledati kako je sudo konfiguriran u Linuxu za kontrolu pristupa sistemskim funkcijama i korisničkim mogućnostima.

Prije nego što pređemo na podešavanje pristupa sudo uslužnom programu, pogledajmo kako on funkcionira. Postoje dva načina da dobijete administratorska prava u Linuxu. Možete se prebaciti na root korisnika pomoću naredbe su ili možete proslijediti parametar prava komanda sudo uslužni program, koji će ga izvršiti s administratorskim pravima. Štaviše, druga metoda je poželjnija, jer nećete zaboraviti šta koristite i nećete učiniti ništa nepotrebno.

Ime tima znači zamjenski korisnik do ili super korisnik radi. Uslužni program vam omogućava da pokrenete programe kao drugi korisnik, ali najčešće kao root korisnik. Uslužni program su razvili još 1980. godine Bob Cogshell i Cliff Spencer. Tokom ovog vremena, mnogi programeri su se promijenili i dodane su mnoge funkcije.

sudo radi zahvaljujući SUID pristupnoj zastavici. Ako je ova zastavica postavljena za program, onda se ne izvršava u ime korisnika koji ga je pokrenuo, već u ime vlasnika, s obzirom da datoteka pripada sudo, tada se uslužni program izvršava iz root ime. Zatim čita svoja podešavanja, traži korisničku lozinku i odlučuje da li se korisniku može dozvoliti da izvodi komande kao administrator. Ako je odgovor da, onda se naredba proslijeđena u parametru izvršava.

Sada kada znate teoriju, pogledajmo kako postaviti sudo na Linux.

Postavljanje sudo na Linux

Sve sudo postavke se nalaze u datoteci /etc/sudores. Ovdje možete konfigurirati puno parametara, počevši od toga kome će biti dozvoljeno da izvršava komande u ime superkorisnika i završavajući ograničavanjem skupa dostupnih komandi.

Da otvorite datoteku za uređivanje, upišite sljedeću naredbu kao superkorisnik:

Također možete odrediti uređivač teksta gdje želite urediti konfiguracijski fajl:

EDITOR=nano visudo

Zatim ćemo pogledati najzanimljivije postavke koje možete postaviti u ovoj datoteci. Ali prvo, pogledajmo osnovnu sintaksu datoteke. Sastoji se od dvije vrste stringova, to su aliasi koji vam omogućavaju da kreirate liste korisnika i zastavica, kao i sama pravila koja određuju kako će se sudo naredba ponašati. Sintaksa alijasa izgleda ovako:

ukucajte alias_name = element1, element2, element3

Tip specificira koji tip Alice treba kreirati, ime je ime koje će se koristiti, a lista elemenata specificira elemente koji će se podrazumijevati kada se poziva na ovo ime.

Opis korisničkih dozvola ima malo drugačiju sintaksu:

korisnički host = (drugi_korisnik:grupa) timovi

Korisnik specificira korisnika ili grupu za koju kreiramo pravilo, host je kompjuter za koji će se ovo pravilo primjenjivati. Drugi korisnik - pod krinkom kojeg korisnika prvi može izvršavati komande, a zadnji može izvršavati dozvoljene komande. Umjesto bilo kojeg od parametara može se koristiti pseudonim. A sada postavljanje sudo u Debian i druge distribucije.

Osnovni parametri

Alias ​​Defaults vam omogućava da navedete standardni parametri da bi uslužni program funkcionisao, razmotrićemo ih u ovom odeljku. Takav alias počinje riječju Defaults, nakon čega slijedi naziv zastave. Ako se ispred imena nalazi simbol, to znači da zastavicu treba uključiti u suprotnom, isključite je:

Onemogućite uvod kada ga prvi put koristite:

Defaults!lecture

Superkorisnik ne može učiniti sudo:

Zadano !root_sudo

Sada ako pokušate pokrenuti sudo sudo ništa neće raditi:

Promijenite početni direktorij za ciljnog korisnika, ostavljajući folder trenutnog korisnika kao početni direktorij prema zadanim postavkama:

Zadane postavke set_home

Sačuvajte listu grupa trenutnog korisnika:

Zadane postavke !preserve_groups

Zatražite lozinku superkorisnika umjesto korisničke lozinke:

Postavite broj pokušaja lozinke prije nego što se sudo zatvori, zadana vrijednost je 3:

Zadane postavke passwd_tries=5

Broj minuta koji će proći prije nego što sudo ponovo zatraži lozinku je 5 prema zadanim postavkama. Ako postavite vrijednost na 0, uvijek će tražiti lozinku, bez obzira koliko ste dugo koristili uslužni program:

Zadana vrijednost timestamp_timeout=10

Sljedeći parametar specificira broj minuta u kojima će sudo čekati da se lozinka ponovo unese ako je unesena pogrešno:

Zadano passwd_timeout=10

Možete promijeniti poruku koja se prikazuje kada se od vas zatraži lozinka:

Defaults passprompt="Vaša lozinka:"

Za ovu upotrebu možete odrediti drugog korisnika, a ne root, od kojeg će se izvršavati sve naredbe:

Zadane postavke runas_default="korisnik"

Možete prijaviti sve pokušaje povezivanja na sudo:

Zadano logfile=/var/log/sudo

Zatim pokušavamo provjeriti rad dnevnika:

sudo cat /var/log/sudo

Ovo su sve najzanimljivije sudo postavke koje vam mogu zatrebati, a zatim ćemo pogledati kako postaviti sudo prava pristupa za korisnike.

Postavljanje sudo korisnika

Već smo raspravljali o sintaksi za podešavanje radnji za korisnike ovdje je sve složenije nego kod pseudonima, ali to možete shvatiti. Na primjer, dozvolimo bilo kojem korisniku da koristi sudo, s bilo kojeg hosta, i da izvrši bilo koju naredbu:

SVE SVE = (SVE) SVE

Takav tim je vrlo nesiguran, dozvoljava svima i svemu. Prvo SVE omogućava svim korisnicima, drugo SVE je za sve hostove, treće SVE dozvoljava prijavu kao bilo koji korisnik, a četvrto dozvoljava izvršavanje bilo koje komande. Ali druga konstrukcija se koristi mnogo češće:

%točak SVE = (SVE) SVE

Znači isto kao i prethodni, samo što ovdje ne dozvoljavamo svim korisnicima da koriste sudo, već samo onima koji su članovi grupe kotača.

%wheel ALL = (root) SVE

Ovdje smo već ograničili mogući izbor korisnika samo na root korisnika. Također možete odrediti korisničku grupu u ime koje on može izvršavati naredbe:

%wheel SVE = (root:admins) SVE

To znači da naredbu možete pokrenuti kao root ili drugi korisnik iz grupe administratora. Također možemo odrediti naredbe koje korisnik može izvršiti. na primjer:

%wheel ALL = (root) /bin/mount, /bin/umount

Korisnik može pokrenuti naredbe mount i umount samo kao superkorisnik. Sada da to učinimo još zanimljivijim, korisnik može izvršiti mount i umount bez lozinke, a sve ostale naredbe sa lozinkom:

%wheel ALL = (root) SVE
%wheel ALL = (root) NOPASSWD: /bin/mount, /bin/umount

Također možete ograničiti korisnike po hostu, na primjer, dozvoljavamo korištenje sudo samo sa host1:

%wheel host1 = (root) SVE

Ostaje razmotriti kako koristiti pseudonime. Aliasi mogu biti sljedećih tipova:

  • User_Alias- alias korisnika koji će koristiti sudo;
  • Runas_Alias- alias korisnika u čije ime će se izvršavati komande;
  • Host_Alias- alias hosta;
  • Cmnd_Alias- pseudonim komande;

Na primjer, napravimo četiri pseudonima i koristimo ih u našem pravilu:

User_Alias ​​Korisnici = korisnik1,user2,user3
Runas_Alias ​​Admins = root,admin
Host_Alias ​​Hosts = host1,host2
Cmd_Alias ​​Cmds = /bin/mount,/bin/umount

Korisnici Hostovi = (Administratori) Cmds

To znači da će korisnici sa liste korisnika moći da izvrše Cmds komande u ime Amdins korisnika na hostovima.

Ostalo je još nekoliko riječi za reći o zastavama. Oznaka NOPASSWD vam govori da ne tražite lozinku prilikom izvršavanja ovog pravila. Na primjer, da biste omogućili svim korisnicima da pokrenu naredbu mount sa sudo bez lozinke:

SVE SVE = (root) NOPASSWD: /bin/mount

Također možete spriječiti da se ova određena naredba uopće izvrši koristeći NOEXEC zastavu:

SVE SVE = (root) NOEXEC /bin/mount

Možete provjeriti da li je datoteka /etc/sudores ispravno konfigurirana i vidjeti sva kreirana pravila koristeći naredbu:

Ovdje su prikazane sve instalirane zastavice i postavke, kao i dozvole ovog korisnika.

Zaključci

U ovom članku smo pogledali kako konfigurirati sudo u Linuxu. Kao što vidite, uprkos činjenici da je ovo vrlo jednostavan uslužni program, on skriva mnogo korisnih postavki koje možete koristiti na svom sistemu. Ako imate pitanja, pitajte u komentarima!

Malo o samom sudou, sa Wikipedije. sudo(engleski) superuser do , doslovno „nastupiti u ime superuser") je program dizajniran da pomogne sistem administrator i omogućava vam da delegirate određene privilegovane resurse korisnicima uz održavanje dnevnika rada. Osnovna ideja je da se korisnicima da što manje prava, ali istovremeno tačno onoliko koliko je potrebno za rješavanje postavljenih zadataka.

Naredba sudo omogućava korisnicima da pokreću naredbe kao root ili drugi korisnici. Pravila koja sudo koristi da odluči da li da odobri pristup nalaze se u datoteci /etc/sudoers; Jezik njihovog pisanja i primjeri upotrebe su detaljno opisani u sudoers(5).

Da biste uredili /etc/sudoers datoteku, trebali biste koristiti program visudo, koji provjerava sintaksu i na taj način izbjegava greške u pravilima.

U većini slučajeva, pravilna konfiguracija sudoa čini pokretanje kao superkorisnik nepotrebnim.

Podrazumevano, root nalog u Ubuntu-u je onemogućen i root jednostavno nema lozinku. Svi administrativni zadaci se izvode putem sudo. Podrazumevano, pravo na izvršavanje sudo je dodijeljeno prvom korisniku kreiranom tokom instalacije. Svi ostali su standardni korisnici.

Sudo je vrlo fleksibilan alat koji vam omogućava da konfigurirate prava za obavljanje administrativnih radnji za svakog korisnika posebno. Na primer, dozvolite jednom da ponovo pokrene server, a drugom dajte mogućnost da promeni prava pristupa datotekama i fasciklama. Otvorite datoteku /etc/sudoers. To se može učiniti bilo izdavanjem naredbe za otvaranje datoteke u vašem omiljenom uređivaču teksta, na primjer ovako:

# nano /etc/sudoers

ili pomoću uslužnog programa visudo:
# visudo

Potonji metod će otvoriti datoteku /etc/sudoers u korisničkom zadanom uređivaču, ili ako nije naveden, onda u vi editoru. Prednost ovu metodu je da će prilikom spremanja datoteke biti provjerena usklađenost sa sintaksom.

Najjednostavnija konfiguracija izgleda ovako:

Zadane postavke env_reset

#Specifikacija privilegije korisnika
root SVE=(SVE) SVE
korisnik SVE=(SVE) SVE

Ova konfiguracija daje korisniku sva prava root korisnika kada izvodi naredbu sudo. Zadane postavke env_reset potpuno onemogućava sve korisničke varijable prilikom izvršavanja naredbi kao root. Ovo je dobro sa sigurnosne tačke gledišta, ali ponekad stvara probleme. Možete dozvoliti korištenje privatnih varijabli od strane grupe ili pojedinca dodavanjem ove linije:
Zadano:%admin !env_reset

koji će sačuvati varijable okruženja za sve korisnike admin grupe, ili:
Zadano: korisnik env_keep=TZ

koji će sačuvati TZ varijablu za korisnika korisnika.

Ako serverom upravlja grupa ljudi, onda ima smisla učiniti ovo:
%admin SVE=(SVE) SVE

Kao što možete pretpostaviti, ovaj unos daje root pristup svim članovima admin grupe.

Možete konfigurirati svakog određenog korisnika da ima pristup samo određenim naredbama. na primjer:
korisnik SVE = /bin/mount, /bin/kill

će dati korisniku prava da izvrši mount i kill komande sa bilo koje mašine, i:
user2 mydebiancomp = /sbin/modprobe

će korisniku2 dati dozvole za pokretanje modprobe iz mydebiancomp. Mislim da je sintaksa jasna:
korisnički host = komanda

gdje je naredba napisana sa punom putanjom. Za grupu je sve slično, samo je dodat znak “%”.

III.Napredne sudo postavke.

Vrlo je zgodno kreirati grupu aliasa prilikom postavljanja sudoa. Kako bismo izbjegli stalno ponavljanje naredbi, korisnika i hostova, možemo ih grupirati u grupe i postaviti pravila za svaku grupu alijasa. Na primjer ovako:

Cmnd_Alias ​​command_alias = command1, command2, ... // pseudonim komandi
Host_Alias ​​host_alias = hostname1, hostname2, ... // aliasi hosta
User_Alias ​​user_alias = korisnik1, korisnik2, ... // korisnički pseudonim

Moguće je i izvršavanje naredbe u ime drugog korisnika. Na primjer, sa ovim unosom:
korisnik SVE = (korisnik2, korisnik3) /usr/bin/ark

korisnik korisnik može pokrenuti naredbu ark kao user2 ili user3, koristeći tipku u, ovako:
$ sudo -u user2 ark

Podrazumevano, sudo pamti lozinke 5 minuta. Ako to ne želite, onda za svakog korisnika, grupu ili pseudonim možete postaviti zasebno pravilo, na primjer kada:
Zadano: korisnička timestamp_timeout=0

Korisnička lozinka se uopće neće pamtiti, ali ako:
Zadano: korisnička timestamp_timeout=-1

ostat će zapamćen za cijelo vrijeme rada.

Sudo bez lozinki je također moguć. Za ovo postoji sličan dizajn:
korisnik myubuntucomp = NOPASSWD: /bin/kill

što će omogućiti korisniku sa hosta myubuntucomp da koristi kill bez traženja lozinke. Umetnite vlastite vrijednosti, kao što su SVE umjesto imena hosta i naredbe, tako da korisnik nikada ne može unijeti lozinku za izvršavanje naredbi kao root s bilo kojeg hosta, ali zapamtite da to čini sistem vrlo ranjivim.

Guard

Blogovi, blogovi, blogovi. Maxim Fuckin zna mnogo o ovome.

Interaktivna karta grada Orenburga. Izrađeno korištenjem tehnologije Google mape koristeći naše vlastite razvoje. Resurs je mlad, ali već prilično zanimljiv i koristan.

Naredba sudo je vrlo važna za upravljanje pravima pristupa operativni sistem Linux. Zahvaljujući ovoj maloj komandi, drugim korisnicima možete dati dozvole za obavljanje određenih radnji u ime administratora, a da im ne date samu lozinku superkorisnika. Također, ne morate uvijek biti pod nalogom superkorisnika da biste povremeno obavljali administrativne radnje.
Čini se da je tako mali tim, sa minimumom mogućnosti i najjednostavnijom mogućom upotrebom, a zapravo može mnogo više. U ovom članku ćemo pogledati kako je sudo konfiguriran u Linuxu za kontrolu pristupa sistemskim funkcijama i korisničkim mogućnostima.

Kako radi sudo?

Prije nego što pređemo na podešavanje pristupa sudo uslužnom programu, pogledajmo kako on funkcionira. Postoje dva načina da dobijete administratorska prava u Linuxu. Možete se prebaciti na root korisnika pomoću naredbe su, ili možete proslijediti željenu naredbu kao parametar sudo uslužnom programu, koji će je izvršiti s administratorskim pravima. Štoviše, druga metoda je poželjnija, jer nećete zaboraviti da koristite root prava i nećete učiniti ništa nepotrebno.
Ime tima znači zamjenski korisnik do ili super korisnik radi. Uslužni program vam omogućava da pokrenete programe kao drugi korisnik, ali najčešće kao root korisnik. Uslužni program su razvili još 1980. godine Bob Cogshell i Cliff Spencer. Tokom ovog vremena, mnogi programeri su se promijenili i dodane su mnoge funkcije.
sudo radi zahvaljujući SUID pristupnoj zastavici. Ako je ova zastavica postavljena za program, onda se ne izvršava u ime korisnika koji ga je pokrenuo, već u ime vlasnika, s obzirom da je datoteka u vlasništvu sudo, tada se uslužni program izvršava kao root. Zatim čita svoja podešavanja, traži korisničku lozinku i odlučuje da li se korisniku može dozvoliti da izvodi komande kao administrator. Ako je odgovor da, onda se naredba proslijeđena u parametru izvršava.
Sada kada znate teoriju, pogledajmo kako postaviti sudo na Linux.

Postavljanje sudo na Linux

Sve sudo postavke se nalaze u datoteci /etc/sudores. Ovdje možete konfigurirati puno parametara, počevši od toga kome će biti dozvoljeno da izvršava komande u ime superkorisnika i završavajući ograničavanjem skupa dostupnih komandi.
Da otvorite datoteku za uređivanje, upišite sljedeću naredbu kao superkorisnik:

Također možete odrediti uređivač teksta u kojem želite urediti konfiguracijski fajl:

# UREDNIK=nano visudo

Zatim ćemo pogledati najzanimljivije postavke koje možete postaviti u ovoj datoteci. Ali prvo, pogledajmo osnovnu sintaksu datoteke. Sastoji se od dvije vrste stringova, to su aliasi koji vam omogućavaju da kreirate liste korisnika i zastavica, kao i sama pravila koja određuju kako će se sudo naredba ponašati. Sintaksa alijasa izgleda ovako:
ukucajte alias_name = element1, element2, element3
Tip specificira koji tip Alice treba kreirati, ime je ime koje će se koristiti, a lista elemenata specificira elemente koji će se podrazumijevati kada se poziva na ovo ime.
Opis korisničkih dozvola ima malo drugačiju sintaksu:
korisnički host = (drugi_korisnik:grupa) timovi
Korisnik specificira korisnika ili grupu za koju kreiramo pravilo, host je kompjuter za koji će se ovo pravilo primjenjivati. Drugi korisnik - pod krinkom kojeg korisnika prvi može izvršavati komande, a zadnji može izvršavati dozvoljene komande. Umjesto bilo kojeg od parametara može se koristiti pseudonim. A sada postavljanje sudo u Debian i druge distribucije.

Osnovni parametri

Alias ​​Defaults vam omogućava da postavite standardne parametre za rad uslužnog programa, što ćemo razmotriti u ovom odjeljku. Takav alias počinje riječju Defaults, nakon čega slijedi naziv zastave. Ako se ispred imena nalazi simbol, to znači da zastavicu treba uključiti u suprotnom, isključite je:
Onemogućite uvod kada ga prvi put koristite:

Defaults!lecture


Superkorisnik ne može učiniti sudo:

Zadano !root_sudo



Sada ako pokušate pokrenuti sudo sudo ništa neće raditi:


Promijenite početni direktorij za ciljnog korisnika, ostavljajući folder trenutnog korisnika kao početni direktorij prema zadanim postavkama:

Zadane postavke set_home



Sačuvajte listu grupa trenutnog korisnika:

Zadane postavke !preserve_groups



Zatražite lozinku superkorisnika umjesto korisničke lozinke:



Zatim, pogledajmo varijable za koje možete postaviti vrijednosti za postavljanje željenih postavki:
Postavite broj pokušaja lozinke prije nego što se sudo zatvori, zadana vrijednost je 3:

Zadane postavke passwd_tries=5





Broj minuta koji će proći prije nego što sudo ponovo zatraži lozinku je 5 prema zadanim postavkama. Ako postavite vrijednost na 0, uvijek će tražiti lozinku, bez obzira koliko ste dugo koristili uslužni program:

Zadana vrijednost timestamp_timeout=10



Sljedeći parametar specificira broj minuta u kojima će sudo čekati da se lozinka ponovo unese ako je unesena pogrešno:

Zadano passwd_timeout=10



Možete promijeniti poruku koja se prikazuje kada se od vas zatraži lozinka:

Defaults passprompt="Vaša lozinka:"


Za ovu upotrebu možete odrediti drugog korisnika, a ne root, od kojeg će se izvršavati sve naredbe:

Zadane postavke runas_default="korisnik"

Možete prijaviti sve pokušaje povezivanja na sudo:

Zadano logfile=/var/log/sudo



Zatim pokušavamo provjeriti rad dnevnika:

$ sudo cat /var/log/sudo



Ovo su sve najzanimljivije sudo postavke koje vam mogu zatrebati, a zatim ćemo pogledati kako postaviti sudo prava pristupa za korisnike.

Postavljanje sudo korisnika

Već smo raspravljali o sintaksi za podešavanje radnji za korisnike ovdje je sve složenije nego kod pseudonima, ali to možete shvatiti. Na primjer, dozvolimo bilo kojem korisniku da koristi sudo, s bilo kojeg hosta, i da izvrši bilo koju naredbu:

SVE SVE = (SVE) SVE



Takav tim je vrlo nesiguran, dozvoljava svima i svemu. Prvo SVE omogućava svim korisnicima, drugo SVE je za sve hostove, treće SVE dozvoljava prijavu kao bilo koji korisnik, a četvrto dozvoljava izvršavanje bilo koje komande. Ali druga konstrukcija se koristi mnogo češće:

%točak SVE = (SVE) SVE


Znači isto kao i prethodni, samo što ovdje ne dozvoljavamo svim korisnicima da koriste sudo, već samo onima koji su članovi grupe kotača.

%wheel ALL = (root) SVE

Ovdje smo već ograničili mogući izbor korisnika samo na root korisnika. Također možete odrediti korisničku grupu u ime koje on može izvršavati naredbe:

%wheel SVE = (root:admins) SVE



To znači da naredbu možete pokrenuti kao root ili drugi korisnik iz grupe administratora. Također možemo odrediti naredbe koje korisnik može izvršiti. na primjer:
  • Runas_Alias- alias korisnika u čije ime će se izvršavati komande;
  • Host_Alias- alias hosta;
  • Cmnd_Alias- pseudonim komande;
  • Na primjer, napravimo četiri pseudonima i koristimo ih u našem pravilu:

    User_Alias ​​Korisnici = korisnik1,user2,user3
    Runas_Alias ​​Admins = root,admin
    Host_Alias ​​Hosts = host1,host2
    Cmd_Alias ​​Cmds = /bin/mount,/bin/umount

    Korisnici Hostovi = (Administratori) Cmds

    To znači da će korisnici sa liste korisnika moći da izvrše Cmds komande u ime Amdins korisnika na hostovima.
    Ostalo je još nekoliko riječi za reći o zastavama. Oznaka NOPASSWD vam govori da ne tražite lozinku prilikom izvršavanja ovog pravila. Na primjer, da biste omogućili svim korisnicima da pokrenu naredbu mount sa sudo bez lozinke:

    SVE SVE = (root) NOPASSWD: /bin/mount

    Također možete spriječiti da se ova određena naredba uopće izvrši koristeći NOEXEC zastavu:

    SVE SVE = (root) NOEXEC /bin/mount

    Možete provjeriti da li je datoteka /etc/sudores ispravno konfigurirana i vidjeti sva kreirana pravila koristeći naredbu:


    Ovdje su prikazane sve instalirane zastavice i postavke, kao i dozvole ovog korisnika.

    Zaključci

    U ovom članku smo pogledali kako konfigurirati sudo u Linuxu. Kao što vidite, uprkos činjenici da je ovo vrlo jednostavan uslužni program, on skriva mnogo korisnih postavki koje možete koristiti na svom sistemu. Ako imate pitanja, pitajte u komentarima!

    Ponekad je potrebno samo pokrenuti naredbu od drugog korisnika. I postoji nekoliko načina kako se to može učiniti. O njima ću govoriti u svom članku “Pokreni komandu kao drugi korisnik u Unixu/Linuxu”.

    Pokrenite naredbu kao drugi korisnik u Unixu/Linuxu - metod 1

    I tako, možete koristiti SUDO uslužni program. Pogledajmo primjer:

    $ sudo -H -u Vaš_drugi_korisnik -c "ping stranica"

    Objašnjenja:

    • -H YOUR_HOME: Postavlja HOME (Varijabla okruženja za dom određenog korisnika) i po defaultu je root.
    • -u VAŠ_KORISNIK: Odredite korisnika od koga će se naredba izvršiti.
    • -c VAŠA_KOMANDA: Služi kao opcija za unos komande.

    Tako nešto.

    Pokrenite naredbu kao drugi korisnik u Unixu/Linuxu - metod 2

    Možete koristiti uslužni program SU. A sada ću dati nekoliko primjera.

    Prijavite se kao root korisnik

    Da dobijete root, pokrenite:

    $su -root

    Pokrenite naredbu kao root korisnik

    Evo primjera naredbe:

    # su - root -c "VAŠA_KOMANDA_OVDJE"

    Su - -c "VAŠA_KOMANDA_OVDJE arg1"

    Izvršite naredbu od drugog korisnika koristeći su

    Dakle, evo primjera:

    # su -c "/opt/solr/bin/solr create -c test_solr_core -n solrconfig.xml" -s /bin/sh solr Kreirano novo jezgro "test_solr_core"

    Pogledajmo još jedan primjer:

    $ su another_user -c "ping stranica"

    $su -YOUR_USER -c "VAŠA_KOMANDA_OVDJE"

    • — — Simuliraće prijavu navedenog korisnika.
    • -c - Koristi se za određivanje naredbe koja će se izvršiti (za navedenog korisnika).

    Tako nešto.

    Pokrenite naredbu kao drugi korisnik u Unixu/Linuxu - metod 3

    I tako, možete koristiti uslužni program runuser. Naredba runuser pokreće ljusku sa zamjenskim ID-ovima korisnika i grupe. Ova komanda je korisna samo kada ste prijavljeni kao root korisnik. Sintaksa je sljedeća:

    # runuser -l YOUR_USER -c "VAŠA_KOMANDA_OVDJE"

    Kao primjer, pokazat ću sljedeću liniju:

    # runuser -l nginx -c "servis nginx start"

    PS: Naredba runuser ne zahtijeva lozinku i treba je pokrenuti samo root korisnik.

    Glavne opcije:

    • -l: Kreirajte ljusku za prijavu koristeći runuser-l PAM datoteku umjesto zadane.
    • -g: Pokazuje na glavnu grupu.
    • -G: Označava dodatnu grupu.
    • -c: Zapravo, koristi se za specificiranje naredbe.
    • –session-command=COMMAND: Proslijediti jednu naredbu ljusci sa “-c” opcijom i ne kreira novu sesiju.
    • -m: Ne resetuj varijable okruženja(ENV).

    To je to, tema "Pokreni komandu kao drugi korisnik u Unixu/Linuxu" je završena.

    Sudo je program koji dozvoljava administratorima da daju ograničeno root prava korisnika i vodi evidenciju root aktivnosti. Osnovna filozofija je dati što je moguće manje prava, a istovremeno omogućiti ljudima da normalno obavljaju svoje zadatke. Razlika od komande su je u tome što korisnik unosi lozinku za svoju račun, a ne root korisnička lozinka.

    Sudo na Debianu ima petnaest minuta (možda) timeout nakon unosa lozinke. To znači da kada prvi put unesete root lozinku, imate 15 minuta tokom kojih možete izvršiti sljedeću naredbu bez unosa lozinke. Vremensko ograničenje se može odmah resetovati pomoću naredbe sudo -k.

    Instaliranje sudo na Debian 7

    aptitude install sudo

    Tokom instalacije se kreira konfiguracijski fajl /etc/sudoers i imenik /etc/sudoers.d, o čemu ćemo nešto kasnije.

    opcije komande sudo

    -k- omogućava vam da poništite vremensko ograničenje dok ne budete morali ponovo da unesete lozinku. Ako navedete naredbu koja može zahtijevati lozinku, vrijeme čekanja će biti resetovano posebno za tu naredbu.
    -h- mali savjet će biti prikazan na standardnom izlazu.
    -V- bit će prikazana verzija sudoa i dodataka. Ako pokrenete kao root, sve postavke će biti prikazane.
    -g grupa - omogućava vam da odredite iz koje grupe će se komanda pokrenuti.
    -H- specificira direktorij koji će biti specificiran varijabla okruženja HOME.
    -i- simulira početni unos. Ako naredba nije navedena, ona će vas prijaviti, tako da možete postati root umjesto da koristite sudo su.
    -l[l]- ako naredba nije specificirana, tada će se prikazati lista dostupnih naredbi za pozivajućeg korisnika (ili korisnika specificiranog parametrom -U). Ako je naredba specificirana i dostupna, bit će prikazana puna putanja do naredbe i dostupni parametri. Ako naredba nije dostupna, sudo će izaći sa statusom 1. Ako koristite opciju -ll ili dvaput navedete -l, koristit će se opširniji izlazni format.
    -s- ljuska navedena u varijabli okruženja SHELL će biti pokrenuta. Ako je naredba specificirana, ona će biti proslijeđena ljusci koja radi na izvršavanje.
    -U korisnik- zajedno sa parametrom -l, omogućava vam da prikažete privilegije određenog korisnika. Po defaultu, root i korisnici sa svim privilegijama (ALL) imaju pristup listama privilegija.
    -u korisnik- navedena komanda će biti pokrenuta kao navedeni korisnik, a ne kao root.
    -v- omogućava vam da produžite vremensko ograničenje za 15 minuta ili bilo šta što je navedeno u sudoers-u), ali ne i izvršavanje naredbi.

    Većina dostupnih opcija je navedena ovdje, ali ne sve. Za pregled puna lista koristite naredbu man sudo.

    Postavljanje sudo na Debian 7

    Preporučuje se postavljanje svih korisničkih postavki u datoteke u direktoriju /etc/sudoers.d, nije u glavnoj datoteci /etc/sudoers. To jest, možete kreirati datoteku s bilo kojim imenom u direktoriju /etc/sudoers.d i već navesti potrebna podešavanja u njemu.

    File /etc/sudoers preporučuje se uređivanje pomoću uslužnog programa visudo, jer zaključava datoteku i provjerava ispravnost direktiva prilikom zatvaranja. visudo koristi podrazumevani uređivač teksta, koji se može zameniti u sudoers direktiva poput: