Linux中用户和用户组的管理以及如何批量创建用户

一、创建新用户及管理新用户

1)、添加新用户

命令格式:useradd [options] username

选项含义: -u:指定用户的UID

-c:添加对用户的描述性文字

-s:指定用户的登录脚本

-e:设置账号的实效日期

-f:值为0表示密码立即实效

值为1表示密码永久不实效

-d:指定用户的家目录

-g:指定用户的所属组

-G:指定用户的附属组

使用该命令添加新用户完成后,系统将为用户创建一个与用户名相同的组(且UID=GID),称为私有组,这一方法是为了能让新用户与其他用户隔离,确保安全性的措施。

2)、删除用户:

命令格式:userdel -r username

执行该命令完成后将会在配置文件(/etc/passwd;/etc/shadow;/etc/group;/etc/gshadow)删除和该用户相关的记录,另外也会删除用户的家目录。

3)、管理用户zhangsan

① 更改用户的工作目录

[[email protected] 桌面]#mkdir /newhome

[[email protected] 桌面]#chown zhangsan:zhangsan /newhome

[[email protected] 桌面]#usermod -m -d /newhome zhangsan

更新使用者新的登入目录。如果给定-m选项,使用旧目录会搬到新的目录        去,如旧目录不存在则建个新的。

② 更改用户的登录shell为/bin/tcsh

[[email protected] 桌面]#usermod -s /bin/tcsh zhangsan

③ 更改用户的登录名为lisi

[[email protected] 桌面]#username -l lisi zhangsan

④ 锁定用户的密码

[[email protected] 桌面]#passwd -l zhangsan

这样张三将不能登录

⑤ 解锁用户密码

[[email protected] 桌面]#passwd -u zhangsan

二、创建新用户组及管理用户组

1)、添加新组

命令格式:groupadd [options] groupname

选项含义: -g:指定组的GID

-r:创建系统组,其GID低于500

-o:允许GID号不必唯一

-f:发现加入的账户已经存在时,程序退出

2)、删除组

命令格式:groupdel groupname

注意:组账户中有用户时,要先删除用户,再删除组

3)、更改组caiwu的属性

① 修改组的GID为502

[[email protected] 桌面]#groupmod -g 502 caiwu

② 修改组的名称为jiaowu

[[email protected] 桌面]#groupmod -n jiaowu caiwu

③ 给组加密

[[email protected] 桌面]#gpasswd caiwu

④ 指定组管理员为zhangsan

[[email protected] 桌面]#gpasswd -A zhangsan caiwu

⑤ 改变用户zhangsan的所属组为caiwu

[[email protected] 桌面]#usermod -g caiwu zhangsan

⑥ 改变用户zhangsan的附属组为caiwu

[[email protected] 桌面]#usermod -G caiwu zhangsan

三、账户相关的配置文件

1)、/etc/passwd

用户的账户信息都保存在/etc/passwd中,包含用户的完整列表,以及他们的UID、GID等信息,每个用户对应文件的一行,并用冒号分成七个字段。Linux系统安装完成后会自动创建一些特殊的账户,除了root账户外,都不能交互式登录进系统,他们承担了系统管理的一些任务,这些账户的UID都小于500.普通用户需要root用户来创建,他们的UID是从500开始到65535。

例如:root:x:0:0:root:/root:/bin/bash

各字段说明:

字段1:用户名

字段2:用户密码,此字段一般为x,真正加密过的密码保存在/etc/shadow文件中

字段3:用户的UID

字段4:用户的GID

字段5:用户信息,通常包含用户的全名

字段6:用户的家目录,即用户登录后所在的初始目录

字段7:用户登录后的默认shell

2)、/etc/shadow

为了保证系统的安全性,Linux系统通常会对用户的口令进行shadow(影子)处理,也就是把用户的口令保存到只有root用户才可读的/etc/shadow文件中,这个文件也称影子文件。该文件包含的用户名与/etc/passwd文件中相同,并存储了用户加密口令等相关信息。每个用户在文件中独占一行,并且用冒号分成九个字段。例如:

root:$6$pD4GMoZ.$57VlWsxR6zQ3QusMVR3aF.YbgRrkxDzQvb1QPl7UZwak5V7ig.wqP0vuhhOM0F4JmP57IuIDBEYWcT3j1ECSt0:16643:0:99999:7:::

其中各字段含义如下:

字段1:用户名

字段2:用户加密后的口令

字段3:口令修改后的日期,数字表示从1970年1月1日至修改日期的天数

字段4:口令在多少天内不能被修改

字段5:口令在多少天后必须被修改

字段6:口令在多少天后用户账号被禁用

字段7:口令在到期多少天之前给用户发出警告信息

字段8:被禁止日期,数字表示从1970年1月1日至被禁日期的天数

字段9:保留字段,尚未使用

3)、/etc/group

和/etc/passwd文件类似,用户组的账号信息都保存在/etc/group中。每个组在文件中独占一行,并且用冒号分成4个字段,存储用户组的各种信息。例如:        caiwu:x:504:zhangsan

各字段含义如下:

字段1:用户组名称

字段2:用户组的口令

字段3:用户组的组ID号

字段4:附属于该用户组的用户列表

4)、/etc/gshadow

该文件和/etc/shadow文件的作用类似,Linux系统把用户组的口令经过加密存放到只有root用户才可读的/etc/gshadow文件中。 每个组对应文件中的一行,并用冒号分成四个字段。例如:

caiwu:$6$T/Gnv/pvlHstU32$PYjFTW5mNmxCxFjRv7ZPMtoSg6DpXElKufyzJqA6bN1DRNZVeRlLBhGeBOEyAVrsw0chznvuEMhOWM/ED7MuC.::zhangsan

各字段含义如下:

字段1:用户组的名称

字段2:用户组加密后的口令

字段3:用户组的管理者,这个字段也可为空,如果有多个用户组管理者,用豆号分割

字段4:附属于该用户组的用户列表,这个字段也可为空,如果有多个用户,用豆号分割

四、Linux下批量创建用户

需要用到的几个新命令:

newusers:shadow-utils软件包里包含了一个newusers命令,他采用读取文件的方式批量创建用户,包括密码。

pwunconv:执行该命令关闭用户的投影密码,他会把密码从shadow文件内回存到passwd文件内。

pwconv:开启用户投影密码的功能。

chpasswd:批量更新用户密码的工具,把一个文件内容定向添加到passwd文件里。

第一步:建立所需的用户组(可以根据自己的需要创建所需的组)

[[email protected] 桌面]#groupadd -g 700 testg

第二步:建立用户文件(格式同/etc/passwd文件)

[[email protected] 桌面]#vim /user.txt

user1:x:701:700::/home/user1:/bin/bash

user2:x:702:700::/home/user2:/bin/bash

user3:x:703:700::/home/user3:/bin/bash

第三步:建立密码文件(格式 用户名:密码)

[[email protected] 桌面]#vim /passwd.txt

user1:001

user2:002

user3:003

第四步:批量建立用户

[[email protected] 桌面]#newusers < /user.txt

第五步:关闭用户密码投影功能

[[email protected] 桌面]#pwunconv

第五步:批量更新用户的密码

[[email protected] 桌面]#chpasswd < /passwd.txt

第七步:重新开启用户密码的投影功能

[[email protected] 桌面]#pwconv

本品博文所写内容如有不正确或不合理之处,还请各位博友指正,谢谢。

时间: 2024-12-28 17:49:16

Linux中用户和用户组的管理以及如何批量创建用户的相关文章

从Exchange 通往Office 365系列(十八)通过csv文件批量创建用户

之前已经讲过在Office 365中创建用户一种方法是通过活动目录同步工具将本地AD同步到Office 365中,其实这也就是同步到Office 365后台的Windows Azure中,这是在企业已经有本地的AD架构之后的做法,如果小型机构可能内部并没有AD的架构,那么这时候可以通过csv格式的文件在Office 365中直接创建用户,之前已经讲过如何通过活动目录同步工具将本地AD同步到Office 365中,想看的可以去看一下http://mxyit.blog.51cto.com/43088

用户与用户组权限管理详解

用户及用户组权限管理    Linux是一个多任务多用户的系统,多用户可以同时登陆同一台主机.为了考虑到每个人的隐私权和工作空间,这时候文件所有者(owner)就是即用户的角色就变得尤为重要了,同时为了用户与用户之间方便合作,共享一些公共资源,这时,为了实现资源的快速分配,我们把多个用户放在一个公共的空间,分别赋予他们不同的读写执行等操作的权限,这些用户共同组成的一个整体,就是所谓的用户组(group). 第一部分 Linux权限管理 用命令ls -l可以列出用户的权限. #ls -l 这里我们

用户与用户组的管理

一. 用户与用户组的管理 1####################用户如何存在与系统当中###################### /etc/passwd #用信息文件 用户名字:用户密码:用户uid:用户gid:用户说明:用户加目录:用户使用的shell /etc/shadow #用户认证信息 用户名称:密码:密码使用天数:最短有效期:密码最长有效期:密码警告期:密码非活跃期:密码到期日: /etc/group #用户组信息 用户组名称:用户组密码:用户组id:附加用户成员 /home/u

Linux中的账号和权限管理(理论讲解部分)

小伙伴们本次给大家带来的是Linux中的账号和权限管理,这里我们首先要明确的就是这个权限是文件或者目录的权限.接下来我们会从以下几个部分进行了解: 用户账号和组账号概述 用户账号和组账号管理 查询账号信息 查看目录或文件的属性 设置目录或文件的权限 设置目录或文件的归属 用户账号和组账号概述Linux基于用户身份对资源访问进行控制1.用户账号:? 超级用户? 普通用户? 匿名用户(everyone)? 程序用户(人为不可使用,单独管理系统中某个应用程序存在的服务)2.组账号:组是系统用户权限的集

在 Linux 中如何自动批量创建用户

作为一名 Linux 系统管理员,你有时必须向系统添加新的用户帐户.为此,经常使用 adduser 命令.当涉及到多个用户的创建时,adduser 命令可能会变得相当无聊和耗时.这篇短文旨在为 Linux 系统管理员提供一种简单而无人值守的方式来批量创建用户.newusers 命令将帮助你通过从预填文件中获取信息来创建多个用户. 要求 访问 Linux 计算机的特权. 约定 #- 给定命令需要以 root 用户权限运行或者使用sudo命令 $- 给定命令以常规权限用户运行 如何进行 创建一个包含

Linux 中的MYSQL数据库常用管理语言

Linux 中的MYSQL数据库管理语言1 登录数据库mysql -u (用户) -p输入密码 2 查看数据库 show databases ;3 使用数据库 use 库名 :4 查看库中的表 show tables :5 查看表的结构 describe 表名 :6 创建和删除数据库Create database 库名 :Drop database 库名 :7 创建表Create table 表名 (字段1 类型,字段2 类型,- ,primary key (主键名)):8 删除表Drop ta

linux实战考试题:批量创建用户和密码-看看你会么

linux实战考试题:批量创建用户和密码-看看你会么? 老男孩教育第五关实战考试题:批量创建10个用户stu01-stu10,并且设置随机8位密码,要求不能用shell的循环(例如:for,while等),只能用linux命令及管道实现. 方法1: # echo stu{01..10}|tr " " "\n"|sed -r 's#(.*)#useradd \1 ; pass=$((RANDOM+10000000)); echo "$pass"|p

Linux 下批量创建用户(shell 命令)

第一种方法: 用shell批量创建用户,分为2中:1,批量创建的用户名无规律 :2.批量创建的用户名有规律首先,来说下批量创建的用户名无规律的shell:先把需要批量创建的用户名用一个文本文档列出来,如下图的userlist文件再把与用户名匹配的密码用另一个个文本文档列出来,如下图的passwd文件 这两个文本文档内容,如下图所示: 下面是我编写的shell脚本.如下图所示 注意需要导入我们在userlist中写的用户名与passwd中写的与用户名匹配的密码项注:chpasswd命令#以root

Linux中使用ps、awk、sh一起批量杀死所有的dotnet进程。

一.操作 Linux中使用ps.awk.sh一起批量杀死所有的dotnet进程. 二.命令 ps -ef|grep dotnet|awk 'NR==2{print "kill "$2}'|sh 说明: NR表示行号是第二行.$2表示是ps进程列表中的第2列. 三.如图