Linux用户账号和权限管理

用户与用户组

一、用户的概述

以某种身份登录,那么用户的权限就会受到限制,用户的身份决定了用户能干什么。Linux中每个用户是通过 User Id (UID)来唯一标识的 新建用户 1-60000 自动分配 0-65535 端口号。

二、用户的类型

  • 超级管理员:权限最高的用户;

  • 普通用户:权限受到限制的用户;

  • 程序用户:不是给人登录使用的,给程序使用的。

注意

操作系统需要用一些文件,这些文件是否可以被打开,和程序用户登录有关。

三、用户组的概述

linux系统中的用户组(group)就是具有相同特性的用户(user)集合。将多个用户集合起来,统一分配某种相同的权限(开通或关闭)。

四、用户组的类型

一个用户必须有一个基本组,附加组可有可无,也可以有多个。

  • 基本组(私有组):一定要有,有且只有一个;

  • 附加组(公有组):可有可无,可以有多个。

五、UID和GID

UID:用户的身份证号

GID:用户组的身份证号

系统是靠uid来区分用户身份的;

用户的uid为0就是超级管理员,不是因为它叫root。

六、以uid识别用户身份

系统用户 centos 6 centos 7
uid范围 0-60000 0-60000
超级管理员 0 0
普通用户 500-60000 1000-60000
程序用户 1-499 1-999

用户管理

一、用户信息文件:/etc/passwd

作用:保存文件名称,宿主目录登录shell基本信息

用户信息:root:x:0:0:root:/root:/bin/bash

  • root:用户名

  • x:密码占位符

  • 0:uid,0为超级管理员

  • 0:gid,0为超级管理员

  • root:备注信息

  • /root:家目录位置

  • /bin/bash:登录时默认加载的shell类型

二、用户密码文件:/etc/shadow

作用:存放密码及密码策略的文件

密码信息:root: <math xmlns="http://www.w3.org/1998/Math/MathML"> 6 6 </math>6vUt1Ws1x1xbpPkx1$tRR/a/o1BNriWgOD2GgHmdSS/nXysdVDdmEV6SGbPwBXDvyf15u.wu70Hgi1aT6pbt1XmabYxTe4rnquTbyTS/::0:99999:7:::

  • 第一列:root 用户名

  • 第二列: <math xmlns="http://www.w3.org/1998/Math/MathML"> 6 6 </math>6vUt1Ws1x1xbpPkx1$tRR 加密的密码

  • 第三列:17110 上次修改密码时间,最近一次修改密码的时间到1970年1月1日到修改密码那天的天数

  • 第四列:0 不限制下次修改密码的时间

  • 第五列:99999 密码有效期为99999天,约等于无限期 如果你设置3代表3天后需要修改,否则无法登录

  • 第六列:7 密码到期前7天提醒你修改密码

  • 第七列:密码宽限时间

  • 第八列:账户失效时间

  • 第九列:保留字段未启用

三、添加用户账号:useradd

useradd命令格式 :useradd [选项] 用户名

新建一个用户:

  • 自动建立一个同名的基本组

  • 自动建立一个同名的家目录,在/home下

选项 作用
-u 指定UID
-s 指定登录shell的类型
-M 不建立家目录
-d 指定家目录位置(可以不存在)
-e 指定用户的账户失效时间,格式2024-04-05
-g 指定基本组
-G 指定附加组
-r 随机生成一个uid1-999的用户,不建家目录
-c 备注信息
-p 密码,必须是加密后的密码

示例

1)-u 指定用户的UID

LHEY 复制代码
[root@localhost /]# useradd -u 2000 LRJ        //添加LRJ用户,并指定UID为2000
[root@localhost /]# cat /etc/passwd |grep LRJ  //查看passwd中LRJ的信息
LRJ:x:2000:2000::/home/LRJ:/bin/bash

2)-s 指定登录shell的类型

LHEY 复制代码
[root@localhost /]# useradd -s /sbin/nologin LHEY  //创建LHEY用户并指定登录shell为/sbin/nologin,该用户无法登录系统
[root@localhost /]# cat /etc/passwd |grep LHEY     //查看passwd中LHEY的信息
LHEY:x:2003:2003::/home/LHEY:/sbin/nologin

3)-M 不建立家目录

LHEY 复制代码
[root@localhost /]# useradd -M LAIL   //创建LAIL用户且不建立家目录
[root@localhost /]# ls /home          //查看/home下有没有LAIL的家目录
lhey  LRJ  test

四、设置/更改用户口令:passwd

root用户可以指定用户名作为参数,对指定账号的密码进行管理。不指定用户名时,修改当前账号的密码。

普通用户只能执行单独的passwd命令修改自己的密码

passwd命令格式:passwd [选项] 用户名

选项 作用
-d 清空用户密码
-l 锁定用户无法登录
-u 解锁用户
-S 查看用户是否被锁定

1)设置或修改用户密码

LHEY 复制代码
[root@localhost ~]# passwd LHEY    //设置或修改LHEY用户的密码
更改用户 LHEY 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

2)-d 清除用户密码,使用用户名可直接登录

LHEY 复制代码
[root@localhost ~]# passwd -d LHEY    //清除LHEY用户的密码
清除用户的密码 LHEY。
passwd: 操作成功

3)锁定和解锁用户

LHEY 复制代码
[root@localhost ~]# passwd -l LHEY      //锁定LHEY用户密码,锁定后LHEY用户无法登陆
锁定用户 LHEY 的密码 。
passwd: 操作成功
[root@localhost ~]# passwd -u LHEY      //解锁LHEY用户密码
解锁用户 LHEY 的密码。
passwd: 操作成功

注意:因LHEY无密码,系统提示不安全,必须使用-f才能解锁。

LHEY 复制代码
[root@localhost ~]# passwd -l LHEY       //锁定LHEY用户密码,锁定后用户无法登陆
锁定用户 LHEY 的密码 。
passwd: 操作成功
[root@localhost ~]# passwd -u LHEY       //解锁LHEY用户,因LHEY用户无密码,系统提示不安全,必须使用-f才
解锁用户 LHEY 的密码。
passwd: 警告:未锁定的密码将是空的。
passwd: 不安全的操作(使用 -f 参数强制进行该操作)

五、修改用户账号的属性:usermod

对已有用户的属性进行修改

usermod命令格式:usermod [选项] 用户名

选项 作用
-l 更改用户的名称
-u 指定UID
-s 指定登录shell的类型
-d 指定家目录位置(可以不存在)
-e 指定用户的账户失效时间,格式2024-04-05
-g 指定基本组
-G 指定附加组
-r 随机生成一个uid1-999的用户,不建家目录
-c 备注信息
-p 密码,必须是加密后的密码
-L 锁定用户账户
-U 解锁用户账户

示例

LHEY 复制代码
[root@localhost ~]# usermod -l LHEY LRJ    //将LRJ的用户名改成LHEY
[root@localhost ~]# usermod -L LHEY        //锁定LHEY用户
[root@localhost ~]# passwd -S LHEY         //查看LHEY用户状态
LHEY LK 2024-04-05 0 99999 7 -1 (密码已被锁定。)
[root@localhost ~]# usermod -U LHEY        //解锁LHEY用户
[root@localhost ~]# passwd -S LHEY         //查看LHEY用户状态
LHEY PS 2024-04-05 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)

六、删除用户:userdel

userdel命令格式:userdel [选项] 用户名

  • -r:连家目录一起删

示例

LHEY 复制代码
[root@localhost ~]# userdel number01
[root@localhost ~]# ls /home
number01  number02
[root@localhost ~]# userdel -r number02
[root@localhost ~]# ls /home
number01

用户组管理

一、组账号文件

组账号文件的位置

  • /etc/group:保存组账号基本信息。

  • /etc/gshadow:保存组账号的密码信息。

group文件每行分成了4段,每个字段含义如下:

  • 字段1:组账号名称。
  • 字段2:密码占位符x;通常不需要设置组密码。由于安全原因,该密码被记录在/etc/gshadow中,因此显示为'x'。类似/etc/shadow文件。
  • 字段3:组编号GID。
  • 字段4:本组的成员用户列表 (一般不包括基本组对应的用户帐号),多个成员之间以逗号","分隔 。

示例

LHEY 复制代码
[root@localhost ~]# head -3 /etc/group
root:x:0:
bin:x:1:
daemon:x:2:

二、添加组账号:groupadd

groupadd命令格式:groudadd [-g GID] 组账号名

示例

LHEY 复制代码
[root@localhost ~]# groupadd -g 1025 LRJ   //添加LRJ用户组,指定GID为1025
[root@localhost ~]# tail -1 /etc/group     //查看group文件
LRJ:x:1025:

三、删除组账号:groupdel

groupdel命令格式:groupdel 组账号名

示例

LHEY 复制代码
[root@localhost ~]# groupdel LRJ  //删除LRJ用户组
[root@localhost ~]# tail -4 /etc/group  //查看group文件
sshd:x:74:
tcpdump:x:72:
lhey:x:1000:lhey
apache:x:48:

用户帐号的初始配置文件

一、初始配置文件的来源

新建用户账号时,从 /etc/skel 目录中复制而来, 比如默认bin/bash,默认家目录。

用户宿主目录下的初始配置文件只对当前用户有效。

二、主要的用户初始配置文件

  • ~/.bash_profile : 这个文件是为系统全局变量配置文件,可以通过重启系统或者执行 "source /etc/profile" 命令使profile文件被读取。

  • ~/.bashrc: 这个文件实际上是/etc/profile的子目录,存放的是一些应用程序所需的启动脚本。

  • ~/.bash_logout: 每一个允许bash shell 的用户都会执行此文件。可通过执行bash命令打开一个新的bash,使bashrc文件被读取。

备注

  • 修改/etc/profile文件中相关配置,切换bash或者用户后都需要source /etc/profile才生效;

  • 修改/etc/bashrc文件中相关配置,切换bash或者用户后直接生效

三、文件/目录的权限和权属

属主:文件的主人,文件的拥有者

属组:文件的拥有组

rw- r-- r--

  1. r:读

文件:可以看里面的内容

文件夹:可以用ls看文件夹的文件列表

  1. w:写

文件:可以修改文件的内容

文件夹:新建文件(文件夹),删除文件(文件夹,移动文件(文件夹

  1. x:执行

文件:可以运行(命令,脚本),颜色是绿色

文件夹:执行是最小的权限,没有执行,读写无法使用

四、数字法表示文件的权限

rwx

100-----------4

010-----------2

001-----------1

111-----------7

二进制转化成十进制

最高权限为7

五、修改文件权限:chmod

chmod命令格式:chmod 【选项】 指明属主,属组,其他人+权限 文件

常用选项:

选项 作用
-R 递归
u 属主
g 属组
o 其他人
a 所有人
+ 加上
- 减去
= 赋予
相关推荐
a_安徒生6 分钟前
linux安装TDengine
linux·数据库·tdengine
追风赶月、12 分钟前
【Linux】线程概念与线程控制
linux·运维·服务器
小字节,大梦想14 分钟前
【Linux】重定向,dup
linux
blessing。。1 小时前
I2C学习
linux·单片机·嵌入式硬件·嵌入式
2202_754421541 小时前
生成MPSOC以及ZYNQ的启动文件BOOT.BIN的小软件
java·linux·开发语言
运维&陈同学2 小时前
【zookeeper03】消息队列与微服务之zookeeper集群部署
linux·微服务·zookeeper·云原生·消息队列·云计算·java-zookeeper
周末不下雨3 小时前
win11+ubuntu22.04双系统 | 联想 24 y7000p | ubuntu 22.04 | 把ubuntu系统装到1T的移动固态硬盘上!!!
linux·运维·ubuntu
哎呦喂-ll4 小时前
Linux进阶:环境变量
linux
Rverdoser4 小时前
Linux环境开启MongoDB的安全认证
linux·安全·mongodb