Błąd składni pliku sudoers podczas uruchamiania poleceń sudo

Summary: Po skonfigurowaniu roli nie można uruchamiać poleceń sudo, a w pliku sudoers pojawia się błąd składniowy.

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

Podczas uruchamiania "sudo", może ono zakończyć się niepowodzeniem na jednym lub wielu węzłach, na przykład:

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

Cause

Może się to zdarzyć z różnych powodów:
 

1. Nie można rozpoznać użytkownika lub grupy dodanej do roli w węzłach, których dotyczy problem:

W węzłach, w których występuje problem, może okazać, że nie można rozwiązać problemu użytkownika lub grupy:

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

Ponieważ użytkownik lub grupa jest nierozwiązywalna, węzeł nie może zlokalizować GID/UID dla sudoers i patrząc na plik /usr/local/etc/sudoers pliku:

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 =

Zauważ, że UID/GID nie został wypełniony, co powoduje błąd składniowy.
 

2. Rola, która została utworzona, zawiera łącznik w nazwie:

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

Na przykład ten błąd występuje w wierszu 124:

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

 3. Użytkownik lub grupa nie ma powiązanego identyfikatora UID ani GID.

Resolution

1. Jeśli węzły nie są w stanie przetłumaczyć nazwy użytkownika lub grupy na UID/GID, musimy zamiast tego dodać użytkownika/grupę zgodnie z UID/GID.


Usuń nazwę użytkownika lub grupy z konfiguracji roli:

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


Uzyskaj prawidłowy identyfikator UID/GID dla użytkownika z węzła, który może wykonać operację:

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
Uwaga: To samo można zrobić dla użytkownika, zastępując "groups" słowem "users" zamiast GID, UID.

Zastosuj UID/GID zamiast nazwy grupy:

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

 Uwaga: To samo można zrobić dla użytkownika, zastępując "add-gid" przez "add-uid".

Konfiguracja pliku sudoers powinna teraz poprawnie odzwierciedlać 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

Ponadto polecenia sudo powinny działać poprawnie:

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. Zmień nazwę roli tak, aby nie zawierała znaku "-".
 

Zmień nazwę roli tak, aby nie zawierała łącznika:

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

 

Zauważ, że nie ma już błędu składni:

cluster-1% % sudo date
Password:

 

3. Plik sudoers wymaga UID lub GID do identyfikacji użytkowników i grup, upewnij się, że wszyscy użytkownicy i grupy mają skojarzony UID lub GID.

Affected Products

PowerScale OneFS
Article Properties
Article Number: 000102433
Article Type: Solution
Last Modified: 22 Dec 2025
Version:  5
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.