Syntaxfehler der Datei sudoers beim Ausführen von sudo-Befehlen

Zhrnutie: Nach der Konfiguration einer Rolle können Sie keine sudo-Befehle ausführen und es wird ein Syntaxfehler in der sudoers-Datei angezeigt.

Tento článok sa vzťahuje na Tento článok sa nevzťahuje na Tento článok nie je viazaný na žiadny konkrétny produkt. V tomto článku nie sú uvedené všetky verzie produktov.

Symptómy

Beim Ausführen eines "sudo" kann er auf einem oder mehreren Nodes fehlschlagen, z. B.:

cluster-1# isi_for_array -s sudo date
cluster-1: Fri Sep 12 16:58:29 CDT 2014
cluster-2: Fri Sep 12 16:58:30 CDT 2014
cluster-3: sudo: >>> /usr/local/etc/sudoers: syntax error near line 124 <<<
cluster-3: sudo: parse error in /usr/local/etc/sudoers near line 124
cluster-3: sudo: no valid sudoers sources found, quitting
cluster-3: sudo: unable to initialize policy plugin

Príčina

Dies kann aus verschiedenen Gründen auftreten:
 

1. Der Nutzer oder die Gruppe, die einer Rolle hinzugefügt wurde, kann auf betroffenen Nodes nicht aufgelöst werden:

Auf den Nodes, auf denen das Problem auftritt, wird möglicherweise angezeigt, dass der hinzugefügte Nutzer oder die hinzugefügte Gruppe nicht aufgelöst werden kann:

cluster-1# isi_for_array -n3 'isi auth users view domain\\group'
cluster-3: Failed to find group for 'GROUP:domain\group': No such group

Da der Nutzer oder die Gruppe nicht aufgelöst werden kann, kann der Node keine GID/UID für die sudoers Datei und einen Blick auf die /usr/local/etc/sudoers wird:

cluster-1# isi_for_array -s "egrep -i 'user_alias.*newrole' /usr/local/etc/sudoers"
cluster-1: User_Alias NEWROLE = %#1000010
cluster-2: User_Alias NEWROLE = %#1000010
cluster-3: User_Alias NEWROLE =

Beachten Sie, dass die UID/GID nicht ausgefüllt wurde, was zu einem syntaktischen Fehler führt.
 

2. Der Name der erstellten Rolle enthält einen Bindestrich:

cluster-1# isi auth roles view test-role                                                               
       Name: test-role
Description: -
    Members: DOMAIN\user
 Privileges
             ID : ISI_PRIV_LOGIN_SSH
      Read Only : True

             ID : ISI_PRIV_AUTH
      Read Only : False

cluster-1% sudo date
sudo: >>> /usr/local/etc/sudoers: syntax error near line 124 <<<
sudo: parse error in /usr/local/etc/sudoers near line 124
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin

Dieser Fehler ist z. B. in Zeile 124 vorhanden:

cluster-1# grep -n '' /usr/local/etc/sudoers | grep ^124
124:User_Alias TEST-ROLE = #1000003

 3. Dem Nutzer oder der Gruppe ist keine UID oder GID zugeordnet.

Riešenie

1. Wenn Nodes einen Nutzer- oder Gruppennamen nicht in eine UID/GID übersetzen können, müssen wir stattdessen den Nutzer/die Gruppe gemäß UID/GID hinzufügen.


Entfernen Sie den Nutzer- oder Gruppennamen aus der Rollenkonfiguration:

cluster-1# isi auth roles modify --role=newrole --remove-group=domain\\group
cluster-1# isi auth roles view newrole                                                          
       Name: newrole
Description: -
    Members: -
 Privileges
             ID : ISI_PRIV_LOGIN_SSH
      Read Only : True

             ID : ISI_PRIV_SMB
      Read Only : False


Rufen Sie die richtige UID/GID für den Nutzer von einem Node ab, der den Vorgang ausführen kann:

cluster-1# isi auth groups view domain\\group
            Name: DOMAIN\group
              DN: CN=group,CN=Users,DC=domain,DC=com
             SID: S-1-5-21-463481935-3723234361-2963677383-1144
             GID: 1000010
          Domain: DOMAIN
Sam Account Name: group
        Provider: lsa-activedirectory-provider:DOMAIN.COM
   Generated GID: Yes
Hinweis: Das Gleiche kann für einen Benutzer getan werden, indem "Gruppen" durch "Benutzer" anstelle von GID, UID ersetzt werden.

Wenden Sie die UID/GID anstelle des Gruppennamens an:

cluster-1# isi auth roles modify --role=newrole --add-gid=1000010
cluster-1# isi auth roles view newrole                                                          
       Name: newrole
Description: -
    Members: DOMAIN\group
 Privileges
             ID : ISI_PRIV_LOGIN_SSH
      Read Only : True

             ID : ISI_PRIV_SMB
      Read Only : False

 Hinweis: Dasselbe kann für einen Benutzer getan werden, indem "add-gid" durch "add-uid" ersetzt wird.

Die sudoers-Dateikonfiguration sollte jetzt ordnungsgemäß die uid/gid widerspiegeln:

cluster-1# isi_for_array -s "egrep -i 'alias.*newrole' /usr/local/etc/sudoers"
cluster-1: User_Alias NEWROLE = %#1000010
cluster-2: User_Alias NEWROLE = %#1000010
cluster-3: User_Alias NEWROLE = %#1000010

Außerdem sollten sudo-Befehle ordnungsgemäß funktionieren:

cluster-1# isi_for_array -s sudo date                                                      
cluster-1: Fri Sep 12 17:20:14 CDT 2014
cluster-2: Fri Sep 12 17:20:14 CDT 2014
cluster-3: Fri Sep 12 17:20:14 CDT 2014

 

2. Benennen Sie die Rolle so um, dass sie kein "-" enthält.
 

Benennen Sie die Rolle so um, dass sie keinen Bindestrich enthält:

cluster-1# isi auth roles modify --role=test-role --name=test_role

 

Beachten Sie, dass kein Syntaxfehler mehr vorliegt:

cluster-1% % sudo date
Password:

 

3. Die sudoers-Datei erfordert eine UID oder GID, um Nutzer und Gruppen zu identifizieren und sicherzustellen, dass alle Nutzer und Gruppen über eine zugeordnete UID oder GID verfügen.

Dotknuté produkty

PowerScale OneFS
Vlastnosti článku
Číslo článku: 000102433
Typ článku: Solution
Dátum poslednej úpravy: 22 dec 2025
Verzia:  5
Nájdite odpovede na svoje otázky od ostatných používateľov spoločnosti Dell
Služby podpory
Skontrolujte, či sa na vaše zariadenie vzťahujú služby podpory.