etc/sudoers.d в Eagle Linux 32-bit не работает

Вопрос или проблема

У меня есть 2 линукса: 32-битный (eagle – 12.1) и 64-битный (braswell – 42.2). В 64-битной версии у меня есть etc/sudoers.d/user, так же как и в 32-битной версии, но в 32-битной версии в файле etc/sudoers, когда я добавляю строку includedir etc/sudoers.d в редакторе visudo, я получаю синтаксическую ошибку, что означает, что я могу считать это не поддерживаемым? (вопрос в моей голове).

Синтаксическая ошибка:
root@linux59:~> sudo visudo sudo: >>> /etc/sudoers: синтаксическая ошибка около строки 76 <<< sudo: ошибка парсинга в /etc/sudoers около строки 76 sudo: не найдены валидные источники sudoers, выход sudo: невозможно инициализировать плагин политики эта ошибка в 32-битной версии

Ошибка при выполнении serviname start в cmd:
sudo: >>> /etc/sudoers: синтаксическая ошибка около строки 76 <<< sudo: ошибка парсинга в /etc/sudoers около строки 76 sudo: не найдены валидные источники sudoers, выход sudo: невозможно инициализировать плагин политики sudo: >>> /etc/sudoers: синтаксическая ошибка около строки 76 <<< sudo: ошибка парсинга в /etc/sudoers около строки 76 sudo: не найдены валидные источники sudoers, выход

32 бит etc/sudoers
# файл sudoers.
#
# Этот файл ДОЛЖЕН редактироваться с помощью команды 'visudo' от имени root.
#
# См. страницу man sudoers для получения деталей о том, как писать файл sudoers.
#

# Спецификация алиасов хоста

# Спецификация алиасов пользователей

# Спецификация алиасов команд

# Спецификация значений по умолчанию

# Предотвращение влияния переменных окружения на программы
# неожиданным или вредным образом (CVE-2005-2959, CVE-2005-4158, CVE-2006-0151)
Defaults always_set_home
Defaults env_reset

Defaults env_keep = "LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE LC_TIME LC_ALL LANGUAGE LINGUAS XDG_SESSION_COOKIE"
# Закомментируйте предыдущую строку и раскомментируйте следующую, если вам нужно
# использовать специальные методы ввода. Это может позволить пользователям скомпрометировать учетную запись root,
# если им разрешено запускать команды без аутентификации.
#Defaults env_keep = "LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE LC_TIME LC_ALL LANGUAGE LINGUAS XDG_SESSION_COOKIE XMODIFIERS GTK_IM_MODULE QT_IM_MODULE QT_IM_SWITCHER"

# В конфигурации по умолчанию (не настроенной) sudo запрашивает пароль root.
# Это позволяет использовать обычную учетную запись пользователя для администрирования
# свежес установленной системы. При настройке sudo удалите две
# следующие строки:
#Defaults targetpw   # запросить пароль целевого пользователя, т.е. root
#ALL ALL=(ALL) ALL   # ВНИМАНИЕ! Используйте это только вместе с 'Defaults targetpw'!

Defaults visiblepw   # нужно, чтобы 2root снова работал. Пароль не выводится на экран, однако.

# Спецификация алиасов Runas

# Спецификация привилегий пользователей
root    ALL=(ALL) SETENV: ALL

m ALL=(ALL) SETENV:ALL
deviceadm         ALL = (ALL) SETENV: ALL

%nta    ALL=SETENV: NOPASSWD: /Speicherkarte/Unicorn/setAdapter
%nta    ALL=SETENV: NOPASSWD: /Speicherkarte/Unicorn/setGateway
%nta    ALL=SETENV: NOPASSWD: /Speicherkarte/Unicorn/setPCName
%nta    ALL=SETENV: NOPASSWD: /Speicherkarte/Unicorn/test-usbstick
%nta    ALL=SETENV: NOPASSWD: /opt/mt/netconfig/netconfig.pl
%nta    ALL=SETENV: NOPASSWD: /bin/date
%nta    ALL=SETENV: NOPASSWD: /etc/init.d/nmb
%nta    ALL=SETENV: NOPASSWD: /bin/systemctl
%nta    ALL=SETENV: NOPASSWD: /usr/bin/systemctl
%nta    ALL=SETENV: NOPASSWD: /opt/RemoteService/run_remotegui.sh
%nta    ALL=SETENV: NOPASSWD: /sbin/halt
%nta    ALL=SETENV: NOPASSWD: /sbin/hwclock
%nta    ALL=SETENV: NOPASSWD: /sbin/poweroff
%nta    ALL=SETENV: NOPASSWD: /sbin/rcnetwork
%nta    ALL=SETENV: NOPASSWD: /sbin/reboot
%nta    ALL=SETENV: NOPASSWD: /usr/sbin/smartctl

device   ALL=(deviceadm) NOPASSWD: /opt/mt/noop/startup/run_update
device   ALL=(deviceadm) NOPASSWD: /Speicherkarte/Unicorn/update.sh
m   ALL=SETENV: NOPASSWD: /usr/bin/systemctl
m   ALL=SETENV: NOPASSWD: /home/m/service/Services


## Раскомментируйте, чтобы разрешить участникам группы wheel выполнять любую команду
# %wheel ALL=(ALL) ALL


# Раскомментируйте, чтобы разрешить людям в группе wheel запускать все команды
# и устанавливать переменные окружения.
# %wheel    ALL=(ALL) SETENV: ALL

# То же самое без пароля
# %wheel    ALL=(ALL) NOPASSWD: SETENV: ALL
includedir /etc/sudoers.d

и в 64-битной версии

## файл sudoers.
##
## Этот файл ДОЛЖЕН редактироваться с помощью команды 'visudo' от имени root.
## Если не использовать 'visudo', это может привести к синтаксическим ошибкам или ошибкам прав доступа
## которые не позволят sudo работать.
##
## См. страницу man sudoers для получения деталей о том, как писать файл sudoers.
##

##
## Спецификация алиасов хоста
##
## IP-адреса, сетевые номера или группы сетей.
# Host_Alias    WEBSERVERS = www1, www2, www3

##
## Спецификация алиасов пользователей
##
## Группы пользователей. Это могут быть имена пользователей, uid, группы Unix,
## или группы сетей.
# User_Alias    ADMINS = millert, dowdy, mikef

##
## Спецификация алиасов команд
##
## Группы команд. Часто используются для объединения связанных команд.
# Cmnd_Alias    PROCESSES = /usr/bin/nice, /bin/kill, /usr/bin/renice, \
#               /usr/bin/pkill, /usr/bin/top

##
## Спецификация значений по умолчанию
##
## Предотвращение влияния переменных окружения на программы
## неожиданным или вредным образом (CVE-2005-2959, CVE-2005-4158, CVE-2006-0151)
Defaults always_set_home
## Путь, который будет использоваться для каждой команды, запущенной из sudo
#Defaults secure_path="/usr/sbin:/usr/bin:/sbin:/bin"
#Defaults env_reset
## Измените env_reset на !env_reset в предыдущей строке, чтобы сохранить все переменные окружения
## Следующий список больше не будет необходим после этого изменения

Defaults env_keep = "LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE LC_TIME LC_ALL LANGUAGE LINGUAS XDG_SESSION_COOKIE"
## Закомментируйте предыдущую строку и раскомментируйте следующую, если вам нужно
## использовать специальные методы ввода. Это может позволить пользователям скомпрометировать учетную запись root,
## если им разрешено запускать команды без аутентификации.
#Defaults env_keep = "LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE LC_TIME LC_ALL LANGUAGE LINGUAS XDG_SESSION_COOKIE XMODIFIERS GTK_IM_MODULE QT_IM_MODULE QT_IM_SWITCHER"

## Не оскорбляйте пользователей, когда они вводят неверный пароль.
Defaults !insults

##
## Раскомментируйте, чтобы включить логирование вывода команды, кроме
## sudoreplay и перезагрузки. Используйте sudoreplay для воспроизведения записанных сеансов.
# Defaults log_output
# Defaults!/usr/bin/sudoreplay !log_output
# Defaults!/sbin/reboot !log_output

## В конфигурации по умолчанию (не настроенной) sudo запрашивает пароль root.
## Это позволяет использовать обычную учетную запись пользователя для администрирования
## свежес установленной системы. При настройке sudo удалите две
## следующие строки:
Defaults targetpw   # запросить пароль целевого пользователя, т.е. root
ALL ALL=(ALL) ALL   # ВНИМАНИЕ! Используйте это только вместе с 'Defaults targetpw'!

##
## Спецификация алиасов Runas
##

##
## Спецификация привилегий пользователей
##
root ALL=(ALL) SETENV: ALL

device ALL=(ALL) SETENV:ALL
deviceadm ALL=(ALL) SETENV: ALL

%nta    ALL=SETENV: NOPASSWD: /Speicherkarte/Unicorn/setAdapter
%nta    ALL=SETENV: NOPASSWD: /Speicherkarte/Unicorn/setGateway
%nta    ALL=SETENV: NOPASSWD: /Speicherkarte/Unicorn/setPCName
%nta    ALL=SETENV: NOPASSWD: /Speicherkarte/Unicorn/test-usbstick
%nta    ALL=SETENV: NOPASSWD: /opt/mt/netconfig/netconfig.pl
%nta    ALL=SETENV: NOPASSWD: /bin/date
%nta    ALL=SETENV: NOPASSWD: /etc/init.d/nmb
%nta    ALL=SETENV: NOPASSWD: /bin/systemctl
%nta    ALL=SETENV: NOPASSWD: /usr/bin/systemctl
%nta    ALL=SETENV: NOPASSWD: /opt/RemoteService/run_remotegui.sh
%nta    ALL=SETENV: NOPASSWD: /sbin/halt
%nta    ALL=SETENV: NOPASSWD: /sbin/hwclock
%nta    ALL=SETENV: NOPASSWD: /sbin/poweroff
%nta    ALL=SETENV: NOPASSWD: /sbin/rcnetwork
%nta    ALL=SETENV: NOPASSWD: /sbin/reboot
%nta    ALL=SETENV: NOPASSWD: /usr/sbin/smartctl

device   ALL=(deviceadm) NOPASSWD: /opt/mt/noop/startup/run_update
device   ALL=(deviceadm) NOPASSWD: /Speicherkarte/Unicorn/update.sh
device   ALL=SETENV: NOPASSWD: /usr/bin/systemctl
device   ALL=SETENV: NOPASSWD: /home/m/service/Services


## Раскомментируйте, чтобы разрешить участникам группы wheel выполнять любую команду
# %wheel ALL=(ALL) ALL

## То же самое без пароля
# %wheel ALL=(ALL) NOPASSWD: ALL

## Читайте файлы drop-in из /etc/sudoers.d
## (здесь '#' не указывает на комментарий)
#includedir /etc/sudoers.d
%nta ALL=SETENV: NOPASSWD: /usr/bin/ping

Как сделать так, чтобы это работало, возможно ли использовать etc/sudoers в 32-битной версии

Ответ или решение

Проблема с конфигурацией sudo на вашей 32-битной версии Eagle Linux (12.1), которая связана с файлом /etc/sudoers, может быть вызвана рядом причин. В этом ответе мы подробно разберем, как решить ошибку, с которой вы столкнулись, а также рассмотрим возможность использования директории /etc/sudoers.d.

Причины ошибки

  1. Синтаксические ошибки в файле sudoers: Судя по предоставленному вами тексту, в 32-битной версии вашей системы возникла ошибка синтаксиса. Она указывает на то, что в линии 76 существует недопустимый синтаксис. Это может произойти из-за неправильного форматирования, пробелов или отсутствия необходимых знаков.

  2. Включение файла sudoers.d: Строка includedir /etc/sudoers.d должна добавляться в конец файла, но важно убедиться, что это делается корректно. Отсутствие или неправильная запись этой строки может привести к ошибкам парсинга.

Решение проблемы

  1. Исправление синтаксиса sudoers:

    • Запустите команду sudo visudo, чтобы редактировать файл /etc/sudoers со специальными проверками на ошибки.
    • Проверьте строку 76 и вокруг нее. Убедитесь, что все команды корректно указаны, и не забыты необходимые пробелы.
  2. Правильное использование sudoers.d:

    • Если у вас есть файл конфигурации в /etc/sudoers.d/, убедитесь, что он имеет правильные права доступа. Они должны быть такими:
      chmod 440 /etc/sudoers.d/*
    • Убедитесь также, что файлы в этой директории не содержат синтаксических ошибок. Вы можете проверить файл, запустив:
      sudo visudo -c
    • Важно, чтобы все файлы в /etc/sudoers.d/ имели технические условия, например, содержали строки формата:
      user ALL=(ALL) NOPASSWD: /path/to/command
  3. Проверка совместимости:

    • Убедитесь, что система поддерживает includedir, так как старые или несоответствующие версии могут не поддерживать эту функциональность. Это можно проверить, открыв man-страницу для sudoers, выполнив:
      man sudoers
    • Если версия действительно не поддерживает includedir, возможно, стоит обновить систему или воспользоваться альтернативными методами, например, путем добавления всех правил непосредственно в файл /etc/sudoers.

Заключение

Если после внесенных изменений ошибка все еще сохраняется, необходимо проверить другие конфигурации и сопутствующие файлы. Не забывайте всегда использовать команду visudo для редактирования sudoers, чтобы предотвратить ошибки, которые могут сделать систему неработоспособной. Путем тщательной проверки и исправления ошибок, вы должны быть в состоянии успешно использовать /etc/sudoers.d и исправить возникшую проблему.

Оцените материал
Добавить комментарий

Капча загружается...