这周我们学习Linux用户的管理

我们需要了解普通用户和超级管理员的区别,用户命令的增删改查,普通用户于超级管理员之间的切换,普通用户之间的切换,普通用户的配置文件操作

Linux系统是一个多用户多任务的分时操作系统,每个进程都有一个特定的文件,文件为一个特定的用户拥有。

每一个用户都有自己唯一的id,,用户可以属于不同的用户组,uid为用户id,gid是用户所有组的id

输入su然后输入root密码后进入超级管理员模式。

输入id命令可以查看超级管理员的uid是0

组id也是 0,输入id yukino(用户名)

可以看到现在我们创建用户的uid是1000,组id也是1000,而用户可以属于不同的组,以后用户想要加入不同的组,之后的组id会越来越长。

每个文件都有一个所有者(owner),使用ll命令可以查看文件的所有者。

第三列为文件的所有信息。

接着我们学习查看进程用户名的命令 ps aux

首先我们需要安装软件包

输入命令 yum -y install httpd

之后重启服务  systemctl start httpd

然后我们就可以查看httpd进程的用户名

ps aux | grep httpd

接着我们来学习用户/组相关的文件

在Linux系统中,所有的用户名和密码都存放在/etc/passwd和/etc/shadow这两个文件夹中。在/etc/passwd文件中。一行记录对应一个用户,每行用户又被冒号(:)分隔为7个字段,分别为用户名称、密码占位符、用户uid、主组gid、注释性描述、用户主目录、用户的shell。

在/etc/shadow文件中,每行记录也由冒号分隔为9个字段,依次为用户名称、加密后的密码、最近改动密码时间、密码不可变更时间(99999为没有限制)、密码重新变更时间、密码过期时间、密码过期宽恕时间、用户失效时间、保留。

查看/etc/passwd文件夹和/etc/shadow文件夹均用cat命令。

$id为加密算法,有$1(MD5)、$5(SHA-256)、$6(SHA-512),$id号越大加密程度越高。

之后我们来学习管理用户/组的操作

首先使用useradd命令创建用户jsj01,然后使用grep命令过滤出该用户信息

useradd jsj01

grep "jsj01" /etc/passwd /etc/shadow /etc/group其中/etc/shadow行中显示"!!,表示密码未设置。在/home目录下可查看新创建的用户,系统还会为用户创建一个邮箱。

创建用户user02和user03,并使用"-g"参数指定已存在的附加组。

groupadd hr

groupadd fd

useradd user02 -g hr

useradd user03 -g hr,fd

输入id命令就可以查看user02和user03分别加入了新的组,这里不能直接将jsj01这个用户按照这种方式进行添加组,它只适用于刚开始创建的用户,创建好的用户想要修改组我们后续会学到修改命令。

如果在使用useradd命令时加入了错误的设置数据,或者要对一些信息进行详细的修改,除了直接在/etc/passwd与/etc/shadow文件中修改,也可以使用usermod与gpasswd命令。

用户组的信息保存在etc/group文件中,上面创建的组在该文件的尾部,使用tail命令就可以查看,可以看出gid是从低到高排序的,一般情况下不需要专门设置组的gid,如果需要指定gid,添加参数"-g’或者"-gid"即可。