正则表达式解析sudoers User_Spec

时间:2014-10-05 06:40:59

标签: regex sudoers

以下是User_Spec示例:

AOPS          TRUSTED_HOSTS=(sysexec) ALL, (sqlexec) ALL : \
              A_HOSTS=(root) SMF, \
              (root) /usr/local/sbin/install-soft, \
              (root) /usr/sbin/umount /db/test, \
              (root) /usr/sbin/mount * : \
               master=(root) NOPASSWD:/usr/bin/rsh slave[0-9] netstat, \
              (root) /usr/bin/rsh syshost[a-z]*[0-9] hostname, \
              (root) PASSWD:/usr/bin/rsh syshost[a-z]*[0-9] stats*, \
              (root) /bin/netstat, \
              (root) /sbin/mount -o nosuid, \
              (root) NIS, \
              (sysuser) /usr/local/bin/cvs commit syblogin : \
              A_QA_HOSTS=(root) NOPASSWD:  /usr/bin/, !SU, !SHELLS :\
              slave10.example.com=(root) /proj/systems/database/sqlrefresh/bin/sqlrefresh.run

我想解析这个,输出应该是:

AOPS : TRUSTED_HOSTS        : sysexec : ALL
AOPS : TRUSTED_HOSTS        : sqlexec : ALL
AOPS :  A_HOSTS             : root    : SMF , /usr/local/sbin/install-soft, /usr/sbin/umount /db/test, /usr/sbin/mount *
AOPS :  A_HOSTS             : sysexec : /usr/bin/du 
AOPS :  master.example.com  : root    : /usr/bin/rsh slave[0-9] netstat , /usr/bin/rsh syshost[a-z]*[0-9] hostname , 
                                        /usr/bin/rsh syshost[a-z]*[0-9] stats*,/bin/netstat , /sbin/mount -o nosuid , NIS
AOPS :  master.example.com  : sysexec : /usr/local/bin/cvs commit syblogin
AOPS :  A_QA_HOSTS          : root    : /usr/bin/, !SU, !SHELLS 
AOPS :  slave10.example.com : root    : /db/run/refresh

两个主机别名之间的分隔符为:,但Tag_Spec也附加了冒号,如NOPASSWD:EXEC:。所以我不确定如何解析这个。

有关正则表达式的任何帮助吗?

0 个答案:

没有答案