在Linux系统中批量添加用户的 *** 作流程?

在Linux系统中批量添加用户的 *** 作流程?,第1张

一、为什么需要大批量添加用户

有时需要让几十个或更多的用户在主机上完成相同或相似的任务,比如想同时添加一堆的ftp 用户,这些ftp用户归属同一组,但不允许他们通过终端或远程登录服务器;有时可能为了教学,比如有50个学生,并且每个学生在服务器上有一个独立的用户名,能登录系统,并能管理自己的帐号或完成一些在自己权限下的作业;

二、批量用户添加流程;

批量添中用户流程是通过newusers 导入一个严格按照/etc/passwd 的书写格式来书写内容的文件来完成添加用户,然后通过chpasswd 导入用户密码文件来完成批量更新用户密码的过程;

1、newusers 成批添加用户的工具;

其用法很简单,newusers 后面直接跟一个文件;文件格式和/etc/passwd 的格式相同;

用户名1:x:UID:GID:用户说明:用户的家目录:所用SHELL

值得一提的是关于SHELL类型,查看主机上所有SHELL ,可以通过chsh 来查看;

[root@localhost beinan]# chsh --list

/bin/sh

/bin/bash

/sbin/nologin

/bin/ksh

/bin/tcsh

/bin/csh

/bin/zsh

其中除了/sbin/nologin ,其它类型的SHELL 都能登录系统;nologin 大多是虚拟用户用的SHELL ,也就是说虽然他是系统用户,但他并无登录系统的权限;如果您想添加这类用户,就把他的SHELL 设置成/sbin/nologin ,比如上面的例子;

2、chpasswd 批量更新用户口令工具;

chpasswd 工具是成批更新用户口令的工具,是把一个文件内容重新定向添加到/etc/shadow中;

chpasswd <文件>但文件的内容并不是没有约定的,必须以下面的格式来书写,并且不能有空行;

用户名:口令

用户名1:口令1

用户名2:口令2

三、批量添加用户实例;

1、首先我们创建用户文件和密码文件;

要创建包含新用户的文件userfile.txt ;另一个是为新添加的用户设置密码的userpwdfile.txt;

[root@localhost ~]# touch userfile.txt

[root@localhost ~]# touch userpwdfile.txt

然后用文本编辑器打开文件userfile.txt,添加如下内容;

win00:x:520:520::/home/win00:/sbin/nologin

win01:x:521:521::/home/win01:/sbin/nologin

win02:x:522:522::/home/win02:/sbin/nologin

userfile.txt 文件内容格式和 /etc/passwd 的格式是一样的,必须严格按照/etc/passwd 的格式来书写;上面所添加的用户都不能登录系统,但完全能用于ftp登录,但您得在相应ftp服务器的配置文件中打开让本地用户有读写权限;如果您想让上面的部份用户可以登录系统,可以把SHELL类似改一改,比如改成/bin/bash ;

再来书写新增用户的密码文件userpwdfile.txt内容;这个文件的内容中的用户名要与 userfile.txt用户名相同;也就是先添加了win00到win02的用户,现在要为这些用户更新密码;比如下面的;

win00:123456

win01:654321

win02:123321

2、通过newusers和chpasswd 完成批量添加用户;

[root@localhost ~]# newusers userfile.txt

[root@localhost ~]# chpasswd <userpwdfile.txt

这样就算添加完成了,如果您发现 /etc/passwd 中能发现用户的明口令,您可以通过下面的命令来映射到 /etc/shadow文件名;

[root@localhost ~]# pwconv

第一,建立一个用户组,设置网络登录权限。(手动去做吧)

第二,建立用户,将用户加入到该组。

批量建立用户,并且加入用户组的脚本如下。

@echo off

set "用户名文件=a.txt"

set "用户组名称=vpnusers"

::文件路径可以有空格,但是不需要额外加"引号

for /f "usebackq tokens=1-3" %%a in ("%用户名文件%") do (

net user %%a %%b /add /PASSWORDCHG:%%c

net LOCALGROUP %用户组名称% %%a /add

)

echo,用户添加完成!

pause>nul&exit

:::::end

:::a.txt 格式如下

用户名 密码 是否允许更改密码

abc 123no

user1pass no


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11803547.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存