以下是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:
。所以我不确定如何解析这个。
有关正则表达式的任何帮助吗?