Я знаю, что X11 называется так, потому что это 11-я версия
Сетевой протокол является 11-й версией. Например, я запускаю X.Org X Server 1.18.4, но он по-прежнему реализует протокол X11 (вместе с дополнительными расширениями , которых не было при запуске X11).
если эта версия была достигнута еще в 80-х, то почему с тех пор не была выпущена новая версия?
Базовый протокол не нужно было менять, поэтому его никто не менял. Сообщество X следовало мантре звукорежиссера: «Если что-то не сломалось, не чините это». При этом с 80-х годов для базового протокола X11 было добавлено множество расширений.
Это похоже на то, что вы можете купить новую машину (с современным двигателем с гибким топливом), но вы все равно ускоряетесь, нажимая на педаль газа, поворачивая рулевое колесо, как в 80-х (тот же старый протокол, который не нуждался в изменения).
Теперь, если вам нужна машина с джойстиком, посмотрите Wayland https://wayland.freedesktop.org/ ;)
Лично я бы выбрал модуль шаблона ( ссылка ). Я бы подготовил шаблон, похожий на этот:
User_Alias OPS_USERS = {{ users|join(', ') }} Cmnd_Alias OPS_CMD = {{ commands|join(', ') }} OPS_USERS ALL = NOPASSWD:OPS_CMD
А в переменных я бы поместил что-то вроде этого:
users: - "user1" - "user2" - "user3" commands: - "/sbin/ifconfig" - "/usr/sbin/dmidecode"
Изменить: Возможно, потребуется небольшое объяснение.
В шаблоне я использовал фильтр, который объединяет строки с заданным разделителем ( ',' ). Подробнее о фильтрах можно узнать здесь . Конечно, строки для объединения берутся из списков « users » или « command », определенных в разделе переменных вашей книги.