我有各种命令的列表su。所有命令都使用命令的完整路径su。命令可能有也可能没有用户名,可能有也可能没有选项-。
在用户名之后也可能有选项和参数,例如/usr/bin/su aa*or /bin/su - squid *或/bin/su - mapr -c "/usr/bin/hadoop fs -mkdir /user/*"。
这是我尝试过的方法,但在遇到麻烦之前我并没有走得太远。
for c in su_commands.all()[0:10]:
...: print(c.name)
...: m = re.search('/su\s*[-]\s*(\S*)', c.name).group(1)
...: print(m)
...:
//bin/su - audituser.gen
audituser.gen
//usr/bin/su - hradm
hradm
/apps/su - capital
capital
/apps/su - cscdm
cscdm
/apps/su - invadm
invadm
/bib/su sapbridg
Traceback (most recent call last):
File "/apps/sfo_rcecala/sfo_rcecala/env3/lib/python3.7/site-packages/IPython/core/interactiveshell.py", line 3331, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-39-788d11c0e2c2>", line 3, in <module>
m = re.search('/su\s*[-]\s*(\S*)', c.name).group(1)
AttributeError: 'NoneType' object has no attribute 'group'
我认为我的正则表达式中的 have[-]会使-可选的。
谢谢巴尔马尔。我已经更新了我的正则表达式,现在我更进一步了。
for c in su_commands.all()[0:10]:
...: print(c.name)
...: m = re.search('/su\s*\-?\s*(\S*)', c.name).group(1)
...: print(m)
...:
//bin/su - audituser.gen
audituser.gen
//usr/bin/su - hradm
hradm
/apps/su - capital
capital
/apps/su - cscdm
cscdm
/apps/su - invadm
invadm
/bib/su sapbridg
sapbridg
/bin//su - hdpapjpa
hdpapjpa
/bin/su oabifstg
/bin/su xxcconx
xxcconx
/bin/su xxswaadm
xxswaadm
但如您所见,我错过了用户oabifstg。
慕尼黑的夜晚无繁华
相关分类