Puncte:0

Este posibil să permiteți NOPASSWD pe un alias al unei comenzi care necesită sudo?

drapel in

Am adăugat acest alias:

alias shutdown2h='sudo shutdown -h +120'

pe care aș dori să o rulez fără a fi nevoie să introduc parola dar și fără a adăuga NOPASSWD pentru întreaga comandă de închidere.

Este posibil să adăugați alias-ul la fișierul sudoers cu NOPASSWD în totalitate? Am încercat cu locația comenzii ~/.bash_aliases/shutdown2h care mi-a dat o eroare de sintaxă. Sau există o altă cale?

Mulțumesc foarte mult!

waltinator avatar
drapel it
Lipiți întotdeauna scriptul în `https://shellcheck.net`, un verificator de sintaxă sau instalați `shellcheck` local. Utilizarea „shellcheck” este parte a procesului de dezvoltare. Citește și `man sudoers visudo`. Deoarece `alias` este înlocuit de extinderea de către shell-ul părinte înainte de execuție, `shutdown2h` nu este executat, `sudo shutdown -h +120`.
Puncte:3
drapel it

Doriți să vă asigurați că utilizatorul dvs. nu poate face modificări la ceea ce este permis să ruleze. De exemplu, încercând să adăugați un script deținut de utilizatorul dvs. (~/.bash_aliases/shutdown2h) pentru a fi rulat ca root prin sudo fără o parolă, ați permite rularea oricărei comenzi arbitrare. Pur și simplu editați acel fișier și rulați-l. Ar fi același lucru cu a permite utilizatorului să ruleze orice comandă prin sudoeri. De exemplu, utilizatorul ar edita fișierul pentru a le citi acum în loc de -h +120 și opriți imediat mașina.

În schimb, ar fi o idee mai bună să adăugați un script deținut de utilizatorul root la sistem, probabil în /usr/local/bin/. De exemplu, /usr/local/bin/shutdown2h, executabil de oricine, dar inscriptibil doar de root. În acest fel, vă asigurați că utilizatorul poate rula doar scriptul specific și acel script nu poate fi schimbat de către ei pentru a rula altceva. Calea în care plasați scriptul ar trebui să fie în dvs $PATH, care /usr/local/bin ar trebui să fie în mod implicit.

  1. Creați scenariul
sudo vim /usr/local/bin/shutdown2h

#!/bin/bash
oprire -h +120
  1. Permite executarea scriptului
sudo chmod +x /usr/local/bin/shutdown2h
  1. Permiteți utilizatorului să ruleze un anumit script
sudo visudo

# Adăugați această intrare
USER ALL=(ALL) NOPASSWD: /usr/local/bin/shutdown2h

Acum, utilizatorul poate rula sudo shutdown2h fără să vi se ceară o parolă și asigurați-vă că acel utilizator va putea doar rula oprire -h +120 fără parolă.

De asemenea, la realizarea sudoeri intrări, asigurați-vă că furnizați calea completă către executabil/script și nu utilizați comenzi rapide precum ~/ sau $HOME.

Alin Anca avatar
drapel in
Mulțumesc foarte mult!
vanadium avatar
drapel cn
"probabil în /usr/bin/": faceți acel `/usr/local/bin`

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.