Qual è il modo più semplice o il metodo per automatizzare l'aggiunta di un utente a un file sudoers fresca?

StackOverflow https://stackoverflow.com/questions/5347489

  •  27-10-2019
  •  | 
  •  

Domanda

micronxd così, ho adduser'ed. Ho passwd'd micronxd. Ora voglio fare micronxd un utente sudo.

sto cercando di mettere in valigia come gran parte di questo processo in uno script di shell possibile. Se possibile, la soluzione potrebbe comportare sed'ing il file sudoers? Mi piacerebbe ottenere un davvero stretta forte su quel bestiale piccola pepita (sed).

È stato utile?

Soluzione

Il file sudoers in realtà dovrebbe essere modificato solo con visudo(8).

Detto questo, forse si dovrebbe solo aggiungere micronxd al gruppo wheel quando si aggiunge l'utente micronxd, (vedere l'opzione adduser(8) --add_extra_groups) e quindi aggiungere questa linea al sudoers (via visudo(8) :):

%wheel ALL=(ALL) ALL

Ora, ogni utente si crea con il gruppo primario o un gruppo supplementare di wheel ottiene automaticamente l'accesso sudo. Potrebbe non essere necessario modificare il file sudoers di nuovo.

(Si noti che è possibile aggiungere facilmente chi vuoi al gruppo wheel;.. vigr(8), trovare il gruppo wheel, e aggiungere il loro nome di login alla linea Utilizzare le virgole per i nomi utente separati)

Altri suggerimenti

OK OK OK! Sono assolutamente capito. Questo può essere un po 'eccessivo, ma io non sono sicuro se i file sudoers sono uguali in tutta distribuzioni diff.

Ho trovato la documentazione sul buffer detenzione per sed qui: http://anaturb.net/sed.htm

e sul comando x per sed qui: http://www.kingcomputerservices.com/unix_101/hands_off_editing_with_sed_part_2.htm

e sono arrivato fino a questo: sed -e '/^root/{h;}' -e 'x' -e 's/root/micronxd/' -e 'x' -e '/^root/G' -e 'wsudoers' sudoers

Ecco la ripartizione dei 6 passi:

1. '/ ^ root / {h;}'

trova righe non commentate iniziano con root , e sostituisce il buffer tenuta con esso.

  • regolare buffer di sed: [l'intero file sudoers]
  • tampone contenenti: root ALL = (ALL) ALL

2. 'x'

swap buffer tenuta con la normale "da sed'd" tampone.

  • regolare buffer di sed: root ALL = (ALL) ALL
  • del buffer di capacità: [l'intero file sudoers]

3. 's / root / micronxd /'

sostituisce radice con micronxd

  • regolare buffer di sed: micronxd ALL = (ALL) ALL
  • del buffer di capacità: [l'intero file sudoers]

4. 'x'

swap buffer tenuta con la normale "da sed'd" tampone, di nuovo.

  • regolare buffer di sed: [l'intero file sudoers]
  • del buffer di capacità: micronxd ALL = (ALL) ALL

5. '/ ^ radice / G'

G aggiunge il tampone tenuta dopo la riga corrispondente ^ radice .

  • regolare tampone sed (solo i corrispondenti bit):

## Lasciare radice ALL = (ALL) ALL per eseguire i comandi ovunque
radice ALL = (ALL) ALL
micronxd ALL = (ALL) ALL

  • del buffer di capacità: micronxd ALL = (ALL) ALL

6. 'wsudoers'

scrive il regolare di nuovo buffer di sed per sudoers

Sono sicuro che c'è un modo migliore, ma sto cercando di ottenere il blocco di sed. In più, non ero sicuro se user MACHINE=COMMANDS ???? è la sintassi per tutti i sistemi Linux, o semplicemente Fedora (che è quello che ho a che fare).

In ogni modo, io sono felice di vedere altri modi (soprattutto modi migliori).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top