Linux账号与权限管理
目录
一、账号管理
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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!