php添加linux用户,Linux添加/删除用户和用户组(转载)

useradd 注:添加用户;

adduser 注:添加用户;

passwd 注:为用户设置密码;

usermod 注:修改用户命令,可以通过usermod 来修改登录名、用户的家目录等等;

pwconv 注:使用影子密码口令系统,将/etc/passwd加密,同步用户信息 到/etc/shadow文件。

pwck 注:pwck是校验用户配置文件/etc/passwd 和/etc/shadow 文件内容是否合法或完整;

pwunconv 注:换为传统口令系统,是pwconv的立逆操作,从/etc/shadow和 /etc/passwd 创建/etc/passwd ,会删除 /etc/shadow 文件;

遇到的一些问题:

问题1:adduser 的-e选项设置帐号过期,帐户过期后会自动删除帐号的文件信息么?

问题2:adduser -p 选项是用来设置用户密码的么?那么我用在此设置的密码怎么无法登陆系统?

回答:在linux下 man adduser可以看到帮助,其中-p参数的解释如下:

-p passwd

The encrypted password, as returned by crypt(3). The default is

to disable the account.

它的意思是通过crypt命令将你输入的密码通过crypt命令加密处理,默认是禁用该帐户。

问题3:adduser和useradd两者一样吗?功能似乎差不多,为什么要整出这两个命令来?

adduser存在/usr/sbin/目录下,使用命令ll /usr/sbin/adduser可以发现:

lrwxrwxrwx 1 root 1 root 7 Aut 6 20:46 /usr/sbin/adduser ->useradd

回答:这说明adduser不过是useradd的一个符号链接。创建这个符号连接主要是为了让用户在尝试命令时尽快命中。

问题4:userdel删除帐号后,为什么用户的目录还存在/home/目录下呢?

因为不带参数的话,默认并不删除用户目录信息,加上参数 -r 即可。

注意:

1.在pwunconv的情况下,无法用passwd去更改用户密码使得用户生效,使用chpasswd去批量更改是可以的,或者执行pwconv后即可用passwd去更改。

2.用adduser创建用户时通过-p设置的密码(在pwunconv的情况下将变为明码,但是)帐户仍然不可用,无法登陆,必须在pwconv后使用passwd再设置后方可,然后再pwuncov将不再是明码显示了。

3.groupdel删除组,必须在组所有用户皆被删除后才可执行。

批量增删用户的方法:

方法一、编写脚本实现批处理

一、如何添加用户?

第一步:创建帐户列表文件useradd

[root@denven root]#vi useradd

adduser stu060101

adduser stu060102

adduser stu060103

…..

注:如果在后面执行脚本时候提示无法执行命令,则应该使用路径为/usr/sbin/adduser win01的形式,或者修改系统环境变量。

第二步:更改文件权限,使其可执行

[root@denven root]#chmod 700 userdel

第三步:执行脚本,添加用户

[root@denven root]#./useradd

第四步:设置密码,可以运用方法三中的设置密码的方式进行。

二.如何批量删除用户?

第一步:创建删除帐户文件, 文件名为 userdel

[root@denven root]#vi userdel

userdel -r stu060101

userdel -r stu060102

userdel -r stu060103

注:-r选项是同时删除用户的文件目录,若不加此选项,只是用户不存在,而该用户以前创建的目录依然存在。

第二步:更改文件权限,使其可执行

[root@denven root]#chmod 700 userdel

第三步:执行该脚本,删除用户

[root@denven root]#./userdel

注:以上是在脚本中包含了每个用户添加和删除用户命令来实现的。

方法二、用shell中循环语句实现

A.批量添加

首先,创建帐户列表文件users

[root@denven root]#vi users

stu01

stu02

stu03

stu04

第二步:创建usersadd这个sh文件

[root@denven root]#vi usersadd.sh

while read line

do

echo $line #打印出读取的信息

#/usr/sbin/adduser $line

/usr/sbin/adduser $line #创建用户

echo “user $line created!”

done

第三步:执行usersadd这个sh文件

[root@denven root]#sh usersadd.sh

可以看到屏幕输出一些信息

第四步:设置密码,可以运用方法三中的设置密码的方式进行。

B.现批量删除

编写shell导入上面的用户文件users来删除

第一步:创建usersadd这个sh文件

[root@denven root]#vi usersdel.sh

while read $line

do

echo $line #打印出读取的信息

#/usr/sbin/adduser $line

/usr/sbin/userdel -r $2 #删除读取的用户

echo “user $line deleted from system”

done

第三步:执行usersdel这个sh文件

[root@denven root]#sh usersdel.sh

方法三、使用系统自带批处理命令

第一步:创建帐户列表文件

[root@denven root]#vi students

在Vi编辑器中编辑帐户列表,

stu01::1001:1000:stu:/home/stu01:/bin/bash

stu02::1002:1000:stu:/home/stu02:/bin/bash

stu03::1003:1000:stu:/home/stu03:/bin/bash

注意这个文件必须按照/etc/passwd文件中每一行的格式相对应,用六个冒号隔开成七个字段

第二步:创建帐户对应密码文件

[root@denven root]#vi passwds.txt

stu01:******

stu02:******

stu03:******

***表示是为该用户设置的密码。

第三步:添加用户

[root@denven root]#newusers < students

这样就建起了大量用户,可以察看一下,他们已经被写入用户配置文件;

[root@denven root]#more /etc/passwd | grep stu

第四步:批量把用户密码添加到对应帐户

[root@denven root]#chpasswd < passwds

第五步:把密码同步到/etc/shadow文件中

[root@denven root]#pwconv

方法四、使用批量增删用户的软件PDAddUser来实现

下载地址:http://download.enet.com.cn/speed/toftp.php?fname=211922000103104

下载后安装,查看readme文件如何使用。

几种方法的比较:

第一种方法是将每条命令的执行放到脚本中封装起来了,因此要在脚本中多次写入添加和删除的命令;

第二种方法中只需添加用户名列表即可,不需重复在用户文件中写入命令,因为它把命令放在sh中通过循环语句来实现。但要确保编写的shell文件正确。

第三种方法只用了系统命令,而不需要编程,但是在编写用户列表文件容易出错;

第四种方法我尚未用过,借助第三方软件应该比较快捷。

注意:有时候习惯使用了windows下的notepad或者EditPlus等文本处理软件,然后将编写的列表文件上传到Linux文件系统中去读取,命令对某些字符的识别方式不一样导致脚本运行出错,添加不成功。所以最好还是熟练vi,在Linux中编写以防发生差错

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值