权限管理-用户组管理
1. Linux用户介绍
1. 用户的概念
用户对硬件资源的操作都需要通过操作系统,比如用户要读取硬盘中的一份关键数据,出于安全考虑,操作系统的开发者们都专门开发了安全机制,要使用操作系统必须事先输入正确的用户名与密码,这便是用户的由来
2. 创建用户的目的
1. 系统上的每一个进程,都需要一个特定的用户运行
一个用户拥有特定的权限,该用户运行的进程与用户权限一致
2. 通常在公司是使用普通用户管理服务器,因为root权限过大,容易出问题
3. 查看用户相关信息
[root@aliyum ~]
uid=0(root) gid=0(root) groups=0(root)
[root@aliyum ~]
root
[root@aliyum ~]
uid=0(root) gid=0(root) groups=0(root)
[root@aliyum ~]
root pts/2 2020-10-23 15:24
(139.227.12.100)
[root@aliyum ~]
root 1067 0.0 0.2 112920 4328 ?
Ss Feb15 0:04 /usr/sbin/sshd -D
root 27197 0.0 0.2 154708 5576 ?
Ss 15:24 0:00 sshd: root@pts/2
4. linux系统中用户角色划分
在linux系统中的用户分为管理员用户与其他用户
管理员用户拥有最高权限
其他用户根据管理员的分配拥有不同的权限
对于linux系统来说,用户的角色是通过UID和GID识别的
用户系统帐号的名称(如lee)其实给管理员看的,linux系统能够识别的仅仅是UID和GID这样的数字
1. UID (User Identify)用户ID
唯一标识一个系统用户的帐号,uid在系统中是唯一的
uid相当于一个人的身份证,用户名就相当于这个人的名字
2. GID (Group Identify)组ID
如果把一个操作系统当成一家公司,uid相当于这个人的员工号,gid相当于他的部门编号
uid: 0 由超级用户或具备超级用户权限的用户创建的用户(贫民老百姓,大臣,布衣/bin/bash)
uid: 1~499 系统虚拟用户 存在满足文件或服务启动的需要 一般不能登录
uid: 500-65535 普通用户
0 超级管理员,最高权限,有着极强的破坏能力
1~200 系统用户,用来运行系统自带的进程,默认已创建
201~999 系统用户,用来运行安装的程序,所以此类用户无需登录系统
1000+ 普通用户,正常可以登录系统的用户,权限比较小,能执行的任务有限
一对一,多对一,一对多,多对多
5. 超级用户
默认是root用户,其UID和GID均为0。root用户在每台unix/linux操作系统中都是唯一且真实存在的,通过它可
以登录系统,可以操作系统中任何文件和命令,拥有最高的管理权限
1. 操作系统 => 一个国家
2. root用户 => 国王
3. root用户的家目录 => 皇宫
1. 在生产环境中,一般会禁止root帐号通过SSH远程连接服务器(保护好皇帝),当然,也会更改默认的SSH端口(保护好皇宫),以加强系统安全。
2. 企业工作中:没有特殊需求,应该尽量不要登录root用户进行操作,应该在普通用户下操作任务,然后用sudo管理普通用户的权限,可以细到每个命令权限分配。
3. 在linux系统中,uid为0的用户就是超级用户。但是通常不这么做,如果确实有必要在某一操作上用到管理的权限的话,那就用sudo单独授权,也不要直接用uid为0的用户
6. 扩展阅读
'''
Linux/Unix是一个多用户、多任务的操作系统
windows是一个单用户多任务操作系统
linux发展史
multics => unix => linux
所以linux是多用户的,天然支持多个连机终端,连机终端在没有互联网的情况下是有意义的,多个人可以用不同的连机终端连到一台机器/服务器上使用,而有了互联网之后,多个人可通过网络访问服务器,这个时候多用户or单用户的概念就不再那么重要
'''
多用户不是说可以创建多个用户,而是指一次可以登录多个
用户多任务指的是可以并发执行多个进程
2. 用户与组相关文件
/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
1. /etc/passwd
root:x:0:0:root:/root:/bin/bash
第一字段
用户名(也被称为登录名)
第二字段
口令 在例子中我们看到的是一个x,其实密码已被映射到/etc/shadow文件中
第三字段
UID 请参看本文的UID的解说
第四字段
GID 请参看本文的GID的解说
第五字段
描述信息,可选
第六字段
用户的家目录所在位置
第七字段
用户所用SHELL的类型
2. /etc/shadow
small_egon:1VE.Mq2Xf$2c9Qi7EQ9JP8GKF8gH7P
B1:13072:0:99999:7:::
big_egon:1IPDvUhXP$8R6J/VtPXvLyXxhLWPrnt/
:13072:0:99999:7::13108:
第一字段
用户名(也被称为登录名)
在/etc/shadow中,用户名和/etc/passwd 是相同的
这样就把passwd和shadow中用的用户记录联系在一起这个字段是非空的
第二字段
密码(已被加密)
如果是有些用户在这段是x,表示这个用户不能登录到系统,这个字段是非空的
第三字段
上次修改口令的时间,这个时间是从1970年01月01日算起到最近一次修改口令的时间间隔(天数)
您可以通过passwd来修改用户的密码,然后查看/etc/shadow中此字段的变化
第四字段
两次修改口令间隔最少的天数,如果设置为0,则禁用此功能;也就是说用户必须经过多少天才能修改其口令
此项功能用处不是太大,默认值是通过/etc/login.defs文件定义中获取,PASS_MIN_DAYS中有定义
第五字段
两次修改口令间隔最多的天数,这个能增强管理员管理用户口令的时效性,应该说增强了系统的安全性
如果是系统默认值,是在添加用户时由/etc/login.defs文件定义中获取,在PASS_MAX_DAYS中定义
第六字段
提前多少天警告用户口令将过期,当用户登录系统后,系统登录程序提醒用户口令将要作废
如果是系统默认值