11cd871b5SBram Moolenaar" Vim syntax file 242eeac35SBram Moolenaar" Language: sudoers(5) configuration files 3*dad4473fSBram Moolenaar" Maintainer: Eisuke Kawashima ( e.kawaschima+vim AT gmail.com ) 4214641f7SBram Moolenaar" Previous Maintainer: Nikolai Weibull <[email protected]> 5*dad4473fSBram Moolenaar" Latest Revision: 2021 Mar 15 6a9604e61SBram Moolenaar" Recent Changes: Support for #include and #includedir. 7fc65cabbSBram Moolenaar" Added many new options (Samuel D. Leslie) 81cd871b5SBram Moolenaar 942eeac35SBram Moolenaarif exists("b:current_syntax") 101cd871b5SBram Moolenaar finish 111cd871b5SBram Moolenaarendif 121cd871b5SBram Moolenaar 1342eeac35SBram Moolenaarlet s:cpo_save = &cpo 1442eeac35SBram Moolenaarset cpo&vim 1542eeac35SBram Moolenaar 161cd871b5SBram Moolenaar" TODO: instead of 'skipnl', we would like to match a specific group that would 171cd871b5SBram Moolenaar" match \\$ and then continue with the nextgroup, actually, the skipnl doesn't 181cd871b5SBram Moolenaar" work... 191cd871b5SBram Moolenaar" TODO: treat 'ALL' like a special (yay, a bundle of new rules!!!) 201cd871b5SBram Moolenaar 211cd871b5SBram Moolenaarsyn match sudoersUserSpec '^' nextgroup=@sudoersUserInSpec skipwhite 221cd871b5SBram Moolenaar 231cd871b5SBram Moolenaarsyn match sudoersSpecEquals contained '=' nextgroup=@sudoersCmndSpecList skipwhite 241cd871b5SBram Moolenaar 251cd871b5SBram Moolenaarsyn cluster sudoersCmndSpecList contains=sudoersUserRunasBegin,sudoersPASSWD,@sudoersCmndInSpec 261cd871b5SBram Moolenaar 271cd871b5SBram Moolenaarsyn keyword sudoersTodo contained TODO FIXME XXX NOTE 281cd871b5SBram Moolenaar 290dc065eeSBram Moolenaarsyn region sudoersComment display oneline start='#' end='$' contains=sudoersTodo 30*dad4473fSBram Moolenaarsyn region sudoersInclude display oneline start='[#@]\%(include\|includedir\)\>' end='$' 311cd871b5SBram Moolenaar 321cd871b5SBram Moolenaarsyn keyword sudoersAlias User_Alias Runas_Alias nextgroup=sudoersUserAlias skipwhite skipnl 331cd871b5SBram Moolenaarsyn keyword sudoersAlias Host_Alias nextgroup=sudoersHostAlias skipwhite skipnl 341cd871b5SBram Moolenaarsyn keyword sudoersAlias Cmnd_Alias nextgroup=sudoersCmndAlias skipwhite skipnl 351cd871b5SBram Moolenaar 361cd871b5SBram Moolenaarsyn match sudoersUserAlias contained '\<\u[A-Z0-9_]*\>' nextgroup=sudoersUserAliasEquals skipwhite skipnl 371cd871b5SBram Moolenaarsyn match sudoersUserNameInList contained '\<\l\+\>' nextgroup=@sudoersUserList skipwhite skipnl 381cd871b5SBram Moolenaarsyn match sudoersUIDInList contained '#\d\+\>' nextgroup=@sudoersUserList skipwhite skipnl 391cd871b5SBram Moolenaarsyn match sudoersGroupInList contained '%\l\+\>' nextgroup=@sudoersUserList skipwhite skipnl 401cd871b5SBram Moolenaarsyn match sudoersUserNetgroupInList contained '+\l\+\>' nextgroup=@sudoersUserList skipwhite skipnl 411cd871b5SBram Moolenaarsyn match sudoersUserAliasInList contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersUserList skipwhite skipnl 421cd871b5SBram Moolenaar 431cd871b5SBram Moolenaarsyn match sudoersUserName contained '\<\l\+\>' nextgroup=@sudoersParameter skipwhite skipnl 441cd871b5SBram Moolenaarsyn match sudoersUID contained '#\d\+\>' nextgroup=@sudoersParameter skipwhite skipnl 451cd871b5SBram Moolenaarsyn match sudoersGroup contained '%\l\+\>' nextgroup=@sudoersParameter skipwhite skipnl 461cd871b5SBram Moolenaarsyn match sudoersUserNetgroup contained '+\l\+\>' nextgroup=@sudoersParameter skipwhite skipnl 471cd871b5SBram Moolenaarsyn match sudoersUserAliasRef contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersParameter skipwhite skipnl 481cd871b5SBram Moolenaar 491cd871b5SBram Moolenaarsyn match sudoersUserNameInSpec contained '\<\l\+\>' nextgroup=@sudoersUserSpec skipwhite skipnl 501cd871b5SBram Moolenaarsyn match sudoersUIDInSpec contained '#\d\+\>' nextgroup=@sudoersUserSpec skipwhite skipnl 511cd871b5SBram Moolenaarsyn match sudoersGroupInSpec contained '%\l\+\>' nextgroup=@sudoersUserSpec skipwhite skipnl 521cd871b5SBram Moolenaarsyn match sudoersUserNetgroupInSpec contained '+\l\+\>' nextgroup=@sudoersUserSpec skipwhite skipnl 531cd871b5SBram Moolenaarsyn match sudoersUserAliasInSpec contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersUserSpec skipwhite skipnl 541cd871b5SBram Moolenaar 551cd871b5SBram Moolenaarsyn match sudoersUserNameInRunas contained '\<\l\+\>' nextgroup=@sudoersUserRunas skipwhite skipnl 561cd871b5SBram Moolenaarsyn match sudoersUIDInRunas contained '#\d\+\>' nextgroup=@sudoersUserRunas skipwhite skipnl 571cd871b5SBram Moolenaarsyn match sudoersGroupInRunas contained '%\l\+\>' nextgroup=@sudoersUserRunas skipwhite skipnl 581cd871b5SBram Moolenaarsyn match sudoersUserNetgroupInRunas contained '+\l\+\>' nextgroup=@sudoersUserRunas skipwhite skipnl 591cd871b5SBram Moolenaarsyn match sudoersUserAliasInRunas contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersUserRunas skipwhite skipnl 601cd871b5SBram Moolenaar 611cd871b5SBram Moolenaarsyn match sudoersHostAlias contained '\<\u[A-Z0-9_]*\>' nextgroup=sudoersHostAliasEquals skipwhite skipnl 621cd871b5SBram Moolenaarsyn match sudoersHostNameInList contained '\<\l\+\>' nextgroup=@sudoersHostList skipwhite skipnl 631cd871b5SBram Moolenaarsyn match sudoersIPAddrInList contained '\%(\d\{1,3}\.\)\{3}\d\{1,3}' nextgroup=@sudoersHostList skipwhite skipnl 641cd871b5SBram Moolenaarsyn match sudoersNetworkInList contained '\%(\d\{1,3}\.\)\{3}\d\{1,3}\%(/\%(\%(\d\{1,3}\.\)\{3}\d\{1,3}\|\d\+\)\)\=' nextgroup=@sudoersHostList skipwhite skipnl 651cd871b5SBram Moolenaarsyn match sudoersHostNetgroupInList contained '+\l\+\>' nextgroup=@sudoersHostList skipwhite skipnl 661cd871b5SBram Moolenaarsyn match sudoersHostAliasInList contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersHostList skipwhite skipnl 671cd871b5SBram Moolenaar 681cd871b5SBram Moolenaarsyn match sudoersHostName contained '\<\l\+\>' nextgroup=@sudoersParameter skipwhite skipnl 691cd871b5SBram Moolenaarsyn match sudoersIPAddr contained '\%(\d\{1,3}\.\)\{3}\d\{1,3}' nextgroup=@sudoersParameter skipwhite skipnl 701cd871b5SBram Moolenaarsyn match sudoersNetwork contained '\%(\d\{1,3}\.\)\{3}\d\{1,3}\%(/\%(\%(\d\{1,3}\.\)\{3}\d\{1,3}\|\d\+\)\)\=' nextgroup=@sudoersParameter skipwhite skipnl 711cd871b5SBram Moolenaarsyn match sudoersHostNetgroup contained '+\l\+\>' nextgroup=@sudoersParameter skipwhite skipnl 721cd871b5SBram Moolenaarsyn match sudoersHostAliasRef contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersParameter skipwhite skipnl 731cd871b5SBram Moolenaar 741cd871b5SBram Moolenaarsyn match sudoersHostNameInSpec contained '\<\l\+\>' nextgroup=@sudoersHostSpec skipwhite skipnl 751cd871b5SBram Moolenaarsyn match sudoersIPAddrInSpec contained '\%(\d\{1,3}\.\)\{3}\d\{1,3}' nextgroup=@sudoersHostSpec skipwhite skipnl 761cd871b5SBram Moolenaarsyn match sudoersNetworkInSpec contained '\%(\d\{1,3}\.\)\{3}\d\{1,3}\%(/\%(\%(\d\{1,3}\.\)\{3}\d\{1,3}\|\d\+\)\)\=' nextgroup=@sudoersHostSpec skipwhite skipnl 771cd871b5SBram Moolenaarsyn match sudoersHostNetgroupInSpec contained '+\l\+\>' nextgroup=@sudoersHostSpec skipwhite skipnl 781cd871b5SBram Moolenaarsyn match sudoersHostAliasInSpec contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersHostSpec skipwhite skipnl 791cd871b5SBram Moolenaar 801cd871b5SBram Moolenaarsyn match sudoersCmndAlias contained '\<\u[A-Z0-9_]*\>' nextgroup=sudoersCmndAliasEquals skipwhite skipnl 811cd871b5SBram Moolenaarsyn match sudoersCmndNameInList contained '[^[:space:],:=\\]\+\%(\\[[:space:],:=\\][^[:space:],:=\\]*\)*' nextgroup=@sudoersCmndList,sudoersCommandEmpty,sudoersCommandArgs skipwhite 821cd871b5SBram Moolenaarsyn match sudoersCmndAliasInList contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersCmndList skipwhite skipnl 831cd871b5SBram Moolenaar 841cd871b5SBram Moolenaarsyn match sudoersCmndNameInSpec contained '[^[:space:],:=\\]\+\%(\\[[:space:],:=\\][^[:space:],:=\\]*\)*' nextgroup=@sudoersCmndSpec,sudoersCommandEmptyInSpec,sudoersCommandArgsInSpec skipwhite 851cd871b5SBram Moolenaarsyn match sudoersCmndAliasInSpec contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersCmndSpec skipwhite skipnl 861cd871b5SBram Moolenaar 871cd871b5SBram Moolenaarsyn match sudoersUserAliasEquals contained '=' nextgroup=@sudoersUserInList skipwhite skipnl 881cd871b5SBram Moolenaarsyn match sudoersUserListComma contained ',' nextgroup=@sudoersUserInList skipwhite skipnl 891cd871b5SBram Moolenaarsyn match sudoersUserListColon contained ':' nextgroup=sudoersUserAlias skipwhite skipnl 901cd871b5SBram Moolenaarsyn cluster sudoersUserList contains=sudoersUserListComma,sudoersUserListColon 911cd871b5SBram Moolenaar 921cd871b5SBram Moolenaarsyn match sudoersUserSpecComma contained ',' nextgroup=@sudoersUserInSpec skipwhite skipnl 931cd871b5SBram Moolenaarsyn cluster sudoersUserSpec contains=sudoersUserSpecComma,@sudoersHostInSpec 941cd871b5SBram Moolenaar 951cd871b5SBram Moolenaarsyn match sudoersUserRunasBegin contained '(' nextgroup=@sudoersUserInRunas skipwhite skipnl 961cd871b5SBram Moolenaarsyn match sudoersUserRunasComma contained ',' nextgroup=@sudoersUserInRunas skipwhite skipnl 971cd871b5SBram Moolenaarsyn match sudoersUserRunasEnd contained ')' nextgroup=sudoersPASSWD,@sudoersCmndInSpec skipwhite skipnl 981cd871b5SBram Moolenaarsyn cluster sudoersUserRunas contains=sudoersUserRunasComma,@sudoersUserInRunas,sudoersUserRunasEnd 991cd871b5SBram Moolenaar 1001cd871b5SBram Moolenaar 1011cd871b5SBram Moolenaarsyn match sudoersHostAliasEquals contained '=' nextgroup=@sudoersHostInList skipwhite skipnl 1021cd871b5SBram Moolenaarsyn match sudoersHostListComma contained ',' nextgroup=@sudoersHostInList skipwhite skipnl 1031cd871b5SBram Moolenaarsyn match sudoersHostListColon contained ':' nextgroup=sudoersHostAlias skipwhite skipnl 1041cd871b5SBram Moolenaarsyn cluster sudoersHostList contains=sudoersHostListComma,sudoersHostListColon 1051cd871b5SBram Moolenaar 1061cd871b5SBram Moolenaarsyn match sudoersHostSpecComma contained ',' nextgroup=@sudoersHostInSpec skipwhite skipnl 1071cd871b5SBram Moolenaarsyn cluster sudoersHostSpec contains=sudoersHostSpecComma,sudoersSpecEquals 1081cd871b5SBram Moolenaar 1091cd871b5SBram Moolenaar 1101cd871b5SBram Moolenaarsyn match sudoersCmndAliasEquals contained '=' nextgroup=@sudoersCmndInList skipwhite skipnl 1111cd871b5SBram Moolenaarsyn match sudoersCmndListComma contained ',' nextgroup=@sudoersCmndInList skipwhite skipnl 1121cd871b5SBram Moolenaarsyn match sudoersCmndListColon contained ':' nextgroup=sudoersCmndAlias skipwhite skipnl 1131cd871b5SBram Moolenaarsyn cluster sudoersCmndList contains=sudoersCmndListComma,sudoersCmndListColon 1141cd871b5SBram Moolenaar 1151cd871b5SBram Moolenaarsyn match sudoersCmndSpecComma contained ',' nextgroup=@sudoersCmndSpecList skipwhite skipnl 1161cd871b5SBram Moolenaarsyn match sudoersCmndSpecColon contained ':' nextgroup=@sudoersUserInSpec skipwhite skipnl 1171cd871b5SBram Moolenaarsyn cluster sudoersCmndSpec contains=sudoersCmndSpecComma,sudoersCmndSpecColon 1181cd871b5SBram Moolenaar 1191cd871b5SBram Moolenaarsyn cluster sudoersUserInList contains=sudoersUserNegationInList,sudoersUserNameInList,sudoersUIDInList,sudoersGroupInList,sudoersUserNetgroupInList,sudoersUserAliasInList 1201cd871b5SBram Moolenaarsyn cluster sudoersHostInList contains=sudoersHostNegationInList,sudoersHostNameInList,sudoersIPAddrInList,sudoersNetworkInList,sudoersHostNetgroupInList,sudoersHostAliasInList 1211cd871b5SBram Moolenaarsyn cluster sudoersCmndInList contains=sudoersCmndNegationInList,sudoersCmndNameInList,sudoersCmndAliasInList 1221cd871b5SBram Moolenaar 1231cd871b5SBram Moolenaarsyn cluster sudoersUser contains=sudoersUserNegation,sudoersUserName,sudoersUID,sudoersGroup,sudoersUserNetgroup,sudoersUserAliasRef 1241cd871b5SBram Moolenaarsyn cluster sudoersHost contains=sudoersHostNegation,sudoersHostName,sudoersIPAddr,sudoersNetwork,sudoersHostNetgroup,sudoersHostAliasRef 1251cd871b5SBram Moolenaar 1261cd871b5SBram Moolenaarsyn cluster sudoersUserInSpec contains=sudoersUserNegationInSpec,sudoersUserNameInSpec,sudoersUIDInSpec,sudoersGroupInSpec,sudoersUserNetgroupInSpec,sudoersUserAliasInSpec 1271cd871b5SBram Moolenaarsyn cluster sudoersHostInSpec contains=sudoersHostNegationInSpec,sudoersHostNameInSpec,sudoersIPAddrInSpec,sudoersNetworkInSpec,sudoersHostNetgroupInSpec,sudoersHostAliasInSpec 1281cd871b5SBram Moolenaarsyn cluster sudoersUserInRunas contains=sudoersUserNegationInRunas,sudoersUserNameInRunas,sudoersUIDInRunas,sudoersGroupInRunas,sudoersUserNetgroupInRunas,sudoersUserAliasInRunas 1291cd871b5SBram Moolenaarsyn cluster sudoersCmndInSpec contains=sudoersCmndNegationInSpec,sudoersCmndNameInSpec,sudoersCmndAliasInSpec 1301cd871b5SBram Moolenaar 1311cd871b5SBram Moolenaarsyn match sudoersUserNegationInList contained '!\+' nextgroup=@sudoersUserInList skipwhite skipnl 1321cd871b5SBram Moolenaarsyn match sudoersHostNegationInList contained '!\+' nextgroup=@sudoersHostInList skipwhite skipnl 1331cd871b5SBram Moolenaarsyn match sudoersCmndNegationInList contained '!\+' nextgroup=@sudoersCmndInList skipwhite skipnl 1341cd871b5SBram Moolenaar 1351cd871b5SBram Moolenaarsyn match sudoersUserNegation contained '!\+' nextgroup=@sudoersUser skipwhite skipnl 1361cd871b5SBram Moolenaarsyn match sudoersHostNegation contained '!\+' nextgroup=@sudoersHost skipwhite skipnl 1371cd871b5SBram Moolenaar 1381cd871b5SBram Moolenaarsyn match sudoersUserNegationInSpec contained '!\+' nextgroup=@sudoersUserInSpec skipwhite skipnl 1391cd871b5SBram Moolenaarsyn match sudoersHostNegationInSpec contained '!\+' nextgroup=@sudoersHostInSpec skipwhite skipnl 1401cd871b5SBram Moolenaarsyn match sudoersUserNegationInRunas contained '!\+' nextgroup=@sudoersUserInRunas skipwhite skipnl 1411cd871b5SBram Moolenaarsyn match sudoersCmndNegationInSpec contained '!\+' nextgroup=@sudoersCmndInSpec skipwhite skipnl 1421cd871b5SBram Moolenaar 1431cd871b5SBram Moolenaarsyn match sudoersCommandArgs contained '[^[:space:],:=\\]\+\%(\\[[:space:],:=\\][^[:space:],:=\\]*\)*' nextgroup=sudoersCommandArgs,@sudoersCmndList skipwhite 1441cd871b5SBram Moolenaarsyn match sudoersCommandEmpty contained '""' nextgroup=@sudoersCmndList skipwhite skipnl 1451cd871b5SBram Moolenaar 1461cd871b5SBram Moolenaarsyn match sudoersCommandArgsInSpec contained '[^[:space:],:=\\]\+\%(\\[[:space:],:=\\][^[:space:],:=\\]*\)*' nextgroup=sudoersCommandArgsInSpec,@sudoersCmndSpec skipwhite 1471cd871b5SBram Moolenaarsyn match sudoersCommandEmptyInSpec contained '""' nextgroup=@sudoersCmndSpec skipwhite skipnl 1481cd871b5SBram Moolenaar 1491cd871b5SBram Moolenaarsyn keyword sudoersDefaultEntry Defaults nextgroup=sudoersDefaultTypeAt,sudoersDefaultTypeColon,sudoersDefaultTypeGreaterThan,@sudoersParameter skipwhite skipnl 1501cd871b5SBram Moolenaarsyn match sudoersDefaultTypeAt contained '@' nextgroup=@sudoersHost skipwhite skipnl 1511cd871b5SBram Moolenaarsyn match sudoersDefaultTypeColon contained ':' nextgroup=@sudoersUser skipwhite skipnl 1521cd871b5SBram Moolenaarsyn match sudoersDefaultTypeGreaterThan contained '>' nextgroup=@sudoersUser skipwhite skipnl 1531cd871b5SBram Moolenaar 1541cd871b5SBram Moolenaar" TODO: could also deal with special characters here 15542eeac35SBram Moolenaarsyn match sudoersBooleanParameter contained '!' nextgroup=sudoersBooleanParameter skipwhite skipnl 1560065402fSBram Moolenaarsyn keyword sudoersBooleanParameter contained skipwhite skipnl 157fc65cabbSBram Moolenaar \ always_query_group_plugin 1580065402fSBram Moolenaar \ always_set_home 1590065402fSBram Moolenaar \ authenticate 1600065402fSBram Moolenaar \ closefrom_override 161fc65cabbSBram Moolenaar \ compress_io 1620065402fSBram Moolenaar \ env_editor 1630065402fSBram Moolenaar \ env_reset 164fc65cabbSBram Moolenaar \ exec_background 165fc65cabbSBram Moolenaar \ fast_glob 1660065402fSBram Moolenaar \ fqdn 167fc65cabbSBram Moolenaar \ ignore_audit_errors 1680065402fSBram Moolenaar \ ignore_dot 169fc65cabbSBram Moolenaar \ ignore_iolog_errors 1700065402fSBram Moolenaar \ ignore_local_sudoers 171fc65cabbSBram Moolenaar \ ignore_logfile_errors 172fc65cabbSBram Moolenaar \ ignore_unknown_defaults 1730065402fSBram Moolenaar \ insults 1740065402fSBram Moolenaar \ log_host 175fc65cabbSBram Moolenaar \ log_input 176fc65cabbSBram Moolenaar \ log_output 1770065402fSBram Moolenaar \ log_year 1780065402fSBram Moolenaar \ long_otp_prompt 179fc65cabbSBram Moolenaar \ mail_all_cmnds 1800065402fSBram Moolenaar \ mail_always 1810065402fSBram Moolenaar \ mail_badpass 1820065402fSBram Moolenaar \ mail_no_host 1830065402fSBram Moolenaar \ mail_no_perms 1840065402fSBram Moolenaar \ mail_no_user 185fc65cabbSBram Moolenaar \ match_group_by_gid 186fc65cabbSBram Moolenaar \ netgroup_tuple 1870065402fSBram Moolenaar \ noexec 188fc65cabbSBram Moolenaar \ pam_session 189fc65cabbSBram Moolenaar \ pam_setcred 1900065402fSBram Moolenaar \ passprompt_override 191fc65cabbSBram Moolenaar \ path_info 1920065402fSBram Moolenaar \ preserve_groups 193fc65cabbSBram Moolenaar \ pwfeedback 1940065402fSBram Moolenaar \ requiretty 1950065402fSBram Moolenaar \ root_sudo 1960065402fSBram Moolenaar \ rootpw 1970065402fSBram Moolenaar \ runaspw 1980065402fSBram Moolenaar \ set_home 1990065402fSBram Moolenaar \ set_logname 200fc65cabbSBram Moolenaar \ set_utmp 2010065402fSBram Moolenaar \ setenv 2020065402fSBram Moolenaar \ shell_noargs 2030065402fSBram Moolenaar \ stay_setuid 204fc65cabbSBram Moolenaar \ sudoedit_checkdir 205*dad4473fSBram Moolenaar \ sudoedit_follow 206fc65cabbSBram Moolenaar \ syslog_pid 2070065402fSBram Moolenaar \ targetpw 2080065402fSBram Moolenaar \ tty_tickets 209fc65cabbSBram Moolenaar \ umask_override 210fc65cabbSBram Moolenaar \ use_netgroups 211fc65cabbSBram Moolenaar \ use_pty 212fc65cabbSBram Moolenaar \ user_command_timeouts 213fc65cabbSBram Moolenaar \ utmp_runas 2140065402fSBram Moolenaar \ visiblepw 2150065402fSBram Moolenaar 2160065402fSBram Moolenaarsyn keyword sudoersIntegerParameter contained 2170065402fSBram Moolenaar \ nextgroup=sudoersIntegerParameterEquals 2180065402fSBram Moolenaar \ skipwhite skipnl 2190065402fSBram Moolenaar \ closefrom 220fc65cabbSBram Moolenaar \ command_timeout 2210065402fSBram Moolenaar \ loglinelen 222fc65cabbSBram Moolenaar \ maxseq 2230065402fSBram Moolenaar \ passwd_timeout 224fc65cabbSBram Moolenaar \ passwd_tries 225fc65cabbSBram Moolenaar \ syslog_maxlen 2260065402fSBram Moolenaar \ timestamp_timeout 2270065402fSBram Moolenaar \ umask 2280065402fSBram Moolenaar 2290065402fSBram Moolenaarsyn keyword sudoersStringParameter contained 2300065402fSBram Moolenaar \ nextgroup=sudoersStringParameterEquals 2310065402fSBram Moolenaar \ skipwhite skipnl 232fc65cabbSBram Moolenaar \ askpass 2330065402fSBram Moolenaar \ badpass_message 2340065402fSBram Moolenaar \ editor 2350065402fSBram Moolenaar \ env_file 2360065402fSBram Moolenaar \ exempt_group 237fc65cabbSBram Moolenaar \ fdexec 238fc65cabbSBram Moolenaar \ group_plugin 239fc65cabbSBram Moolenaar \ iolog_dir 240fc65cabbSBram Moolenaar \ iolog_file 241fc65cabbSBram Moolenaar \ iolog_flush 242fc65cabbSBram Moolenaar \ iolog_group 243fc65cabbSBram Moolenaar \ iolog_mode 244fc65cabbSBram Moolenaar \ iolog_user 2450065402fSBram Moolenaar \ lecture 2460065402fSBram Moolenaar \ lecture_file 247fc65cabbSBram Moolenaar \ lecture_status_dir 2480065402fSBram Moolenaar \ listpw 2490065402fSBram Moolenaar \ logfile 2500065402fSBram Moolenaar \ mailerflags 2510065402fSBram Moolenaar \ mailerpath 2520065402fSBram Moolenaar \ mailfrom 253fc65cabbSBram Moolenaar \ mailsub 2540065402fSBram Moolenaar \ mailto 255fc65cabbSBram Moolenaar \ noexec_file 256fc65cabbSBram Moolenaar \ pam_login_service 257fc65cabbSBram Moolenaar \ pam_service 258fc65cabbSBram Moolenaar \ passprompt 259fc65cabbSBram Moolenaar \ restricted_env_file 260fc65cabbSBram Moolenaar \ role 261fc65cabbSBram Moolenaar \ runas_default 2620065402fSBram Moolenaar \ secure_path 263fc65cabbSBram Moolenaar \ sudoers_locale 2640065402fSBram Moolenaar \ syslog 265fc65cabbSBram Moolenaar \ syslog_badpri 266fc65cabbSBram Moolenaar \ syslog_goodpri 267fc65cabbSBram Moolenaar \ timestamp_type 268fc65cabbSBram Moolenaar \ timestampdir 269fc65cabbSBram Moolenaar \ timestampowner 270fc65cabbSBram Moolenaar \ type 2710065402fSBram Moolenaar \ verifypw 2720065402fSBram Moolenaar 2730065402fSBram Moolenaarsyn keyword sudoersListParameter contained 2740065402fSBram Moolenaar \ nextgroup=sudoersListParameterEquals 2750065402fSBram Moolenaar \ skipwhite skipnl 2760065402fSBram Moolenaar \ env_check 2770065402fSBram Moolenaar \ env_delete 2780065402fSBram Moolenaar \ env_keep 2791cd871b5SBram Moolenaar 2801cd871b5SBram Moolenaarsyn match sudoersParameterListComma contained ',' nextgroup=@sudoersParameter skipwhite skipnl 2811cd871b5SBram Moolenaar 282446cb837SBram Moolenaarsyn cluster sudoersParameter contains=sudoersBooleanParameter,sudoersIntegerParameter,sudoersStringParameter,sudoersListParameter 2831cd871b5SBram Moolenaar 2841cd871b5SBram Moolenaarsyn match sudoersIntegerParameterEquals contained '[+-]\==' nextgroup=sudoersIntegerValue skipwhite skipnl 2851cd871b5SBram Moolenaarsyn match sudoersStringParameterEquals contained '[+-]\==' nextgroup=sudoersStringValue skipwhite skipnl 2861cd871b5SBram Moolenaarsyn match sudoersListParameterEquals contained '[+-]\==' nextgroup=sudoersListValue skipwhite skipnl 2871cd871b5SBram Moolenaar 2881cd871b5SBram Moolenaarsyn match sudoersIntegerValue contained '\d\+' nextgroup=sudoersParameterListComma skipwhite skipnl 2891cd871b5SBram Moolenaarsyn match sudoersStringValue contained '[^[:space:],:=\\]*\%(\\[[:space:],:=\\][^[:space:],:=\\]*\)*' nextgroup=sudoersParameterListComma skipwhite skipnl 2901cd871b5SBram Moolenaarsyn region sudoersStringValue contained start=+"+ skip=+\\"+ end=+"+ nextgroup=sudoersParameterListComma skipwhite skipnl 2911cd871b5SBram Moolenaarsyn match sudoersListValue contained '[^[:space:],:=\\]*\%(\\[[:space:],:=\\][^[:space:],:=\\]*\)*' nextgroup=sudoersParameterListComma skipwhite skipnl 2921cd871b5SBram Moolenaarsyn region sudoersListValue contained start=+"+ skip=+\\"+ end=+"+ nextgroup=sudoersParameterListComma skipwhite skipnl 2931cd871b5SBram Moolenaar 2941cd871b5SBram Moolenaarsyn match sudoersPASSWD contained '\%(NO\)\=PASSWD:' nextgroup=@sudoersCmndInSpec skipwhite 2951cd871b5SBram Moolenaar 29642eeac35SBram Moolenaarhi def link sudoersSpecEquals Operator 29742eeac35SBram Moolenaarhi def link sudoersTodo Todo 29842eeac35SBram Moolenaarhi def link sudoersComment Comment 29942eeac35SBram Moolenaarhi def link sudoersAlias Keyword 30042eeac35SBram Moolenaarhi def link sudoersUserAlias Identifier 30142eeac35SBram Moolenaarhi def link sudoersUserNameInList String 30242eeac35SBram Moolenaarhi def link sudoersUIDInList Number 30342eeac35SBram Moolenaarhi def link sudoersGroupInList PreProc 30442eeac35SBram Moolenaarhi def link sudoersUserNetgroupInList PreProc 30542eeac35SBram Moolenaarhi def link sudoersUserAliasInList PreProc 30642eeac35SBram Moolenaarhi def link sudoersUserName String 30742eeac35SBram Moolenaarhi def link sudoersUID Number 30842eeac35SBram Moolenaarhi def link sudoersGroup PreProc 30942eeac35SBram Moolenaarhi def link sudoersUserNetgroup PreProc 31042eeac35SBram Moolenaarhi def link sudoersUserAliasRef PreProc 31142eeac35SBram Moolenaarhi def link sudoersUserNameInSpec String 31242eeac35SBram Moolenaarhi def link sudoersUIDInSpec Number 31342eeac35SBram Moolenaarhi def link sudoersGroupInSpec PreProc 31442eeac35SBram Moolenaarhi def link sudoersUserNetgroupInSpec PreProc 31542eeac35SBram Moolenaarhi def link sudoersUserAliasInSpec PreProc 31642eeac35SBram Moolenaarhi def link sudoersUserNameInRunas String 31742eeac35SBram Moolenaarhi def link sudoersUIDInRunas Number 31842eeac35SBram Moolenaarhi def link sudoersGroupInRunas PreProc 31942eeac35SBram Moolenaarhi def link sudoersUserNetgroupInRunas PreProc 32042eeac35SBram Moolenaarhi def link sudoersUserAliasInRunas PreProc 32142eeac35SBram Moolenaarhi def link sudoersHostAlias Identifier 32242eeac35SBram Moolenaarhi def link sudoersHostNameInList String 32342eeac35SBram Moolenaarhi def link sudoersIPAddrInList Number 32442eeac35SBram Moolenaarhi def link sudoersNetworkInList Number 32542eeac35SBram Moolenaarhi def link sudoersHostNetgroupInList PreProc 32642eeac35SBram Moolenaarhi def link sudoersHostAliasInList PreProc 32742eeac35SBram Moolenaarhi def link sudoersHostName String 32842eeac35SBram Moolenaarhi def link sudoersIPAddr Number 32942eeac35SBram Moolenaarhi def link sudoersNetwork Number 33042eeac35SBram Moolenaarhi def link sudoersHostNetgroup PreProc 33142eeac35SBram Moolenaarhi def link sudoersHostAliasRef PreProc 33242eeac35SBram Moolenaarhi def link sudoersHostNameInSpec String 33342eeac35SBram Moolenaarhi def link sudoersIPAddrInSpec Number 33442eeac35SBram Moolenaarhi def link sudoersNetworkInSpec Number 33542eeac35SBram Moolenaarhi def link sudoersHostNetgroupInSpec PreProc 33642eeac35SBram Moolenaarhi def link sudoersHostAliasInSpec PreProc 33742eeac35SBram Moolenaarhi def link sudoersCmndAlias Identifier 33842eeac35SBram Moolenaarhi def link sudoersCmndNameInList String 33942eeac35SBram Moolenaarhi def link sudoersCmndAliasInList PreProc 34042eeac35SBram Moolenaarhi def link sudoersCmndNameInSpec String 34142eeac35SBram Moolenaarhi def link sudoersCmndAliasInSpec PreProc 34242eeac35SBram Moolenaarhi def link sudoersUserAliasEquals Operator 34342eeac35SBram Moolenaarhi def link sudoersUserListComma Delimiter 34442eeac35SBram Moolenaarhi def link sudoersUserListColon Delimiter 34542eeac35SBram Moolenaarhi def link sudoersUserSpecComma Delimiter 34642eeac35SBram Moolenaarhi def link sudoersUserRunasBegin Delimiter 34742eeac35SBram Moolenaarhi def link sudoersUserRunasComma Delimiter 34842eeac35SBram Moolenaarhi def link sudoersUserRunasEnd Delimiter 34942eeac35SBram Moolenaarhi def link sudoersHostAliasEquals Operator 35042eeac35SBram Moolenaarhi def link sudoersHostListComma Delimiter 35142eeac35SBram Moolenaarhi def link sudoersHostListColon Delimiter 35242eeac35SBram Moolenaarhi def link sudoersHostSpecComma Delimiter 35342eeac35SBram Moolenaarhi def link sudoersCmndAliasEquals Operator 35442eeac35SBram Moolenaarhi def link sudoersCmndListComma Delimiter 35542eeac35SBram Moolenaarhi def link sudoersCmndListColon Delimiter 35642eeac35SBram Moolenaarhi def link sudoersCmndSpecComma Delimiter 35742eeac35SBram Moolenaarhi def link sudoersCmndSpecColon Delimiter 35842eeac35SBram Moolenaarhi def link sudoersUserNegationInList Operator 35942eeac35SBram Moolenaarhi def link sudoersHostNegationInList Operator 36042eeac35SBram Moolenaarhi def link sudoersCmndNegationInList Operator 36142eeac35SBram Moolenaarhi def link sudoersUserNegation Operator 36242eeac35SBram Moolenaarhi def link sudoersHostNegation Operator 36342eeac35SBram Moolenaarhi def link sudoersUserNegationInSpec Operator 36442eeac35SBram Moolenaarhi def link sudoersHostNegationInSpec Operator 36542eeac35SBram Moolenaarhi def link sudoersUserNegationInRunas Operator 36642eeac35SBram Moolenaarhi def link sudoersCmndNegationInSpec Operator 36742eeac35SBram Moolenaarhi def link sudoersCommandArgs String 36842eeac35SBram Moolenaarhi def link sudoersCommandEmpty Special 36942eeac35SBram Moolenaarhi def link sudoersDefaultEntry Keyword 37042eeac35SBram Moolenaarhi def link sudoersDefaultTypeAt Special 37142eeac35SBram Moolenaarhi def link sudoersDefaultTypeColon Special 37242eeac35SBram Moolenaarhi def link sudoersDefaultTypeGreaterThan Special 37342eeac35SBram Moolenaarhi def link sudoersBooleanParameter Identifier 37442eeac35SBram Moolenaarhi def link sudoersIntegerParameter Identifier 37542eeac35SBram Moolenaarhi def link sudoersStringParameter Identifier 37642eeac35SBram Moolenaarhi def link sudoersListParameter Identifier 37742eeac35SBram Moolenaarhi def link sudoersParameterListComma Delimiter 37842eeac35SBram Moolenaarhi def link sudoersIntegerParameterEquals Operator 37942eeac35SBram Moolenaarhi def link sudoersStringParameterEquals Operator 38042eeac35SBram Moolenaarhi def link sudoersListParameterEquals Operator 38142eeac35SBram Moolenaarhi def link sudoersIntegerValue Number 38242eeac35SBram Moolenaarhi def link sudoersStringValue String 38342eeac35SBram Moolenaarhi def link sudoersListValue String 38442eeac35SBram Moolenaarhi def link sudoersPASSWD Special 385a9604e61SBram Moolenaarhi def link sudoersInclude Statement 3861cd871b5SBram Moolenaar 3871cd871b5SBram Moolenaarlet b:current_syntax = "sudoers" 3881cd871b5SBram Moolenaar 38942eeac35SBram Moolenaarlet &cpo = s:cpo_save 39042eeac35SBram Moolenaarunlet s:cpo_save 391