Linux账号与权限管理

2023-12-27 09:22:03

目录

一、账号管理

1. 用户账号

1.1 概述

1.2 用户账号类型

1.3 用户账号区分

2. 组账号

2.1 概述

2.2 区分

3. 用户账号管理

3.1 重要文件存放位置

3.2 基本信息

3.3 添加用户

3.3.1 通式

3.3.2 选项示例

3.4 密码管理

?3.4.1 通式

3.4.2 选项示例

3.4.3 免交互修改密码

3.4.4 随机生成密码?

3.5 修改用户账号的属性

3.5.1 通式

3.5.2 选项示例?

3.6 删除用户?

4. 组账号管理?

4.1 组账号文件

4.2 添加组

4.3 组内管理

4.3.1 通式

4.3.2 选项示例

4.4 删除组

5. 查询

二、权限管理

1. 权限查看与修改

2. 特殊权限管理

3. umask应用

4. 权限访问控制列表ACL


一、账号管理

1. 用户账号

1.1 概述

用户账户是用来记录用户的用户的和口令、隶属的组、可以访问的资源,以及用户的个人文件和设置。每个用户在系统中都有一个用户账号。

1.2 用户账号类型

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

超级管理员:拥有至高无上的权限

程序用户:不是给用户使用的,供程序使用(不允许登录,安全性考虑)

1.3 用户账号区分

系统根据用户身份使用的uid号来辨识

超级管理员:默认是0

普通用户:centos7:1000-60000;centos6之前:500开始

程序用户:centos7:1-999;centos6之前:1-499

2. 组账号

2.1 概述

按照一定的宗旨和系统建立起来的集体。linux和windows中的组就是将多个用户集合起来,统一分配某种相同的权限(开通或关闭)。

2.2 区分

基本组:“主岗位”,私有组,有且唯一;用户所属组中的第一个组称为基本组

附加组:公共组,可有可无,可能有多个;除了第一个组外的其他组为附加组或公共组

3. 用户账号管理

3.1 重要文件存放位置

/etc/passwd:存放用户的信息

/etc/shadow:存放用户的密码信息

3.2 基本信息

  • passwd分为七段,每段用:隔开
[root@localhost ~]# cat /etc/passwd | head -n1
root:x:0:0:root:/root:/bin/bash

① 用户名,登录系统的名字,唯一

② 密码占位符,具体内容不在这里

③ uid,用户的身份证

④ gid,group组号

⑤ 备注信息,如经理、职员

⑥ 家目录位置

⑦ 默认的shell类型,/bin/bash

  • shadow分为九段,每段用:隔开
[root@localhost ~]# head -1 /etc/shadow
root:$6$Mx……8vV/L0Hxd1::0:99999:7:::

① root,用户名

② 加密的密码,*或!!代表不可以登录

③ 最近一次修改密码的时间,使用:date -d "1970-01-01 19717 days"可以查看具体时间

④ 如果这里是7,代表7天后才可以修改密码,0代表随时可以修改

⑤ 密码有效期,99999永久有效

⑥ 7代表密码过期前7天会提醒你一次

⑦ 如果这里是7,代表密码过期7天后会被锁定

⑧ 失效时间,如:19718代表明天过期,超过有效期也无法登录

⑨ 保留字段,未使用

3.3 添加用户

3.3.1 通式
useradd [选项]…… 用户名
[root@localhost ~]# useradd zhangsan               #创建用户zhangsan
[root@localhost ~]# tail -1 /etc/passwd
zhangsan:x:1001:1001::/home/zhangsan:/bin/bash
3.3.2 选项示例

-u:指定uid

-M:不生成家目录

-s:指定shell类型

-e:指定失效时间

-c:备注信息

-d:指定家目录

-g:指定基本组

-G:指定附加组

-p:指定密码

[root@localhost ~]# useradd -u 1500 -M -s /sbin/nologin lisi
#添加用户李四指定uid1500,不生成家目录且不允许登录
[root@localhost ~]# tail -1 /etc/passwd
lisi:x:1500:1500::/home/lisi:/sbin/nologin

3.4 密码管理

?3.4.1 通式
passwd [选项] 用户
[root@localhost ~]# passwd zhangsan
更改用户 zhangsan 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
3.4.2 选项示例

-l:锁定用户

-u:解锁用户

-S:查看当前用户状态

-d:清空密码,直接登录

[root@localhost ~]# passwd -l zhangsan
锁定用户 zhangsan 的密码 。
passwd: 操作成功
[root@localhost ~]# passwd -S zhangsan
zhangsan LK 2023-12-26 0 99999 7 -1 (密码已被锁定。)
[root@localhost ~]# passwd -u zhangsan
解锁用户 zhangsan 的密码。
passwd: 操作成功
3.4.3 免交互修改密码
[root@localhost ~]# echo 123456 | passwd zhangsan --stdin
更改用户 zhangsan 的密码 。
passwd:所有的身份验证令牌已经成功更新。
3.4.4 随机生成密码?
[root@localhost ~]# cat /dev/random | tr -cd [a-zA-Z0-9] | head -c 12
F2Py]]O[ei6F[root@localhost ~]# 
#随机生成内容 | 删除字符取补集(取反) | 前面12个字符

3.5 修改用户账号的属性

3.5.1 通式

useradd? [选项]…… 用户

3.5.2 选项示例?

-l:修改用户名

-L:锁定用户

-U:解锁用户

选项与useradd基本一致

[root@localhost ~]# usermod -l wangwu zhangsan | id wangwu
uid=1001(wangwu) gid=1001(zhangsan) 组=1001(zhangsan)

3.6 删除用户?

userdel [选项] 用户
[root@localhost ~]# userdel -r wangwu  #-r将宿主(家)目录一起删除
[root@localhost ~]# id wangwu
id: wangwu: no such user

4. 组账号管理?

4.1 组账号文件

/etc/group:保存组帐号基本信息

/etc/gshadow:保存组帐号的密码信息基本不使用

4.2 添加组

groupadd  [-g GID]  组账号名 
[root@localhost ~]# groupadd ky35
[root@localhost ~]# tail -1 /etc/group
ky35:x:1501:

4.3 组内管理

4.3.1 通式

gpasswd [选项] 用户、组成员

4.3.2 选项示例

?-a:向组内添加一个用户

?-d:从组内删除一个用户成员

?-M:定义组成员列表,以逗号分隔

[root@localhost ~]# useradd zhangsan
[root@localhost ~]# groupadd ky35
[root@localhost ~]# gpasswd -a zhangsan ky35
正在将用户“zhangsan”加入到“ky35”组中
[root@localhost ~]# id zhangsan
uid=1001(zhangsan) gid=1001(zhangsan) 组=1001(zhangsan),1002(ky35)

4.4 删除

groupdel 组账号名

5. 查询

  • finger命令:查询用户帐号的详细信息(finger [用户名])
[root@localhost ~]# finger zhangsan
Login: zhangsan       			Name: 
Directory: /home/zhangsan           	Shell: /bin/bash
Never logged in.
No mail.
No Plan.
  • w命令:查询已登录到主机的用户信息
[root@localhost ~]# w
 23:25:58 up  1:38,  2 users,  load average: 0.22, 0.06, 0.06
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.190.1    21:47    1:02  17.29s 17.04s /usr/bin/python
root     pts/1    192.168.190.1    23:25    5.00s  0.08s  0.01s w
标题含义
USER登录到系统的用户。
TTY登录终端。
FROM表示用户从哪里登陆进来,一般显示远程登陆主机的 IP 地址或者主机名。
LOGIN@用户登陆的日期和时间。
IDLE表示某个程序上次从终端开始执行到现在所持续的时间。
JCPU和该终端连接的所有进程占用的 CPU 运算时间。这个时间里并不包括过去的后台作业时间,但是包括当前正在运行的后台作业所占用的时间。
PCPU当前进程所占用的 CPU 运算时间。
WHAT当前用户正在执行的进程名称和选项,换句话说,就是表示用户当前执行的是什么命令。
  • who命令:相比较 w 命令,who 命令只能显示当前登陆的用户信息,但无法知晓每个用户正在执行的命令。 who 命令的基本格式: who [选项] [file]
[root@localhost ~]# who
root     pts/0        2023-12-26 21:47 (192.168.190.1)
root     pts/1        2023-12-26 23:25 (192.168.190.1)
选项含义
-a列出所有信息,相当于所有选项。
-b列出系统最近启动的时间日期。
-l列出所有可登陆的终端信息。
-m仅列出关于当前终端的信息,who -m 命令等同于 who am i
-q列出在本地系统上的用户和用户数的清单。
-r显示当前系统的运行级别。
-s仅显示名称、线路和时间字段信息,这是 who 命令的默认选项。
-u显示当前每个用户的用户名、登陆终端、登陆时间、线路活动和进程标识。
-T 或 -w显示 tty 终端的状态,“+”表示对任何人可写,“-”表示仅对 root 用户或所有者可写,“?”表示遇到线路故障。
  • user命令
[root@localhost ~]# users
root root

二、权限管理

1. 权限查看与修改

2. 特殊权限管理

3. umask应用

4. 权限访问控制列表ACL

文章来源:https://blog.csdn.net/qq_64612585/article/details/135228394
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。