RHCSA

一、用户和组管理

Linux中的用户和组分类

1、Linux的用户分为三类:

  • 超级用户:root,它具有一切权限,只有进行系统维护或者其他必要的情形下才以超级用户登录,避免系统出现安全问题
  • 系统用户:是Linux系统正常工作所必须的用户,主要是为了满足相应的系统进程对文件属主的要求而建立的,系统用户不能用来登录
  • 普通用户:为了使用者能够使用Linux资源而建立的,大多数用户属于这类

2、Linux的组分为两类:

  • 基本组:建立账户时,若没有指定账户的属组,系统会建立一个和用户名相同的组,这个就是基本组
  • 附加组:可以容纳多个用户,组中的用户都具有组所拥有的权利

3、Linux中用户和组的配置文件

文件名称功能
/etc/passwd用户账号文件
/etc/shadow用户密码文件
/etc/group用户组账号文件
/etc/gshadow用户组密码文件

(1)用户账号文件
passwd是一个文本文件,用于定义系统的用户账号,所有用户对passwd有读权限,所以该文件只定义用户账号,不保存口令

[root@localhost ~]# ll /etc/passwd
-rw-r--r--. 1 root root 2539 Oct 16 17:19 /etc/passwd

/etc/passwd文件中的字段说明:

每行定义一个账户信息,每行7个字段,字段之间用“ :”分隔

[root@localhost ~]# head -1 /etc/passwd
root:x:0:0:root:/root:/bin/bash
  • 账户名称:用户登录Linux系统时使用的名称
  • 密码:密码保存在/etc/shadow中,此处的密码是占位符。若为“x”说明密码受到shadow的保护
  • UID:用户的标识,是一个数值,用来区分不同的用户,每个用户都有一个UID:
UID用户类型
0超级用户
1-999系统用户
=>1000普通用户
  • GID:用户所在基本组的标识,是一个数值,用它来区分不同的组,相同的组具有相同的GID
  • 个人资料:记录用户的完整姓名,地址等信息
  • 主目录:通常是/home/username
  • shell:定义用户登录后激活的shell,默认是bash shell

(2)用户密码文件

[root@localhost ~]# cat /etc/shadow
root:$6$7tutbKj5oC339amQ$m5uaEV2tWoQ7nc1DPBoet9TBX2QLQ1LaCmjxy7lewrtjRynGU1x1fxpzfF6BkgtoTXhzwNF.UghHoASxpbNTr/::0:99999:7:::

在这里插入图片描述
(3)用户组账户文件
系统中的每个组,在/etc/group文件中有一行记录,任何用户均可以读取用户组账户信息配置文件。

[root@localhost ~]# head -1 /etc/group
root:x:0:
字段说明
groupname组的名字
passwd组的加密口令
GID系统区分不同组的ID
userlist是用“,”分开的用户名,列出的成员以该组为附加组

用户管理

1、添加用户 useradd [选项] <username>
选项:

  • -c 注释信息:设置与用户相关的说明信息
  • -d 目录:设置用户的家目录
  • -e yyy-mm-dd:设置用户的失效日期,此日期后账号不能使用
  • -f 天数:指定密码到期后多少天账号被禁用,若指定为0,表示账号到期后立即禁用,若指定为-1,表示密码永不过期
  • -g 组名:为用户指定所属的基本组,该组在指定时必须已经存在
  • -G 组名:为用户指定所属的附加组,各组在指定时已经存在,附加组可以有多个,组之间用“ ,”分割
  • -M:不创建用户家目录
  • -N:不创建与用户同名的基本组
  • -p 密码:指定用户的登陆密码
  • -s shell名:指定用户登录后使用的shell,默认是bash
  • -u:用户号:设置账号的UID

示例1:新建一个用户q,查看passwd、shadow文件中的变化,并确认该用户的家目录中的初始配置文件

[root@localhost ~]# useradd q
[root@localhost ~]# tail -1 /etc/passwd
[root@localhost ~]# tail -1 /etc/shadow
[root@localhost ~]# ll /home/
[root@localhost ~]# ls -A /home/q

在这里插入图片描述
在这里插入图片描述

示例2:新建一个用户wang5,指定其UID为1005、登录Shell为/bin/bash,账号永不过期

[root@localhost ~]# useradd -u 1005 -s /bin/bash -e -1 wang5

示例3:新建一个辅助管理员用户admin,将其用户家目录指定为/admin,基本组指定为wheel,附加组同时属于adm组和root组

[root@localhost ~]# useradd -d /admin -g wheel -G adm,root admin

示例4:新建一个用于访问FTP的zhao6用户,禁止其登录且不创建家目录。

[root@localhost ~]# useradd -M -s /sbin/nologin zhao6

2、修改用户信息usermod 选项 username
常用的选项包括 -c,-d,-m,-g,-G,-s,-u 等,这些选项的意义与useradd命令中的选项一样,还可使用以下选项:

  • -l 新用户名:更改账户名称,必须在该用户未登录的情况下才能使用
  • -L:锁定用户账户,使其不能登录使用
  • -U:解锁用户账户

3、为账户设置密码passwd 账户名
常用选项:

  • -d:——清空指定用户的口令。这与未设置口令的账户不同,未设置口令的账户无法登录系统,而口令为空的账户可以。
  • -e——使用户的账号密码立即过期,强迫用户下次登录时必须修改口令。
  • -i——口令过期后多少天停用账户。
  • -l——锁定(停用)用户账户。
  • -n——指定口令的最短存活期。
  • -x——指定密码的最长使用期限。
  • -u——解锁用户账户。

4、删除用户账户
命令格式:userdel [-r] 账户名
-r:在删除账户的同时删除该账户对应的主目录

5、用户间切换su命令
命令格式:su 用户名
从root用户切换到任何普通用户不需要密码验证,而普通用户切换到root用户或者其他用户需要输入目标用户的密码验证
su和su -命令的区别是加载的配置文件不一样:
su 切换方式加载的文件: ~/.bashrc,/etc/bashrc
su - 切换方式加载的文件: /etc/bashrc,/etc/profile,~ /.bashrc,~/.bash_profile

用户组管理

1、创建用户组groupadd [-r] 用户组名称
选项:

  • -g GID:指定新的用户组的GID,默认值已有的GID加1
  • -r:建立一个系统组账户,与-g不同时使用时,分配一个1-999的GID
    示例:向系统中添加一个组ID为1100,组名为group1的新组
[root@localhost ~]# groupadd -g 1100 group1
[root@localhost ~]# tail -1 /etc/group
group1:x:1100:

2、修改用户组属性
命令格式:groupmod 选项 用户组
选项:

  • -g GID:为用户组指定新的组标识号
  • -n 新用户组:将用户组的名字改为新名字,修改用户组的名字和GID值

示例:将组group1的GID修改为2000,组名修改为group11

[root@localhost ~]# groupmod -g 2000 -n group11 group1
[root@localhost ~]# tail -1 /etc/group
group11:x:2000:

3、添加删除组成员
命令格式:gpasswd 选项 用户 组
只有root用户和组管理员才能够使用此命令
选项:

  • -r:删除组密码
  • -a:把用户加入组
  • -d:把用户从组中删除
  • -M:同时添加多个用户
  • -A:给组指派管理员

示例:将wang5,q用户同时加入group11组,并指派wang5为管理员

[root@localhost ~]# gpasswd -M wang5,q -A wang5 group11 
[root@localhost ~]# tail -1 /etc/group
group11:x:2000:wang5,q

4、删除组账户
命令格式:groupdel 用户组名
被删除的组若是基本组,则必须先删除引用该基本组的用户,然后再删除该基本组。

示例:从系统中删除组group11

[root@localhost ~]# groupdel group11 

查询用户和组信息

1、显示某个账户的详细信息
[root@localhost ~]# id w uid=1000(w) gid=1000(w) groups=1000(w)
2、显示用户的属组信息
[root@localhost ~]# groups w w : w

查看用户登录系统的情况

1、查看当前登录系统的用户users
2、last:列出目前与过去登入系统的用户相关信息,该命令默认读取/var/log/wtmp文件,并把该文件记录的登入系统的用户名单全部显示出来

[root@localhost ~]# last -2
root     pts/0        192.168.24.1     Tue Oct 18 10:26   still logged in
reboot   system boot  4.18.0-348.el8.x Tue Oct 18 09:25   still running

3、w:显示登录到系统的用户信息

[root@localhost ~]# w
 17:51:08 up  8:26,  1 user,  load average: 0.03, 0.02, 0.00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.24.1     10:26    2.00s  0.26s  0.01s w

5、显示目前登录到系统的用户,who通常通过/var/run/utmp文件来获取信息

[root@localhost ~]# whoami
root
[root@localhost ~]# who am i
root     pts/0        2022-10-18 10:26 (192.168.24.1)

二、Linux文件系统权限

文件的一般权限

文件的权限针对三类对象进行定义:
- owner:属主,u
- group:属组,g
- other:其他,o
每个文件针对每类访问者定义了三种主要权限:
root账户不受文件权限的读写限制,执行权限受限制

  • r:read读
  • w:write写
  • x:execute执行

1、修改文件或目录的权限
命令格式:chmod [选项] [ugoa] [+-=][rwx] 文件或目录
命令格式:chmod [选项] nnn 文件或目录
常用的选项 -R ,递归修改指定目录下所有文件、子目录的权限
ugoa :表示权限设置所针对的用户类别,可以是其中字母中的一个或组合,u表示文件或目录的属主;g表示属组内的用户;o表示其他用户;a表示所有用户(即u+g+o)。
+或-或= :表示设置权限的操作动作,+代表添加某个权限;-代表取消某个权限;=表示只赋予给定
的权限,并取消原有的权限。
rwx :用字符形式表示的所设置的权限,可以是其中一个字母或组合。
nnn :用三位八进制数字表示的权限。

2、修改文件或目录的属主和属组
(1)修改文件或目录的属主
命令格式:chown [选项] 新属主[:[新属组]] 文件或目录
选项: -R 可递归设置指定目录下的全部文件(包括子目录和子目录中的文件)的所属关系。
(2)修改文件或目录的属组
命令格式: chown [选项] :新属组 文件或目录
命令格式: chgrp [选项] 新属组 文件或目录

文件和目录的特殊权限

1、SUID权限的含义:是为了让一般用户在执行某些程序的时候,在程序运行的时候,暂时获得该程序文件属主的权限
注:
- suid仅对二进制文件有效
- 在执行过程中,调用者会暂时获得文件属主的权限
- 该权限只在程序执行的过程中有效

2、SGID 权限
SGID 可以用在两个方面:

  • 文件: 如 果 SGID 设置在二进制文件上, 则不论用户是谁,在执行该程序的时候,程序的所属组将会变成该程序文件的所属组。
  • 目录, 如 果 SGID 是设置在 A 目录上, 则在 A 目录内所建立的文件或目录的所属组, 将会是此 A目录的所属组

ACL权限

ACL权限分配:给指定的用户指定的目录分配指定的权限
1、ACL权限管理命令

  • 查看ACL权限:getfacl 文件名

  • 设置ACL权限:setfacl 选项 文件名
    选项:

  • -m:设定ACL权限,如果是给予用户ACL权限,则使用u:用户名:权限格式赋予,如果是给予组ACL权限,则使用g:组名:权限格式赋予

选项说明
-x删除指定的ACL权限
-b删除所有的ACL权限
-d设定默认的ACL权限,只对目录生效,指目录中新建的文件拥有此默认权限
-k删除默认权限
-R递归设置ACL权限

权限掩码umask

1、设置新建文件或目录的默认权限
在Linux系统中,当用户创建一个新的文件或者目录时,系统都会为新建的文件或者目录分配默认的权限,该默认权限与umask值有关:

  • 新建文件的默认权限=0666 -umask值
  • 新建目录的默认权限=0777-umask值

2、查看,修改用户当前默认的umask值
查看umask值:

[root@localhost /]# umask 
0022

修改:
临时修改:

[root@localhost /]# umask 000
[root@localhost /]# umask
0000

永久修改:

[root@localhost /]# vim /etc/profile
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
umask 002
else
umask 022
fi
[root@localhost ~]# source /etc/profile
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值