如何用python程序在linux中添加用户

本文介绍了一款使用Python编写的Linux用户管理脚本,支持单个及批量创建用户,并设置了默认过期日期。该脚本利用了getpass、datetime和os等模块实现密码输入和系统调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本人初学python语言,最近写了一个为Linux系统添加用户的脚本,分单个添加,和批量添加。请同行多指教。

代码中用到的模块:

  getpass,datetime,os等。


 1 #! /usr/bin/env python
 2 # coding=utf-8
 3 
 4 #useradd script
 5 #-----------------------------------begin----------------------
 6 
 7 import os
 8 import datetime
 9 import time
10 import getpass
11 def open_pass():
12     ps_wenjian = open('/etc/passwd', 'r',encoding='utf-8')
13     wenjian = ps_wenjian.readlines()
14     ps_wenjian.close
15     return wenjian
16 date1 = datetime.datetime.strftime((datetime.datetime.now() + datetime.timedelta(days=365)), '%Y-%m-%d')
17 user_pass = {}
18 choose = input('Please choose batch create username or single create username (2:batch/1:single): ')
19 choose = int(choose)
20 if choose == 1:
21     while True:
22         open_pass()
23         username = input('please input username: ')
24         password = getpass.getpass('Please enter password: ')
25         for nn in open_pass():
26             nnn = nn.split(':', 1)[0]
27             if username != nnn:
28                 print('create username')
29                 os.system('useradd  %(name1)s -s /bin/bash' % {'name1':username})   #创建用户
30                 os.system('echo %(pass)s |passwd --stdin %(name1)s' % {'name1': username, 'pass':password})
31                 date1 = datetime.datetime.strftime((datetime.datetime.now() + datetime.timedelta(days=365)), '%Y-%m-%d')
32                 os.system('chage -E %(dat)s -W 10 -m 30 -M 365 %(name1)s' % {'name1': username, 'dat': date1})
33                 user_pass[username] = password  # 将创建的用户和其对应的密码添加到字典中
34                 print('Created user! and password add successfully.')
35                 break
36             else:
37                 print('username is exits,Please again enter username.')
38                 break
39         mm = input('Please yes or no (yes/no): ')
40         mm = mm.lower()
41         f = True
42         while f:
43             if mm == 'yes':
44                 print('Please continue create username.')
45                 f = False
46             else:
47                 break
48         if mm == 'no':
49             break
50 
51 elif choose == 2:
52     username_list = []
53     username_numb = input('Please enter create how many users : ')
54     f = True
55     while f:
56         username = input('please input username: ')
57         password = input("Please input password: ")
58         open_pass()
59         for nn1 in open_pass():
60             nnn1 = nn1.split(':', 1)[0]
61             if username == nnn1:
62                 print('username is exists,Please again enter !')
63                 break
64             else:
65                 f = False
66     for uu in range(1,int(username_numb)+1):
67         print('create username')
68         os.system('useradd %s%s -s /bin/bash' % (username, uu))   #创建用户
69         username_list.append('%s%s'%(username,uu))
70     for us in username_list:
71         os.system('echo %(pass)s |passwd --stdin %(name1)s' % {'name1': us, 'pass':password})
72         os.system('chage -E %(dat)s -W 10 -m 30 -M 365 %(name1)s' % {'name1': us, 'dat': date1})
73         user_pass[us] = password  # 将创建的用户和其对应的密码添加到字典中
74         print('Created user! and password add successfully.')
75 else:
76     print('only input 1 or 2')
77 
78 print(user_pass)
79 print('Created user! and password add successfully.')
View Code

 

转载于:https://www.cnblogs.com/feilu---python/p/8316620.html

<think>好的,用户的问题是在Linux环境中如何运行Python程序。我需要结合用户提供的引用内容,尤其是引用[1]和引用[2]中的信息。首先,用户提到的是Linux环境,所以应该涉及命令行操作。引用[1]里提到使用命令行运行Python脚本,比如python3 script.py,这应该是基本方法。然后,可能需要检查Python的安装情况,用python3 --version确认版本,因为很多Linux系统默认带有Python2,但用户可能用的是Python3。 接下来,用户可能遇到权限问题,比如脚本没有执行权限,这时候需要用chmod +x script.py来添加权限。另外,引用[2]中提到检查网络连接时用了ping命令,类似地,如果运行Web应用时无法访问localhost,可能需要检查端口监听情况,比如用netstat或者lsof命令。不过用户的问题是关于运行Python程序,这部分可能涉及虚拟环境的使用,比如venv或者pipenv,确保依赖管理正确。 另外,用户可能想知道如何让脚本在后台运行,比如使用nohup或者&,或者作为服务运行。还有,如果脚本需要定时执行,可以用cron来设置计划任务。还有可能提到使用shebang行,比如在脚本开头写#!/usr/bin/env python3,然后直接执行./script.py。需要分步骤解释这些方法,确保用户能逐步操作。同时要检查是否有常见问题,比如路径问题,环境变量问题,或者依赖包未安装,可以用pip3 install来安装需要的包。可能还需要提醒用户注意Python版本,避免2和3的混淆。最后,生成相关问题,可能涉及调试、虚拟环境、依赖管理、后台运行等。</think>在Linux环境中运行Python程序可通过以下步骤实现: ### 一、检查Python环境 1. 终端输入`python3 --version`确认已安装Python 3.x版本 2. 若未安装,使用包管理器安装: ```bash sudo apt update && sudo apt install python3 # Debian/Ubuntu sudo yum install python3 # CentOS/RHEL ``` ### 二、运行脚本的三种方式 1. **直接解释器调用**(推荐方法): ```bash python3 your_script.py ``` 这是CPython实现的标准执行方式[^1] 2. **添加可执行权限**: ```bash chmod +x your_script.py ./your_script.py ``` 需在脚本第一行添加shebang声明: ```python #!/usr/bin/env python3 ``` 3. **模块化运行**(适用于包结构): ```bash python3 -m your_module ``` ### 三、常见问题排查 1. **网络服务调试**: - 当运行Web应用时,使用`ping localhost`检测本地网络连通性[^2] - 检查端口占用:`netstat -tuln | grep :8000` 2. **依赖管理**: ```bash pip3 install -r requirements.txt ``` 3. **后台运行**: ```bash nohup python3 your_script.py > output.log 2>&1 & ``` ### 四、开发建议 1. 使用虚拟环境隔离依赖: ```bash python3 -m venv myenv source myenv/bin/activate ``` 2. 调试时可用`printf`代替`print`进行变量追踪[^3]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值