基于Linux下的用户、组的管理

时间:2024-04-12 22:45:27

用户管理:

用户就是系统使用者的身份,在系统中用户存储为若干字符+若干个系统配置文件。我们可以使用whoami命令来查看当前用户身份,但我们在切换用户时不可以一直用su命令频繁切换,这样会导致之后操作中会出现报错,我们要学会用exit/logout命令来退出用户进行切换。

基于Linux下的用户、组的管理

用户信息涉及到的系统配置文件:

/etc/passwd 用户信息

用户:密码:uid:gid:说明:家目录:用户使用的shell

            -u   -g    -c    -d      -s

/etc/shadow 用户认证信息

用户:密码:最后一次密码修改该时间:最短有效期:最长有效期:警告期:非活跃期:帐号到期日

/etc/group 组信息

组名称:组密码:组id:附加组成员

/etc/gshadow 组认证信息

/home/username 用户家目录

基于Linux下的用户、组的管理

/etc/skel/.* 用户骨架文件

注意: /etc/skel/ 这个目录中的所有文件或目录在用户新建的过程中会被复制到用户的家目录里,这个是模板。这个目录中默认存在的隐藏文件是用户的默认配置文件。

用户管理,我们在使用时可以先打开一个监控方便查看命令进程。

监控命令:

watch -n 1 'tail -n 3 /etc/passwd /etc/group;echo ====;ls -l /home;echo ===;ls -l /mnt'

基于Linux下的用户、组的管理

用户建立:

我们可以很清楚的看到命令执行前后的变化,Linux用户已经被建立成功。

useradd 参数 用户名字

基于Linux下的用户、组的管理

-u 指定用户uid

-g 指定用户初始组信息,这个组必须已经存在

-G 指定附加组,这个组必须存在,如下图所示我们一开始看到了1002这个组才可以使用useradd -G 1002 westos这个命令。

基于Linux下的用户、组的管理

-c 用户说明,我们可以看到用户说明已经被更改。

基于Linux下的用户、组的管理

-d 用户家目录

-s 用户所使用的shell,/etc/shells记录了用户能使用shell的名字,如下图所示我们首先查看一下我们系统中可用的shell,然后才可以使用这个命令来进行更改。

基于Linux下的用户、组的管理

基于Linux下的用户、组的管理

用户删除:

userdel -r 用户名称 -r表示删除用户信息及用户的系统配置,直接使用即可删除我们已经建立的用户。

基于Linux下的用户、组的管理

组的建立:

我们可以看下图组建立之后效果的呈现。

groupadd -g         建立组

groupdel 组名字      删除组

作以上实验的监控命令:

watch -n 1 'tail -n 3 /etc/passwd /etc/group;echo ====;ls -l /home;echo ===;ls -l /mnt'

基于Linux下的用户、组的管理

基于Linux下的用户、组的管理

用户id信息查看:

id 参数 用户

-u 用户uid

-g 用户初始组id

-G 用户所有所在组id

-n 显示名称而不是id数字,必须搭配着g,u使用命令。

基于Linux下的用户、组的管理

-a 显示所有信息

基于Linux下的用户、组的管理

5.用户信息更改,我们在使用usermod命令时可以打开一个监控命令方便我们查看效果,如下图所示:我们可以重新开一个终端一边使用命令一边查看效果。

基于Linux下的用户、组的管理

基于Linux下的用户、组的管理

usermod参数更改:

-l 更改用户名称

-u 更改uid

-g 更改gid

我们可以通过下图来看这三条命令之后效果的呈现。用户名称uid,gid均被改变。

基于Linux下的用户、组的管理

-G 更改附加组,我们删除组时可以用图片所示方法。

基于Linux下的用户、组的管理

  我们通过图片可以看到,一开始我通过更改附加组为16时候报错,但我们可以很快的发现错误所在,也就是我们更改时必须确保组已经成立,接下来建立组22后也就更改附加组成功,同样我们可以用id命令查看,结果已经多了一个附加组。

基于Linux下的用户、组的管理

基于Linux下的用户、组的管理

    如上图所示,usermod -G 命令只是更改附加组,第二次更改的1004会替换1003,也就是不保留的意思。

-aG 添加附加组,这个命令完成之后就是添加了两个附加组。

基于Linux下的用户、组的管理

-c 更改说明

基于Linux下的用户、组的管理

-d 更改家目录指定

-md 更改家目录指定及家目录名称

基于Linux下的用户、组的管理

-s 更改shell

基于Linux下的用户、组的管理

-L 冻结帐号

-U 解锁

基于Linux下的用户、组的管理

文件用户组的更改:

我们做这个使用一个监控窗口watch -n 1 ls -lR /mnt/来看效果会更加直观,部分截图如下:就是通过chown和chgrp来分别更改用户和组来呈现效果。

基于Linux下的用户、组的管理

基于Linux下的用户、组的管理

基于Linux下的用户、组的管理

基于Linux下的用户、组的管理

chown 用户名称         文件     更改文件所有人

chgrp 组名称           文件     更改文件所有组

下图可以看到,首先在桌面建立文件file和目录666,然后分别查看其属性,然后更改文件所有人文件所有组查看效果已经更改成功。

基于Linux下的用户、组的管理

chown -R 用户          目录    更改目录本身以及目录中的子文件的所有人

实验前提建立目录Linux,然后在里面建立文件westos,使用命令查看效果。显示已经更改成功。

基于Linux下的用户、组的管理

chgrp -R 组名          目录     更改目录本身以及目录中的子文件的                                 所有组

基于Linux下的用户、组的管理

chown   redhat:test   /mnt/file3  

***这个test组必须一开始建立,不然无法成功。这个命令就是一次性将文件拥有者文件所在组修改为redhat和test。由于我们没有建立redhat用户,图中用student进行更改。

基于Linux下的用户、组的管理