得到linux平台上ssh或ftp使用者

2021-06-03 17:45:47 字數 1752 閱讀 4842

**

#! /usr/bin/env python

#-*- coding:utf-8 -*-

''' 概述:從/etc/passwd獲取系統使用者名稱,以列表形式返回

引數: f:獲取系統的ftp使用者名稱列表

s:獲取系統的ssh使用者名稱列表

說明: 判斷依據:ftp使用者是指使用者id大於等於500且沒有shell的使用者。

ssh使用者是指使用者id大於等於500且有shell的使用者。

create data: 2012-02-09

version: 1.0

author: 沈濤

'''import pwd

import sys

# 根據引數獲取系統使用者名稱

def getusername(usertype):

osuser = ""

passwd_db = pwd.getpwall()

for entry in passwd_db:

if entry[2] in xrange(500, 1000): # 手工新增的使用者, id介於500至1000之間

if usertype == 's':

if entry[-1].find('sh') >= 0:

username = entry[0]

osuser = osuser + username + ' '

if usertype == 'f':

if entry[-1].find('sh') < 0:

username = entry[0]

osuser = osuser + username + ' '

return osuser.strip().replace(' ',',')

def main():

helpmessage = '''\

從/etc/passwd獲取系統使用者名稱,以列表形式返回。

引數列表:

-f : 獲取系統裡ftp使用者的列表

-s : 獲取系統裡ssh使用者的列表

--version : 輸出版本號

--help : 輸出幫助資訊

''' version = '1.0'

# 獲取程式引數

if len(sys.argv) < 2:

print helpmessage

sys.exit()

if sys.argv[1].startswith('--'):

option = sys.argv[1][2:]

if option == 'version':

print 'version', version

sys.exit()

elif option == 'help':

print helpmessage

sys.exit()

else:

print '未知引數'

sys.exit()

elif sys.argv[1].startswith('-'):

option = sys.argv[1][1:]

if option in ('f', 's'):

return getusername(option)

else:

print '未知引數'

sys.exit()

if __name__ == "__main__":

main()

Linux平台上離線編譯安裝OpenCV

opencv是做視覺的標配,由於工作電腦不能連網,因此只能離線安裝。整個過程還比較順利,寫下整個過程,方便以後檢視。1.安裝cmake工具 解壓 tar zxvf cmake 3.10.0 rc4 linux x86 64.tar.gz 然後新增到使用者的環境變數下 vim bashrc,按下鍵盤的...

在linux平台上如何修改hostid

我們知道hostid作為一台主機的唯一標示符 hostname本身可能重複 而許多付費軟體通過鑑別hostid發給相關的license.hostname的修改較為簡單,只需要修改 etc sysconfig network中的hostname並重啟即可。hostid的修改就不那麼方便了,下面介紹一種...

Linux 平台上的軟體包管理

安裝,公升級和解除安裝應用軟體是影響使用者對作業系統評價的決定性因素之一。對於日漸流行的 gnu linux 作業系統,擁有簡潔強大的軟體包管理機制功不可沒。本文從基本的 rpm dpkg 命令列出發,以 rhel 和 ubuntu 為例,介紹典型 linux 系統中應用軟體的管理和使用。rpm d...