目录
1. 管理用户账号和组账号
1.1 用户的种类:
- 超级管理员: 拥有最高权限的账户(默认叫做root),可以正常登录,人可以使用
- 普通用户: 权限受限的用户,可以正常登录 ,人可以使用
- 程序用户: 不可以正常登录,只给程序使用,人不能用
[root@localhost ~]# w #w命令看到当前登录的用户
14:39:04 up 5:10, 1 user, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.200.1 09:29 0.00s 0.06s 0.00s w
14:39:04 up ##启动时间
5:10, 1 user ##当前有一个用户登录
load average: 0.00, 0.01, 0.05 ##cpu使用情况:5s 10s 15s
USER ##用户
TTY ##登录方式
FROM ##从哪里登录
LOGIN@ ## 登录时间
IDLE ##进程
JCPU ##进程
PCPU ##进程
WHAT ##当前运行的进程
1.2 组的种类
一个用户一定要有一个基本组
1.基本组: 一个用户一定要有一个基本组 ,且只有一个
2.附加组: 一个用户可以没有附加组,一个用户可以有多个附加组
分别基本组和附加组
id+用户名
[root@localhost ~]# id can
uid=1000(can) gid=1000(can) 组=1000(can)
用户排在第一个的组是基本组,后面的都是附加组
uid :系统用来识别用户的唯一身份标识
gid: 系统用来识别组的唯一身份标识
uid 只能是整数 0-60000 不能重复
超级管理员uid 一定是0
[root@localhost data]#id root
uid=0(root) gid=0(root) 组=0(root)
uid 的范围centos7
超级管理员:uid为0
程序用户uid 范围:1-999
普通用户uid 范围:1000 - 60000
修改uid 的范围
[root@localhost data]#vim /etc/login.defs
1.3 passwd和shadwn
etc/passwd(存放用户信息)
can:x:1000:1000:can:/home/can:/bin/bash ##每个字段用冒号隔开
- 第一字段:用户名
- 第二字段:密码占位符
- 第三字段:uid
- 第四字段:组id
- 第五字段:备注信息
- 第六字段:家目录位置
- 第七字段:默认shell程序
/etc/shadow(存放密码信息)
can:$6$dOKbmTs7eknpT2PU$HYZDxVF6IZlmekU7pNogNArKyrH::0:99999:7::: ##每个字段用冒号隔开
chrony:!!:19194::::::
- 第一字段:用户名
- 第二字段:加密后的密码如果为*或!!无法登录
- 第三字段:上一次修改密码时间,数字的含义为 从1970-1-1 到改密码的时间 一共经历多少天
- 第四字段:最小修改密码间隔时间 如果是0 可以随意修改, 7代表7 天后才可以修改
- 第五字段: 密码有效期 默认99999天 273年,设置为 7 代表7天要求你重新设置密码
- 第六字段:密码到期提醒时间 设置为7 代表密码到期前7天会提示你
- 第七字段:密码过期后的宽限天数 设置为10 表示密码到期后还可以使用10天
- 第八字段:用户失效时间,同第3个字段一样,使用自1970年1月1日以来的总天数作为账户的失效时间,到期后无法登录
- 第九字段:保留字段
1.4 useradd(添加用户)
通式:useradd [选项] 用户名
选项 | 说明 |
---|---|
u | 指定uid |
g | 指定基本组(组名和gid都可以) |
G | 指定附加组(组名和gid都可以) |
d | 指定家目录 |
M | 不建立家目录 |
s | 指定默认登录shell |
e | 指定用户失效时间,可使用 YYYY-MM-DD 的日期格式 |
r | 建立系统用户 |
当建立用户时不加选项
- 会按顺序使用uid号
- 会建立一个 和用户名同名的基本组
- 按顺序使用gid
- 会在/home 建立一个和用户名同名的家目录
- 会将用户信息保存在 /etc/passwd文件中
[root@localhost zhangsan]#useradd -M -s /sbin/nologin ning ##指定默认登陆并并且不建立家目录
[root@localhost zhangsan]#tail -n1 /etc/passwd ##查看passwd文件下的最后一行
ning:x:1009:1009::/home/ning:/sbin/nologin
1.5 passwd(修改密码)
通式:passwd [选项] 用户名
作用: 改密码、交互
[root@localhost zhangsan]#passwd can
更改用户can的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
选项 | 说明 |
---|---|
l | 锁定用户不让登录 |
u | 解锁 |
d | 清空密码,无需使用密码直接登录 |
S(大写) | 查看锁定状态 |
[root@localhost ~]# passwd -l can ##锁定用户不让登录
锁定用户 can 的密码 。
passwd: 操作成功
[root@localhost ~]#passwd -u can ##解锁用户
解锁用户 can 的密码。
passwd: 操作成功
[root@localhost ~]#passwd -d can ##清空密码
清除用户的密码 can。
passwd: 操作成功
1.6 usermod(修改已有用户的属性)
选项 | 说明 |
---|---|
l(小写) | 修改用户登录名 |
L(大写) | 锁定用户 |
U(大写) | 解锁用户 |
u(小写) | 指定uid |
g | 指定基本组(组名和gid都可以) |
G | 指定附加组(组名和gid都可以) |
d | 指定家目录 |
s | 指定默认登录shell |
e | 指定用户失效时间,可使用 YYYY-MM-DD 的日期格式 |
[root@localhost ~]#usermod -s /sbin/nologin can
[root@localhost ~]#tail -n1 /etc/passwd
can:x:1002:1002::/home/can:/sbin/nologin
[root@localhost ~]#usermod -u 10000 can
[root@localhost ~]#tail -n1 /etc/passwd
can:x:10000:1002::/home/can:/sbin/nologin
1.7 userdel(删除用户)
选项 | 说明 |
---|---|
r | 连家目录一起删除 |
[root@localhost home]#userdel can
[root@localhost home]#ll
总用量 0
drwx------. 14 lisi lisi 271 7月 31 11:10 can
drwx------. 3 mysql mysql 78 8月 25 2021 mysql
drwx------. 5 1000 1000 128 8月 27 2021 zhangsan
[root@localhost home]#userdel -r can1
[root@localhost home]#ll
总用量 0
drwx------. 14 lisi lisi 271 7月 31 11:10 can
drwx------. 3 mysql mysql 78 8月 25 2021 mysql
2.管理目录和文件的属性
2.1 文件权限
[root@localhost ~]# ll 1.txt
-rw-r--r-- 1 root root 0 7月 31 15:33 1.txt
rw- 文件的主人 属主
r-- 文件所属的组 属组
r-- 其他人
注意:
- 文件夹的最小权限是 x 一定要带上否则无法 进行任何操作,超级管理员不受影响
- 删除一个文件和所在文件夹权限有关和自身没关系。注意超级管理员
权限说明r(读)=4、w(写)=2、x(执行)=1
权限r、w、x使用的8进制
r w x
1 0 0 4
0 1 0 2
0 0 1 1
4+2+1=7
若要 rwx 属性则 4+2+1=7;
若要 rw- 属性则 4+2=6;
若要 r-x 属性则 4+1=5。
2.2 chomd(修改权限)
语法:chown [选项] 需要改的文件
主要参数
选项 | 说明 |
---|---|
u | 表示该文件的拥有者 |
g | 表示与该文件的拥有者属于同一个群体(group)者 |
o | 表示其他以外的人 |
a | 表示这三者皆是 |
+ | 表示增加权限 |
- | 表示取消权限 |
= | 表示唯一设定权限 |
r | 表示可读取 |
w | 表示可写入 |
x | 表示可执行 |
X | 表示只有当该文件是个子目录或者该文件已经被设定过为可执行 |
其他参数说明
选项 | 说明 | |
---|---|---|
c | 若该文件权限确实已经更改,才显示其更改动作 | |
f | 若该文件权限无法被更改也不要显示错误讯息 | |
v | 显示权限变更的详细资料 | |
R | 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更) | 0 |
例:
2.3 chown
语法:chown [选项] file...
user : 新的文件拥有者的使用者 ID
group : 新的文件拥有者的使用者组(group)
复制代码
选项 | 说明 |
---|---|
c | 显示更改的部分的信息 |
f | 忽略错误信息 |
h | 修复符号链接 |
v | 显示详细的处理信息 |
R | 处理指定目录以及其子目录下的所有文件 |
例
2.4文件的三种特殊权限
2.4.1 SUID
SUID,全称为set UID,在高位起第三位上表现为s。
通过设置SUID这个属性,可以让可执行文件以当前用户为文件的所有者来执行(如果这个用户有执行权限的话)。
举一个例子,如果一个文件的权限为-rwsr-xr-x,一个组外用户对该文件是具有执行权的,但是如果却无法享有该文件执行时,依赖内容继承的权利。
复制代码
[root@localhost aa]#which passwd
/usr/bin/passwd
[root@localhost aa]#ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 6月 10 2014 /usr/bin/passwd
#此处s表示当使用这个命令程序时,把当前用户当成文件的所属主
[root@localhost aa]#which vim
/usr/bin/vim
[root@localhost aa]#chmod u+s /usr/bin/vim
#给vim加上suid权限,代表所有用户可以使用vim打开并编辑所有文件
[root@localhost aa]#ll /usr/bin/vim
-rwsr-xr-x. 1 root root 2289640 8月 2 2017 /usr/bin/vim
复制代码
2.4.2 SGID
SGID和SUID类似,在高起第六位上表现为s。
SGID改变的是执行者的所属组,可以对可执行文件和目录设置。
通过对目录设置SGID属性,可以使得访问在该目录下创建的所有文件的所有权,都继承原目录的所有者,而非创建者。
因为一旦有用户进入到该目录下,由于具有SGID权限,进入目录后的用户就会变成该目录的所有者,在该目录下创建的所有文件,都以该目录的所有者的身份创建。
复制代码
[root@localhost aa]#chmod g+s /usr/bin/vim
[root@localhost aa]#ll /usr/bin/vim
-rwxr-sr-x. 1 root root 2289640 8月 2 2017 /usr/bin/vim
复制代码
2.4.3 Sticky 位
具有写权限的目录通常用户可以删除该目录中的任何文件,无论该文件的权限或拥有权
在目录设置Sticky 位,只有文件的所有者或root可以删除该文件
sticky 设置在文件上无意义
复制代码
Sticky权限设定:
chmod o+t DIR...
chmod o-t DIR..
复制代码
[root@localhost aa]#chmod o+t /opt/aa ## 添加Sticky 位
[root@localhost opt]# ll
总用量 0
drwxr-xr-t 2 root root 6 7月 31 15:46 aa
[root@localhost opt]#chmod o-t /opt/aa #减少Sticky 位
[root@localhost opt]# ll
总用量 0
drwxr-xr-x 2 root root 6 7月 31 15:46 aa