Синтаксическая ошибка файла sudoers при выполнении команд sudo

Summary: После настройки роли вы не сможете выполнять команды sudo и в файле sudoers появится синтаксическая ошибка.

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

При запуске команды "sudo" может завершиться сбоем на одном или нескольких узлах, например:

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

Это может произойти по разным причинам:
 

1. Пользователь или группа, добавленные в роль, не могут быть разрешены на затронутых узлах:

На узлах, где возникла проблема, может наблюдаться, что добавленный пользователь или группа не поддаются разрешению:

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

Так как имя пользователя или группы не может быть определено, узел не может найти GID/UID для sudoers file, и глядя на файл /usr/local/etc/sudoers .

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 =

Обратите внимание, что UID/GID не заполнены, что приводит к синтаксической ошибке.
 

2. Созданная роль содержит дефис в имени:

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

Например, эта ошибка существует в строке 124:

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

 3. С пользователем или группой не связан идентификатор UID или GID.

Resolution

1. Если узлы не могут преобразовать имя пользователя или группы в UID/GID, вместо этого необходимо добавить пользователя или группу, как указано в UID/GID.


Удалите имя пользователя или группы из конфигурации роли:

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


Получите надлежащий идентификатор UID/GID для пользователя с узла, который может выполнять операцию:

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
Примечание. То же самое можно сделать и для пользователя, заменив «groups» на «users» вместо GID, UID.

Применяйте идентификатор UID/GID, а не имя группы:

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

 Примечание. То же самое можно сделать для пользователя, заменив «add-gid» на «add-uid».

Теперь конфигурация файла sudoers должна правильно отражать 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

Кроме того, команды sudo должны работать правильно:

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. Переименуйте роль, чтобы в ней не было символа «-».
 

Переименуйте роль, чтобы в ней не было дефиса:

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

 

Обратите внимание, что синтаксическая ошибка больше не возникает:

cluster-1% % sudo date
Password:

 

3. Файлу sudoers требуется идентификатор UID или GID для идентификации пользователей и групп. Убедитесь, что со всеми пользователями и группами связан идентификатор UID или 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.