GNU/Linux >> Znalost Linux >  >> Linux

Přidávání uživatelů do sudoers pomocí skriptu shellu

Ne, přímé echo nebude fungovat, musíte ho spustit v subshellu. Zkuste místo toho toto:

sudo sh -c "echo \"group ALL=(user) NOPASSWD: ALL\" >> /etc/sudoers"


Můžete jednoduše echo (samozřejmě se zvýšenými oprávněními) přímo do /etc/sudoers soubor:

sudo -i
echo 'nickw444  ALL=(ALL:ALL) ALL' >> /etc/sudoers
#             ^^
#             tab

(všimněte si znaku tabulátoru mezi uživatelským jménem a prvním ALL )

Nebo pro skript:

#!/bin/bash
# Run me with superuser privileges
echo 'nickw444  ALL=(ALL:ALL) ALL' >> /etc/sudoers

Poté uložte do somefile.sh , chmod a+rx a spusťte sudo ./somefile.sh z okna terminálu.

Chcete-li přidat více uživatelů, změňte skript na toto;

#!/bin/bash

while [[ -n $1 ]]; do
    echo "$1    ALL=(ALL:ALL) ALL" >> /etc/sudoers;
    shift # shift all parameters;
done

Poté spusťte skript takto (za předpokladu, že jste jej uložili jako addsudousers.sh ):

sudo ./addsudousers.sh bob joe jeff

tedy oddělené prostorem.

Čtení jmen ze souboru:

[email protected] ~ $ sudo ./addsudousers.sh `cat listofusers.txt`

listofusers.txt měly by být také odděleny mezerou.

Upravit: Jappie Kirk správně poukazuje na to, že nemůžete přímo volat sudo echo ... >> /etc/sudoers protože >> přesměrování je řešeno shellem, který do té doby zrušil oprávnění superuživatele. Pokud však spustíte skript, který obsahuje echo ... >> /etc/sudoers a samotný skript má práva superuživatele, vše by mělo fungovat v pořádku.


Linux
  1. Opravit poškozený soubor sudoers – sudo:chyba analýzy v /etc/sudoers poblíž řádku 21 [Ubuntu]

  2. Jak zakázat „sudo su“ pro uživatele v konfiguračním souboru sudoers

  3. „sudo:/etc/sudoers je světově zapisovatelný“ – Jak opravit oprávnění souboru sudoers

  1. Přidejte sudoer neinteraktivně z příkazového řádku

  2. Zakázat zpětnou vazbu při zadávání hesla při výzvě sudo

  3. Vynechání příkazu/skriptu zadaného v /etc/passwd

  1. Jak zahrnout všechny soubory z adresáře do skriptu shellu (v tomto případě /etc/init.d/iptables)

  2. /etc/sudoers - Urážky - Jak přidat seznam urážek?

  3. Jak přidat uživatele do Linuxu pomocí shell skriptu