前言
本文主要讲解了如何创建管理Linux系统中的账号,并通过命令如何对账号的属性,权限进行管理。
一、3A认证
3A认证属于Linux系统中的验证机制:
A(authentication):验明正身 (A:账户密码一一对应,B:生物特征识别如指纹等,C:验证码:短信认证)其中短信认证最具安全性
A(authorization):授权(什么用户拥有什么样的权限)
A(accounting):审计(什么用户做了什么操作,导致了什么结果)
3A认证一般用于搭建网络,管理路由器
二、Linux中的管理用户账号和组账号
2.1 用户的种类
- 超级管理员(给人使用):拥有最高权限的账户(默认叫做root)可正常登录
- 普通用户(给人使用):拥有部分权限,权限受制的用户。可正常登录
- 程序用户(人不可使用):不可正常登录,只给程序使用
程序用户是专门给程序使用的用户,无需登录,直接启动
2.2 w命令
w命令可以看到当前登录用户,命令格式:w加回车可以看到当前登录的用户
-
USER:用户
-
TTY:登陆方式
-
FROM:从哪里登录
-
LOGIN@ :登陆时间
-
IDLE:进程
-
JCPU:附加到tty(终端)的进程所用的时间
-
PCPU:当前进程所用时间
-
WHAT:当前运行的进程
三、 组的种类
3.1 组的划分
- 基本组:一个用户一定要有一个基本组(用户的基本组有且只有一个)
- 附加组:一个用户可以没有附加组,也可以有多个附加组
3.2 uid、gid
uid:系统用来识别用户的唯一标识
gid:系统用来识别组的唯一标识
uid首先是整数范围为0-60000
超级管理员 uid一定是0
识别是否为超级管理员只看uid是否为0
命令:id+用户名:查看当前用户的uid gid 以及组
程序用户uid范围(Centos7):1-999
普通用户uid范围:1000-60000
只能修改普通用户的uid范围
思考题:root一定是超级管理员吗?
答:不一定,跟uid有关系,uid为0,root才是超级管理员
补充:修改uid的范围命令(不建议修改):#vim /etc/login.defs
四、管理用户账号
4.1 用户帐号文件
文件位置:/etc/passwd(用于存放用户信息)
第一字段:用户名
第二字段:密码占位符
第三字段:uid
第四字段:组id
第五字段:备注信息
第六字段:家目录位置
第七字段:默认shell程序
4.2 保存用户的密码、账号有效期等信息
文件位置:/etc/shadow
第一段字段(teacher):用户名
第二段字段(上图从$-8的字符串):密码
当密码为*或者!!时,代表用户不能登录,如下图所示:
第三字段:上一次修改密码的时间,数字含义为从1970-1-1到改密码的时间一共经历了多少天
第四字段:最小修改密码间隔时间 ,如果是0 可以随意修改, 7代表7天后才可以修改
第五字段:密码有效期,默认99999天 273年,设置为 7 代表7天要求你重新设置密码
第六字段:密码到期提醒时间 设置为7 代表密码到期前7天会提示你
第七字段:密码过期后的宽限天数 设置为10 表示密码到期后还可以使用10天
第八字段:用户失效时间 同第 3 个字段一样,使用自 1970 年 1 月 1 日以来的总天数作为账户的失效时间,到期后无法登录
第九字段:保留字段
补充:在文件属性的界面,所有字段都由冒号分隔开,每个冒号都代表上一个字段的结束,下一个字段的开始
五、 useradd命令
通式:useradd [选项]... 用户名(可以跟多个选项)
该命令主要用于创建新用户时,就给新用户设置属性权限。
5.1 useradd -u:指定uid
从下图可以看到我们创建用户zhangsan将uid设置为1001
5.2 useradd -g:指定基本组(组名和gid都可以)
从下图可以看到我们创建用户lisi将gid设置为1001,要注意gid只能分配已存在的
5.3 useradd -G:指定附加组(组名和gid都可以)
如下图所示,我们创建的wangwu用户基本组为1004,并指定了用户wangwu加入到了(1001)zhangsan的组中,此时wangwu作为附加组在1001(zhangsan)中
5.4 useradd -d:指定家目录
正常我们创建一个用户,他的家目录在根目录下的/home目录下的同用户名文件,我们通过这个命令可以自定义家目录的名字,如下图所示:
我们可以看到在输入此命令后可以定义家目录的名字以及家目录的位置,命令格式为:-d +家目录的位置及名字+ 用户名
5.5 useradd -M:不建立家目录
通过我们上面的命令可以使创建的新用户不建立家目录
5.6 useradd -s:指定默认登录shell
首先我们通过命令查看一下我们shell内核的分类:
如上图,我们要了解到以nologin结尾的shell都是让用户无法进行登录
然后我们创建一个正常的用户lisi,同时再创建一个zhangsan的用户使他无法进行登录进行对比:
如上图所示,我们可以看到我们通过命令设置了zhangsan用户的shell使张三无法进行登录,我们先给zhangsan一样设置密码,看看zhangsan是否可以正常显示在登陆界面。
从上方一系列操作来看,我们的zhangsan用户在设置密码成功后,依然不会显示在用户选择界面,无法进行登录,我们使用超级管理员账号想要切换到zhangsan用户也显示无法切换,不被允许。
六、passwd命令
通式:passwd [选项] 用户名 回车后改密码
6.1 passwd -d:清空密码(用户可以不输入密码直接登录)
6.2 passwd -l:锁定用户,不允许登录
从上一个命令操作后,我们zhangsan用户是可以直接不输密码进入用户界面的,我们现在使用锁定命令,将用户上锁,操作如下:
如上图所示,锁定后的用户将不会出现在系统用户切换界面
6.3 passwd -u:解锁用户
用户zhangsan被锁定后,我们进行解锁的操作即可正常登录,操作如下:
由于我们之前将zhangsan的密码清空了,所以会出现不安全操作的提示,我们加一个-f选项进行强制解锁
6.4 passwd -S:查看锁定状态
在我们不确定用户是否被锁定时,我们可以使用以下命令查看锁定状态:
补充:不加用户名都是当前用户设置
七、usermod命令
usermod命令用于修改已有用户账户的属性
通式:usermod [选项] 已有的用户名
其中选项:-u、-d、-e、-g、-G、-s与useradd命令中的含义相同
7.1 usermod -l:修改登录用户名称
如下图所示,更改用户名文件不会影响家目录的名称,只是用户名的替换
7.2 usermod -L:锁定用户
7.3 usermod -U:解锁用户
补充:锁定和解锁的用户务必使用含有密码的用户,不含密码的用户解锁需要配合选项[-p]使用(解锁并设置密码)用户容易出现无法解锁的问题。
7.4 usermod -e:指定失效时间
格式:usermod -e 到期时间 用户名 (到期时间格式为2000-01-01)
八、如何给文件与目录设置权限与归属
8.1 文件/目录的权限和归属
我们通过命令可以看到根目录下方目录的权限
读取r:允许查看文件内容、显示目录列表
写入w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
可执行x:允许运行程序、切换目录
归属(所有权)
属主:拥有该文件或目录的用户账号
属组:拥有该文件或目录的组账号
文件夹的最小权限时x,一定要带上否则无法进行任何操作,超级管理员不受影响
思考题:删除一个文件与什么权限有关?
答:和所在文件夹权限有关,与文件自身的权限无关,超级管理员可以不受影响。
8.2 查看文件/目录的权限和归属
格式:ls -l [文件名]
chmod命令 格式:chmod [权限代表的数字] 文件名/目录
chmod-R命令(递归修改指定目录下的所有子项的权限)
首先,我们创建了一个/aa/bb/cc的递归文件夹,所属权限如下
如上图所示我们/data 文件下方的 文件和目录 的权限都被修改了,我们递归命令需要跟的目录一定要是需要修改内容的上级目录,就像/aa目录在/data下级不能一直将路径填写到/aa否则aa将无法修改
8.4 设置文件和目录的归属(属主和属组)
chown命令 格式:
- chown 属主 文件或目录
2. chown :属组 文件或目录
3. chown 属主:属组 文件或目录
补充:其他命令
1. userdel 删除用户
通式:userdel 用户名 userdel -r :删除用户并删除用户的家目录
2. gpasswd -a 向组内添加一个用户
相当于给用户增加附加组,操作如下:
3.gpasswd -d 从附加组中删除一个用户
4.gpasswd -M 组内自定义成员列表,以逗号隔开(添加多个用户时使用)
5.id命令
格式:id [用户名] (用于查询用户标识)