sudoers-filens syntaxfel när sudo-kommandon körs

Zhrnutie: När du har konfigurerat en roll kan du inte köra sudo-kommandon och ett syntaxfel visas i sudoers-filen.

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

När du kör en "sudo" kan det misslyckas på en eller flera noder, till exempel:

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

Detta kan inträffa av olika anledningar:
 

1. Den användare eller grupp som läggs till i en roll kan inte matchas på berörda noder:

På noderna som uppvisar problemet kan du se att användaren eller gruppen som har lagts till inte kan matchas:

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

Eftersom användaren eller gruppen inte kan matchas kan noden inte hitta ett GID/UID för sudoers filen, och om man tittar på /usr/local/etc/sudoers Filen:

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 =

Observera att UID/GID inte har fyllts i, vilket resulterar i ett syntaktiskt fel.
 

2. Rollen som skapades innehåller ett bindestreck i namnet:

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

Det här felet finns till exempel på rad 124:

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

 3. Användaren eller gruppen har inget associerat UID eller GID.

Riešenie

1. Om noder inte kan översätta ett användar- eller gruppnamn till ett UID/GID måste vi lägga till användaren/gruppen som anges av UID/GID istället.


Ta bort användar- eller gruppnamnet från rollkonfigurationen:

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


Hämta rätt UID/GID för användaren från en nod som kan utföra åtgärden:

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
Obs! Samma sak kan göras för en användare, genom att ersätta "grupper" med "användare" istället för GID, UID.

Använd UID/GID i stället för gruppnamnet:

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

 Obs! Samma sak kan göras för en användare genom att ersätta "add-gid" med "add-uid".

Konfigurationen av sudoers-filen bör nu korrekt återspegla uid/gid:

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

Dessutom bör sudo-kommandon fungera korrekt:

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. Byt namn på rollen så att den inte innehåller ett "-".
 

Byt namn på rollen så att den inte innehåller ett bindestreck:

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

 

Observera att det inte längre finns något syntaxfel:

cluster-1% % sudo date
Password:

 

3. Sudoers-filen kräver ett UID eller GID för att identifiera användare och grupper, vilket säkerställer att alla användare och grupper har ett associerat UID eller GID.

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.