目录
3、储存用户密码和账号有效期的配置文件/etc/shadow
一、系统用户的分类和相关配置文件
1、系统用户的分类以及uid范围
uid号是每个用户的唯一标识,系统是默认uid为0的用户是超级管理员
uid的范围如图,范围也是可以修改的,在/etc/login.defs
程序用户分类 | ||||
名称 | 超级管理员用户 | 普通用户 | 程序用户 | |
uid范围 | centos 6 | 0 | 1-499 | 500-6万 |
centos 7 | 0 | 1-999 | 1000-6万 |
三种用户的权限:
超级管理员用户:登录后显示“#”,拥有本机至高无上的权限,root是操作系统默认的超级用户账号
普通用户:登录后显示“$”,账号权限受限制,一般只有在用户自己的家目录中有完整权限;普通用户无法修改网卡配置
程序用户:程序用户是用于给程序使用,用来启动程序,程序用户一般在创建时指定不登陆(这个也是为了保证系统的安全,防止程序用户被破解登录)
2、储存用户信息的配置文件/etc/passwd
第一个字段:用户名称
第二个字段:密码占位符
第三个字段:uid
第四个字段:gid
第五个字段:备注信息
第六个字段:用户家目录
第七个字段:shell启动默认/bin/bash;一般程序用户指定/bin/nologin
3、储存用户密码和账号有效期的配置文件/etc/shadow
第一个字段:用户名称
第二个字段:账号密码,*和!!表示账号锁定,空表示没有密码,输入密码则会生成加密密码
第三个字段:账号创建时间,以距离1970-01-01的时长,date -d ' 1970-01-01 19660 days'
第四个字段:表示修改密码的权限,0表示今天可以修改,如果是2,则需要2天后才能修改,防止有人多次修改密码;
第五个字段:密码失效时间,也是以距离1970-01-01的天数
第六个字段:7表示在密码失效之前,提醒用户
第七个字段:表示失效时间
第八个字段:保留字段
二、添加用户
1、创建用户命令:useradd
语法:useradd [选项] [相应条件] 用户名
操作:创建用户的命令是useradd
原理:验证用户是否创建成功,可以查看/etc/passwd 文件和/etc/shadow 文件的末尾是否增加该用户账号的记录;
①若没有用-d指定家目录,那么可以在/home查看是否有同名宿主目录生成,该目录中有各种该用户的初始配置文件。
②若没有明确指定用户所属的组,会自动创建与该用户账号同名的基本组账号,组账号的信息也是记录信息将保存到/etc/group,/etc/passwd和/etc/shadow 文件中。
选项 | 功能 |
-u | 指定用户的uid(未被使用) |
-s | 指定用户的登录shell类型 |
-M | 不创建用户宿主目录 |
-d | 指定用户的宿主目录 |
-g | 指定创建用户的基本组 |
-G | 指定创建用户的附加组 |
-e | 失效时间(xxx-xx-xx) |
实操创建一个用户名为test,指定uid为2000,附加组为root,不登陆shell,不创建宿主目录,失效时间为2023年12月31日的用户。
2、修改用户密码:passwd
语法:passwd [选项] 用户名
选项 | 功能 |
-d | 清空密码 |
-l(小写L) | 锁定用户 |
-u | 解锁用户 |
-S(大写s) | 查看是否被锁定 |
不加选项 | 修改密码 |
实操演示:
3、修改已有账户的属性:usermod
语法:usermod [选项] [相应条件] 用户名
选项 | 功能 |
-l(小写L) | 修改用户名 |
-大写L | 锁定用户 |
-大写U | 解锁用户 |
-u | 修改已有用户的uid(未被使用) |
-s | 修改已有用户的登录shell类型 |
-d | 修改已有用户的宿主目录 |
-g | 修改已有用户的基本组 |
-G | 修改已有用户的附加组 |
-e | 修改已有用户的失效时间(xxx-xx-xx) |
实操将之前创建的用户test更名为hanbin
修改hanbin用户的uid为1500,基本组为root,登录shell为/bin/bash
4、删除账户:userdel
语法:userdel [选项] 用户名
只有一种选项:-r 表示删除用户的同时,删除家目录
拓展:用户账号创建时为默认,那默认的配置文件是什么?
如果创建用户时不加选项,那么默认会有些内容,查看配置文件: /etc/default/useradd
三、创建组
命令 | 选项 | 功能 | 举例 |
groupadd | 不加 | 直接创建组账号 | groupadd cxk |
g gid | 指定gid创建组账号 | groupadd -g 1000 cxk | |
gpasswd | a 用户名 | 组内添加一个用户 | gpasswd -a lx cxk |
d 用户名 | 组内删除一个用户 | gpasswd -d lx cxk | |
M 用户名,用户名,用户名 | 批量添加组成员,用逗号分隔 | gpasswd -M lx,lisi,ww cxk | |
groupdel | 不加 | 删除组账号 | groupdel cxk |
创建组以后,将组信息保存到/etc/group中
四、用户信息查询
命令 | 查询内容 |
finger [用户名] | finger命令查询用户帐号的详细信息 (登录名,shell,宿主目录,登录时间,是否有邮件和计划) |
w [选项] [用户名] | 第二行显示的是当前登录用户信息(用户名,登录终端,从哪里登录,登录时间,相关进程占cpu的时间,用户当前执行什么命令等) |
who [选项] | 显示当前登录的用户信息(有很多选项) |
whoami | 查看当前有效用户名 |
users | 用于显示当前登录系统的所有用户的用户列表 |
id [用户名] | 查看当前用户的UID、GID和附加组 |
五、用户和文件权限修改
1、文件权限和访问用户的分类
访问用户是按照文件的归属分为三类:user group other
文件的权限
权限 | 解读 | 用数字代表 |
r读 | 可以查看,cat,ls,cp等获取内容 | 4 |
w写 | 可以修改,比如mkdir touch 往里面写内容 | 2 |
x执行 | 执行,对目录而言一定要有x权限,即可以执行cd命令,对于文件而言默认不给新文件x权限,因为怕新文件不安全,直接执行 | 1 |
①对文件夹来说,最小需要执行权限,且一定要有执行权限,否则该文件夹不能使用;
②因为有umask=0022设置(可更改),所以默认出书文件的权限会用777与022做运算
(umask决定了文件初始落定的权限,umask修改位置 /etc/profile)
③默认文件夹最大权限是777,普通文件的最大权限是666
④一个文件能不能被删除与自身的权限无关,与上一级目录的权限有关
2、修改权限的命令chmod和chown
chmod修改语法:chmod [选项] 数字或用字母赋予权限 文件名
选项:-R 表示递归修改目录中所有子目录的权限
chown修改所属语法:chown [选项] [属主].[属组] 文件名
选项:-R 表示递归修改目录中所有子目录的权限
命令方式 | 功能 |
chown 新属主 文件名 | 只改属主 |
chown :新属组 文件名 chown .新属组 文件名 | 只改属组(注意符号) |
chown 新属主.新属组 文件名 chown 新属主:新属组 文件名 | 同时修改属主和属组(注意符号) |
六、拓展:
①三种特殊权限
第一种:suid,很危险,慎用!!!
第二种:sgid 与第一种类似
第三种:sticky权限,只对文件夹有效!