RHEL9基础(二)

用户和用户组管理

Linux用户分类:

超级管理员:root用户,拥有最大的权限,可以对系统进行任何的操作(修改网络配置、服务配置、甚至删除/)

系统用户:为服务而生,专门运行服务的

普通用户:root用户手动创建

为什么要用户?

  1. 登录系统,操作系统的资源,执行命令
  2. 每个用户都能管理应用服务,保证系统的安全,每一个用户都可以运行自己的服务,提高系统的运行效率

每个用户都会有一个UID,一个用户对应一个UID

UID:类似于个人身份证。叫做用户的身份标识符

系统识别用户通过UID识别,个人识别用户通过用户名

用户的分类通过UID范围进行分类:

超级管理员的UID是0,root用户的UID刚好是0,所以root用户才是超级管理员

系统用户的UID范围0-999

普通用户的UID范围1000<x<60000

(可以通过修改/etc/login.defs这个文件,修改UID的上限)

用户和UID对应关系的文件(用户信息文件)

/etc/passwd    每一行是一个用户

root : x : 0 : 0 : root : /root : /bin/bash

root:用户名

x:密码占位符(表示此用户登录系统是否需要验证密码,有x表示登录系统需要验证密码)

0:用户的UID

0:用户组的GID(组ID)

root:用户的描述信息

(在图形化的登录页面展现;只有普通用户才可以显示,并且需要给普通用户设置密码)

/root:用户的家目录,用户登录默认的所在目录

/bin/bash:用户的登录shell(指的是用户登录系统运行的第一个程序,称之为shell程序。会给用户分配一个可以和系统交互的shell程序;如果是/bin/bash,则表示用户可以进行登录;如果是/sbin/nologin,表示用户无法登录)

误区:用户不能登录不代表不能使用

用户组

每一个用户都会属于一个用户组;用户组的作用是为了更好的管理用户,一个用户组里面可以有多个用户,也可以只有一个用户,在同一个用户组下的用户,会继承用户组的权限

用户组的分类:

私有组(属组),在创建用户的时候同时会创建一个同名的私有组,用户必须属于一个私有组,有且只有一个私有组

附加组(公共组),用户可以加入其他的用户组,这个组就叫做用户的附加组;用户加入附加组的目的就是为了获得附加组的权限

用户组和GID的对应关系(用户组信息文件)

/etc/group 每一行是一个用户组

root:x:0:

root:组名

x:密码占位符(有x表示登录组需要密码验证)

0:表示组ID

:用户组的成员

user2:x:1001:

用户组user2为什么组内成员没有user2?

这是因为用户组user2是用户user2的私有组,当某一个用户组是用户的私有组的时候,在/etc/group里面是不会显示这个用户的

用户密码文件

/etc/shadow

user : $6$BNN3mnZYElcKxB8C$151EIQ1xYP : 19707 : 0 : 99999 : 7: 2:20707 :

第一栏位:用户名

第二栏位:加密后的密码

$6$ 加密类型  6 sha512  5 sha216  1 md5

!! * 代表此用户没有密码

openssl passwd -6/-5/-1 密码 对密码进行加密

第三栏位:19707(天数),表示上一次修改密码的时间(从1970-01-01 开始计算,经过19707天)

第四栏位:0,代表密码的最短期限(如果是0,代表无限期)

第五栏位:99999,代表密码的最长期限(如果是99999,代表无限期)

8:9

第六栏位:7,代表密码过期前的警告时间(提前7天发送警告信息)

第七栏位:账户的锁定日期;2,代表在密码过期后的2天账号被锁定了

锁定的原理:就是在/etc/shaodw文件中,把第二个栏位前面加上!号

第八栏位:账号的失效日期(从1970-01-01 开始计算,经过20707天)

chage 修改密码期限

 -m 密码最短期限

 -M 密码最长期限

 -W 密码警告日期

 -E 账号的失效日期

修改user4用户的密码信息。最短期限是5天,最长期限是10天,提前2天告警,账号在2026-12-12失效

强制用户登录修改密码--->chage -d 0 user4

修改默认的密码策略:/etc/login.defs

用户管理

创建用户

useradd 用户(每次创建用户,用户的UID=/etc/passwd中最大的UID数+1)

useradd -u 1010 用户名

useradd -g 私有组  用户名

useradd -c 描述信息 用户名

useradd -d 家目录  用户名(不要提前创建用户家目录)

useradd -s 登录shell(/bin/bash 或 /sbin/nolgin) 用户名

删除用户

userdel 用户名

(创建用户的时候,会同时在/home创建一个同名的目录作为用户的家目录。并且在/var/spool/mail下面也会创建一个同名的文件作为用户的邮箱文件)

手动删除/home/username和/var/spool/mail/username

userdel -r 用户,完全的删除用户(删除用户家目录和邮箱文件)

修改用户的信息

usermod 修改已经存在的用户信息

-c 修改用户描述信息

-u 指定uid

-g 指定gid

-s 指定登录shell

-md 修改用户家目录,-m是移动家目录,-d是指定家目录(不要提前创建)

-l 修改用户名

-aG 添加附加组

-G 修改附加组(会覆盖掉之前的所有附加组;如果用户没有附加组,则会添加一个附加组)

-L 锁定密码  -U  解锁密码   (原理:在/etc/shadow中,在加密密码的栏位前面加上一个!)

用户组的管理

goupadd 创建组

-g 指定gid

-o 重复使用gid

groupdel 删除组

groupmod  修改组信息

-n eg:groupmod -n 新组名  旧组名

-g 修改组的ID(GID)

-o 重复使用组ID

gpasswd 修改组密码/管理组的成员

gpasswd -d B用户 A组名   从A组中删除B用户(删除B用户的附加组A)

gpasswd -a B用户 A组名   从A组中添加B用户(添加B用户的附加组A)

gpasswd  组名   给组修改密码  /  newgrp  组名  登录到组  / exit 退出组

gpasswd -A  A用户 B组名   将A用户设置为B组的管理员

设置组的管理员的作用:可以给这个组添加成员或者删除成员

groupmems 管理组的成员(root用户使用

groupmems -g group2 -l   查看group2组内的成员

groupmems -g group2 -a user  将user用户添加到group2组内

groupmems -g group2 -d user  将user用户从gruop2组里面删除掉

groupmems -g group2 -p   清空group2组的所有用户

管理用户的密码和管理用户组的密码:passwd / gpasswd

用户组的密码文件

/etc/gshadow

group2 : $6$1bRzPBLX4ThrzqHdV2Wr0H.ceYD8mX85za6Ee0 : user2 : user3

group2:组名

$6$xxxx:加密后的组密码

user2:组的管理员

user3:组内的用户

文件权限管理

在系统中,每一个文件都有UID和GID(哪个用户创建文件和目录,文件和目录就会继承用户的UID和GID),通过UID和GID决定文件的访问权限

我们用户访问文件或者目录提示权限拒绝,表面上是用户访问,实则是用户启动的进程访问,只不过进程会继承用户的UID和GID;例如使用user用户 通过vim访问/etc/shadow这个文件的时候,实则是进程访问文件

user用户的UID和GID都是1000,那么程序所继承的UID和GID也是1000

比如用户去访问文件(进程访问文件)

假如进程的UID和文件的UID匹配,则使用UID权限访问

假如进程的GID和文件的GID匹配,则使用GID权限访问

如果进程的UID和GID都不匹配,则以其他人的权限访问

为什么需要文件权限?

如果没有文件权限,所有人都可以访问文件,如果文件比较私密(比如/etc/shadow)或者比较重要,那么对文件对系统来说是不安全,所以通过文件的权限来限制用户进行访问;

三种访问权限:

拥有人

拥有组

其他人

每个文件都有UID和GID

文件的UID就是文件的拥有人(user)

文件的GID就是文件的拥有组(group)

还有一种访问的权限,UID和GID都没有匹配上,则是其他人的身份进行匹配(other)

文件访问的优先级

当一个文件被访问的时候,会经历以下的步骤:

一个用户访问一个文件,实则是进程访问文件(进程会进程用户的UID和GID),通过用户的UID和GID进程访问

如果用户的UID和文件的UID匹配,则使用UID权限访问;

如果用户的GID和文件的GID匹配,则使用GID权限访问;

如果都不匹配,则使用其他人的权限匹配

查看文件和目录的权限

ls -l / ls –ld 文件/目录

- rw- r-- r--. 1 root root 10240 Dec 16 12:01 aa

第一个栏位 -:文件的类型  普通文件  d 表示目录  b表示块设备 …

第二个栏位:rw-   表示拥有人的权限(UID)   

第三个栏位:r-- 表示拥有组的权限(GID)

第四个栏位:r-- 表示其他人的权限(other)

第五个栏位:.  表示aa文件是受到Selinux的保护

第六个栏位:1 表示文件的硬链接数(类似于系统中有几个副本,当硬链接数0的时候才是完全的删除)

第七个栏位:root 表示文件的UID(表示文件的拥有人)

第八个栏位:root 表示文件的GID(表示文件的拥有组)

第九个栏位:1020  表示文件的大小

第十个栏位:Dec 16 12:01  表示文件最后一个被修改的时间

stat 

第十一个栏位:aa  文件名

系统中有3个权限

r:读

w:写

x:可执行(类似于一个命令的执行,可以当作一个命令执行)

-:无权限

rwx对于文件的意义:

r 表明可以读取文件的内容

w 表示可以编辑文件的内容

x 表示可以像Linux命令一样执行

如果文件没有任何的权限,文件的拥有人依旧可以进行强制保存

root用户可以随意修改其他人的文件

rwx对于目录的意义:

r 表示可以查看列出目录下的内容

w 表示可以修改目录的内容(创建和删除)

x 表示可以进入到该目录(和rx连着使用)

一个目录要想有意义。必须要有rx的权限

修改文件和目录的权限

chmod: /dir/: new permissions are -------w-, not ---------

chmod命令修改

字符修改权限

r w x

拥有人:u

拥有组:g

其他人:o

所有人=u+g+o=a

chmod u+x root

chmod g-rwx root

chmod u+rw,g+rwx,o-r root

使用 +- 进行赋权,是在原有的基础权限上进行修改

chmod u=rx root

chmod u=rx,g=rwx,o=r root

使用 = 直接赋权,会覆盖掉原有的文件权限

chmod a+x root

chmod -x root

chmod -R  o+x /dir   递归修改权限,目录以及目录下的文件和子目录

通过数字方式修改权限

计算机世界只识别0和1,0代表无权限,1代表有权限

r w x ---> 4 2 1

1 0 0 4

0 1 0 2

0 0 1 1

所以文件和目录最大的权限是rwx--->7

rwx rwx rwx

7 7 7

小案例:

  • -w- r-x ---. 1 root root 0 Dec 17 11:04 root

增加文件属主(拥有人)的执行权限

字符:chmod  u+x  root

数子:chmod  350 root

chown 修改用有人和拥有组

chown user root 修改root文件的拥有人为user

chown .user/:user  root 修改root文件的拥有组为user

chown root:root root 修改root文件的拥有人和拥有组为root

chown -R … ….  递归修改拥有人、拥有组

P:root用户可以修改所有文件和目录的拥有人和拥有组;

文件的拥有人只能将文件的拥有组修改为自己的,无法修改文件的拥有人。

eg:-rwxr-----. 1 user      root      10 Dec 17 11:44 root

 [user@rhel9 dir]$  chmod  :user  root

  • 19
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值