WEB开发网
开发学院软件开发Python 面向系统管理员的 Python 阅读

面向系统管理员的 Python

 2008-09-30 12:43:53 来源:WEB开发网   
核心提示: 这个程序完成了下面的这些步骤: 获得要检查的进程的名称,并将其分配给一个变量(第 3 行),面向系统管理员的 Python(6), 运行 ps 命令,并将结果分配给一个列表(第 7 行到第 8 行), 如果您使用了 shadow 密码,那么这个脚本将无法工作(然而, 使用英语术语显示有关进

这个程序完成了下面的这些步骤:

获得要检查的进程的名称,并将其分配给一个变量(第 3 行)。

运行 ps 命令,并将结果分配给一个列表(第 7 行到第 8 行)。

使用英语术语显示有关进程的详细信息(第 11 行到第 16 行)。

其输出结果如清单 6 所示。

清单 6. 第三个示例的输出

$ python example3.py
Enter the name of the program to check: xterm
  Full path:     /usr/bin/xterm
  Owner:       knowltoj
  Process ID:     3220
  Parent process ID: 4308
  Time started:    16:51:46

示例 4:检查 userid 和密码以确保策略遵从性

对于任何系统管理员来说,安全管理都是其工作中非常关键的一部分。Python 使得这项工作更加简单,正如最后的示例所展示的。

清单 7 中的程序使用 pwd 模块来访问密码数据库。它检查 userid 和密码以确保安全策略遵从性(在这个示例中,userid 至少要有六个字符长,并且密码至少要有八个字符长)。

需要注意以下两点:

您必须拥有访问 /etc/passwd 的完全权限,这个程序才能正常工作。

如果您使用了 shadow 密码,那么这个脚本将无法工作(然而,Python 2.5 专门为完成这项工作提供了一个 spwd 模块)。

清单 7. 检查 userid 和密码以确保安全策略遵从性

import pwd
#initialize counters
erroruser = []
errorpass = []
#get password database
passwd_db = pwd.getpwall()
try:
  #check each user and password for validity
  for entry in passwd_db:
    username = entry[0]
    password = entry [1]
    if len(username) < 6:
      erroruser.append(username)
    if len(password) < 8:
      errorpass.append(username)
  #print results to screen
  print "The following users have an invalid userid (less than six characters):"
  for item in erroruser:
    print item
  print "nThe following users have invalid password(less than eight characters):"
  for item in errorpass:
    print item
except:
  print "There was a problem running the script."

上一页  1 2 3 4 5 6 7  下一页

Tags:面向 管理员

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接