linux用户和用户组管理的基础知识

今天学习了用户和用户组管理这一块的知识,为了防止忘记以及能够随时的复习在这里简单的记一下笔记。
一、用户的配置文件
1.用户信息文件/etc/passwd:里面主要放置的都是与用户有关的信息。
通过vi /etc/passwd 命令去打开这个目录文件:如下图为打开后的模样
linux用户和用户组管理的基础知识_第1张图片
该文件中的每一行代表一个用户,通过六个:去分割七个段,每一个段都有自己的含义。
<1>用户名称
<2>密码标志
这里的密码标志我们只能看到一个X,主要原因是该目录文件不光可以被root访问还可以被其他所有用户访问,如果把密码放在这里将是十分危险的一件事,系统把密码加密保存在了/etc/shadow之中,后面我们会提到。
<3>UID
U的意思是User,所以它的意思的就是用户的id,用户被linux系统分为三种,分别是:超级用户(0)、系统用户(1-499)、普通用户(500-65536)。括号中的阿拉伯数字就是他们id被系统划分的范围。
<4>GID
G的意思是group,所以它的意思就是组用户的id,一般在建立一个新用户的同时就会同时产生一个组,这里我们简单介绍以下初始组和附加组的概念。
**初始组:**就是指用户一登陆就会立刻拥有这个用户组的相关权限,一般一个用户只能有一个初始组,大部分都是同名的,还有点共生死的意思。
**附加组:**这里主要说每个用户可以进入很多组,我们除了有自己初始组外我们还可以进入其他一些组,这些组也就是该用户的附加组。
<5>用户说明
<6>家目录
家目录主要分为两个,也就是超级用户和普通用户之分。
超级用户:/root/
普通用户:/home/用户名/
<7>登录后的shell
我们可以把shell理解成一个命令解释器,就像一个翻译一样,我们书写的命令行可以被内核读明白并执行就是它的功劳,我们常用的标准的shell是sbin/bash,除了这个以外还有/sbin/nologin
2.用户配置文件/etc/passwd:我们习惯称它为影子文件,主要就是表示用户的密码信息和关于密码配置。之所以把密码放在这里的原因就是该目录文件的访问权限为000,只有我们的超级用户才可以访问,所以说密码放在这里是绝对安全的。
我们使用 vi /etc/passwd 可以看到如下图
linux用户和用户组管理的基础知识_第2张图片
如图所示我们可以知道,每一行代表一个用户,每一行被八个:分成了九段
<1>用户名
<2>机密密码
这里的密码是通过SHA512算法进行加密的,这个我真是一点不懂,不过我们知道这是我们密码存在的另一种形式罢了
<3>密码的最后一次修改时间
<4>两次密码修改的时间间隔
<5>密码有效期
<6>密码修改前到期提醒的天数
<7>密码过期后宽限的天数

0:代表密码过期后立刻消失
-1:代表密码永远也不会过期
<8>账号失效的时间
<9>保留

上面这些各部分都跟时间戳有关系,时间戳的意思就是,以1970.1.1日为标准时间,每过一天时间戳+1。
3.组信息文件/etc/group:使用vi编译器打开它
linux用户和用户组管理的基础知识_第3张图片
如图所示该文件目录主要分为四个段:
<1>组名
<2>组密码标志
<3>GID
<4>组中的附加用户

4.组密码文件/etc/gshadow::用vi编辑器打开它
linux用户和用户组管理的基础知识_第4张图片
如图所示该文件目录主要分为四个段:
<1>组名
<2>组密码
<3>组管理员用户名
<4>组中附加用户

二、用户管理的相关文件
1.用户的家目录
普通用户:/home/用户名/所有者和所有组都是此用户,权限为700
超级用户:/root/所有者和所属组都是root用户,权限是550
2.用户的邮箱:/var/spool/mail
当我们建立一个用户并设置完成密码后,在该目录下将自动出现我们的用户名,也就是说我们拥有了mail这个权限
3.用户的模板目录:/etc/skel/
这个目录下放的信息,可以在创建新的用户的时候使新用户的家目录下立刻拥有。比如说我们新建一个用户之后,没有添加任何的目录或者文件,这时我们使用了ls -a这个命令,就会出现这个模板内配置好的文件。
三、用户管理相关的命令
1.useradd创建用户命令
命令格式:useradd 【选项】 用户名
linux用户和用户组管理的基础知识_第5张图片
个人感觉,我们平常更多的还是不加选项直接创建用户。在直接创建的时候系统将会通过用户默认文件对我们的用户信息进行默认的配置,主要还是跟环境变量有关系,个人理解环境变量这个东西好像一个全局变量。下面简单介绍默认用户配置的两个文件及它的涵义
linux用户和用户组管理的基础知识_第6张图片
上图中的第一个GROUP系统虽然默认设置的是100,但是我们在创建的过程中,新创建用户的组ID 如果没有进行选项配置,它都会是它自己。这是因为含有两个模式第一个为私有模式。如果是私有模式就会和图中一样被设置,而我们默认的公有模式,新创建的用户的用户组都将是它自己 。
linux用户和用户组管理的基础知识_第7张图片
2.修改用户密码命令
格式:passwd 【选项】用户名
linux用户和用户组管理的基础知识_第8张图片
普通用户和超级用户修改密码有着一定的区别。主要还是跟各自的权限有关系。
3.锁定用户与解锁用户
命令分别为:
passwd -l 用户名
passwd -u 用户名
这里面的锁定,其实我们打开shadow可以看到我们的加密密码前面多了两个! 其实这就可以理解为把我们的密码暂时更改了,所以我们输入密码是不好使的。
4.使用字符串作为用户的密码
echo “密码” | passwd --stdin 用户名
接收到一个字符串成为了目标用户的密码,个人感觉还是使用直接passwd不加选项去设置。
5.usermod和chage:修改用户信息和修改用户的密码状态
usermod格式:usermod 【选项】用户名
linux用户和用户组管理的基础知识_第9张图片
在进行含有字符串的选项的时候,如果我们输入的东西中含有空格,那么我们必须要用双引号把它包含在其中。与useradd的区别就是一个是负责创建一个用户,另一个是在修改已经存在的一个用户进行一定的修改
chage的格式:chage 【选项】用户名
linux用户和用户组管理的基础知识_第10张图片
这个chage 主要就是修改shadow文件中的主要内容 其实我们用vi编译器去直接修改就可以,通过这种方式去修改感觉稍微有点麻烦 并且不能直观的看到。但是有一个命令还是需要牢记的:chage -d 0 用户名
这条命令的作用主要是把密码修改日期给归0了,用户一登陆就要修改自己的密码。设置完密码后我们的第三段内容也就自动恢复了。
6.删除用户命令userdel
格式: userdel 【选项】 用户名
选项一般会去选-r 它的作用主要是可以同时删除我们创建的家目录
7.id 用户名
可以查看用户id的详细内容
五、用户组管理相关命令
1.添加用户组
格式 groupadd 【选项】 组名
选项 -g GID :指定组ID
2.修改用户组
格式 groupmod 【选项】组名
选项 -g GID : 修改组ID
-n 信组名 :修改组名 在这里插入图片描述
3.删除用户组
groupdel + 组名
删除一个组的前提是不允许有初始组的成员存在,所以删除的前提就是先把初始组成员删除掉才可以去删除这个组
4.gpasswd:把用户添加进组或从组中删除
格式:gpasswd 【选项】组名
在这里插入图片描述
最后说一下就是在这些程序使用的格式,我们操作谁就把谁放在后面,也就是说,建立用户的时候配置组ID,那我们应该把用户名放在最后,把某个用户添加到某个组,把组名放在最后一位。上面的内容就是边听课边总结,如果有不对的地方大家批评指正吧。

你可能感兴趣的:(linux,linux)