linux系统中使用adduser与useradd命令批量添加用户

adduser - 添加用户账号,与useradd是同一命令。需要root权限才能执行(有root权限)。 在使用adduser命令时,它会添加这个名,并创建和用户名名称相同的组名,并把这个用户名添加到自己的组里去,并在/home目录想创建和用户名同名的目录,并拷贝/etc/skel目录下的内容到/home/用户名/的目录下,并提示输入密码,并提示填写相关这个用户名的信息。

在使用命令useradd时,它会添加这个用户名,并创建和用户名相同的组名,但它并不在/home目录下创建基于用户名的目录,也不提示创建新的密码。

root@xxx:/xxx# useradd myadmin # 创建普通用户myadmin

用useradd命令创建的是一个普通用户,不能用这个用户名来登陆系统。

adduser与useradd ,这两个命令有些不同 。

一.adduser批量添加用户

使用adduser时,创建用户的过程更像是一种人机对话,系统会提示你输入各种信息,然后会根据这些信息帮你创建新用户。这样我们没有必要知道那么多的参数,一样可以达到自定义添加用户。

步骤如下:

(1)建立用户名列表文件username.txt

stu1

stu2

stu3

stu4

stu5

stu6

(2)批量添加的脚本文件

###在这里也可以设置用户所属的用户组

for a

do

echo "/home/student/$a"

adduser --home /home/student/$a $a

done

(3)执行该脚本文件,查看执行过程

root@liu:/home/liu/Desktop/Dos# sh t.sh `cat < username.txt`

/home/student/stu1

Adding user `stu1' ...

Adding new group `stu1' (1002) ...

Adding new user `stu1' (1001) with group `stu1' ...

Creating home directory `/home/student/stu1' ...

Copying files from `/etc/skel' ...

Enter new UNIX password:

Retype new UNIX password:

passwd: password updated successfully

Changing the user information for stu1

Enter the new value, or press ENTER for the default

Full Name []:

Room Number []:

Work Phone []:

Home Phone []:

Other []:

Is the information correct? [Y/n]

可见,在执行的过程中,系统交互式的询问,每个用户的设置信息。虽然简化了新建用户的程序,但是在批量添加用户的过程中是不可取的。

二.useradd批量添加用户

使用useradd时,如果后面不添加任何参数选项,例如:#sudo useradd test创建出来的用户将是默认“三无”用户:一无Home Directory,二无密码,三无系统Shell。

步骤如下:

(1)建立用户名列表文件username.txt(同上)

(2)创建用户密码对应文件serc.txt,格式为username:password(注意文件的格式)

stu1:tt1

stu2:tt2

stu3:tt3

stu4:tt4

stu5:tt5

stu6:tt6

(3)批量添加的脚本文件

##添加用户,并且在/home/ 下为用户生成用户目录。

cat < username.txt | xargs -n 1 useradd -m

##批处理模式下更新密码

chpasswd < serc.txt

##将上述的密码转换到密码文件和组文件

pwconv

##结束验证信息

echo "OK 新建完成"

(4)执行该脚本文件,查看执行过程

root@liu:/home/liu/Desktop/Dos# sh aa.sh

新建完成

useradd命令,在执行没有出错的情况下,不会输出任何的信息,不会与用户交互。但是用户必须要记住那些设置项目,否则添加的用户可能出现一些预想不到的结果。

总结上来讲,在Ubuntu中,adduser更适合初级使用者,因为不用去记那些繁琐的参数选项,只要跟着系统的提示一步一步进行下去就行,缺点就是整 个创建过程比较复杂而漫长;而useradd比较适合有些高阶经验的使用者,往往一行命令加参数就能解决很多问题,所以创建起来十分方便。

(0)

相关推荐

  • Linux系统中的ps进程查看命令使用实例集锦

    linux 中ps命令是Process Status的缩写.ps命令可以列出系统中当前运行的进程,所列出的进程是执行ps命令这个时刻正在运行的进程. 如果要动态显示进程信息,需要使用top命令. 通过 ...

  • Linux系统中的mount挂载磁盘命令使用教程

    功能:加载指定的文件系统. 语法:mount [-afFhnrvVw] [-L<标签>] [-o<选项>] [-t<文件系统类型>] [设备名] [加载点] 用法说 ...

  • 详解Linux系统中关机与重启相关命令的用法

    shutdownshutdown 以一种安全的方式关闭系统.所有登陆用户都可以看到关机信息提示,并且 login (1) 将被阻塞.可以指定立刻关机,也可以指定系统在一定的延时后关机.所有进程都将接收 ...

  • Linux系统中的date时间日期命令使用教程

    “date”命令使用标准的输出打印当前的日期和时间,也可以深入设置. 复制代码 代码如下: root@tecmint:~# dateFri May 17 14:13:29 IST 2013 复制代码 ...

  • 在Linux系统中使用who和whoami命令获取用户信息

    who用法:who [选项]... [ 文件 | 参数1 参数2 ]显示当前已登录的用户信息. -a, --all             等于-b -d --login -p -r -t -T -u ...

  • 在Linux系统中安装和使用apt-file命令

    刚才安装Spynner模块,使用的是easy_install spynner安装,各种文件缺失啊,无意中发现apt-file命令,从此再也不用担心编译软件缺少某个文件而不知所措了. 1.首先得安装ap ...

  • Linux系统中使用cmp和comm命令来比较两个文件

    cmp cmp 命令:比较任意两个类型的文件,且吧结果输出到标准输出,默认文件相同不输出,不同的文件输出差异 必要参数 -c 显示不同的信息 -l 列出所有的不同信息 -s 错误信息不提示 选择参数 ...

  • Linux系统中日志操作相关的命令

    操作方法 01 tail:用来查看一个(增长中的)日志文件的尾部.有几个变种,包括multitail(多窗口查看)和ztail(支持inotify和正则表达式过滤以及颜色). logrotate:一个 ...

  • Linux系统中10个最危险的命令详解

    我们大多数的朋友都是一辈子都用的windows系统,基本用鼠标就可以完成所有的操作,但是在Linux系统中那么基本上就是键盘+命令操作电脑的,Linux命令行?溆杏谩⒑芨咝В?埠苡腥ぃ??惺焙蛞埠芪O ...