sudoers filsyntaksfejl ved kørsel af sudo-kommandoer
Summary: Når du har konfigureret en rolle, kan du ikke køre sudo-kommandoer og får vist en syntaksfejl i sudoers-filen.
Symptoms
Når du kører en "sudo" kommando, kan det mislykkes på en eller flere noder, for eksempel:
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 pluginCause
Dette kan ske af forskellige årsager:
1. Den bruger eller gruppe, der er føjet til en rolle, kan ikke løses på berørte noder:
På de noder, der udviser problemet, kan du muligvis se, at den bruger eller gruppe, der blev tilføjet, ikke kan løses:
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 brugeren eller gruppen ikke kan løses, kan noden ikke finde en GID/UID for sudoers fil, og ser på /usr/local/etc/sudoers Fil:
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 =
Bemærk, at UID/GID ikke er udfyldt, og dette resulterer i en syntaktisk fejl.
2. Den rolle, der blev oprettet, indeholder en bindestreg i navnet:
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
For eksempel findes denne fejl på linje 124:
cluster-1# grep -n '' /usr/local/etc/sudoers | grep ^124
124:User_Alias TEST-ROLE = #1000003
3. Brugeren eller gruppen har ikke en tilknyttet UID eller GID.
Resolution
1. Hvis noder ikke kan oversætte et bruger- eller gruppenavn til et UID/GID, skal vi tilføje brugeren/gruppen som angivet af UID/GID i stedet.
Fjern bruger- eller gruppenavnet fra rollekonfigurationen:
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
Hent den korrekte UID/GID for brugeren fra en node, der kan udføre handlingen:
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
Anvend UID/GID i stedet for gruppenavnet:
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
Bemærk: Det samme kan gøres for en bruger ved at erstatte "add-gid" med "add-uid".
Sudoers-filkonfigurationen skal nu afspejle uid/gid korrekt:
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
Sudo-kommandoer skal også fungere 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. Omdøb rollen, så den ikke indeholder et "-".
Omdøb rollen, så den ikke indeholder en bindestreg:
cluster-1# isi auth roles modify --role=test-role --name=test_role
Bemærk, at der ikke længere er en syntaksfejl:
cluster-1% % sudo date
Password:
3. Sudoers-filen kræver en UID eller GID for at identificere brugere og grupper, sikre at alle brugere og grupper har en tilknyttet UID eller GID.