Day10权限管理
昨日回顾
系统中的用户有什么用
程序运行需要一个用户身份,可以是不能登录系统(傀儡身份)
多个人操作一个系统时,需要创建多个用户,这样互相不影响(默认初始环境一致)
创建用户,会操作哪几个配置文件
/etc/passwd 用户属性
/etc/shadow 用户密码属性
/etc/group 组
/etc/gshadow 组密码
如何创建修改删除用户
useradd username 创建用户
-u UID
-g [GID|GroupName]基本组
-G [GID|GroupName]附加组
-c 注释
-s 指定登录shell /bin/bash 正常登录系统 /sbin/nologin 不允许登录
-d 指定用户的家目录
-M 不指定用户的家目录
-r 系统用户[通常201-999]并且没有家目录
usermod username 修改用户
-l 修改用户名称
userdel username 删除用户
-r 会删除用户的家目录,以及用户的邮箱
为用户添加密码
注意密码的复杂度要高,密码需要三月一修改
passwd Username 只能是root操作
passwd 修改自己的密码(普通用户与root都能操作)
echo "123" | passwd --stdin Username 非交互式设定密码(批量设定密码)
用户的创建流程
用户在创建的过程中会依赖两个配置文件
/etc/login.defs
/etc/defaults/useradd
如果在创建用户自行指定选项,会覆盖这两个文件
-u 2000
-s /bin/bash /sbin/nologin
-d /home /tmp
用户的组
基本组:(有且只能有一个)
1.用户的主要组,使用-g指定,前提是该组必须存在
2.创建用户时,不指定基本组,默认创建一个与用户同名的私有组
附加组:(可以有N个)
1.当基本组无法满足授权需求时,可以添加至附加组
组的创建修改删除
groupadd -g
groupmod -n -g
groupdel
提权
···
登录式与非登录式shell区别在于加载的环境变量不一样
su 切换用户身份
su username 非登录式shell
su - username 登录式shell
sudo 提权
由root用户事先分配可执行的命令权限
由root用户关联某个普通用户与对应的权限
sudo提权方式
1.使用sudo的内置别名创建组,创建命令组,然后将两者进行关联
2.创建系统组,将用户加入组,然后在sudo对组配置权限%group_n
···
权限与用户之间的关系
在Linux系统中,针对文件定义了三种身份,分别是属主(owner)、属组(group)、其他人(others),每一种身份又对应三种权限,分别是可读(readable)、可写(writable)、可执行(excutable)
用户访问文件流程:
1.判断用户是否为文件所有者,如果是则按所有者的权限进行访问
2.判断用户是否为文件的所有组成员,如果是则按组的权限进行访问
3.如果不是所有者,也不是该文件所属组,则按其他人权限进行访问
权限中的rwx是干什么的
r=读取权限 对应权限:4
w=写入权限 对应权限:2
x=执行权限 对应权限:1
-(没有权限) 对应权限:0
如何变更权限
使用chmod命令
方式一:ugo(user group other)
a=rwx 全部人
u=rwx,g=rx,o=- 分别
方式二:number r=4 w=2 x=1 -=0
针对文件设定权限
主(rw),组(r),其他(-)
[root@oldboy ~]# chmod 640 1.txt
最高为777,但一般都是666
针对目录设定权限
-R 递归修改
[root@oldboy ~]# chmod 777 dir/
[root@oldboy ~]# chmod -R 777 dir/
权限验证
针对文件
使用最多的:rw=6 rx=5 644
r: 能读取文件内容
cat head less tail more
w: 能写入文件(不能看)
vim
x: 能执行文件(如果没有r权限,单有x没有用)
rw: 能查看文件,能编辑文件,不能执行,不能删除移动复制
rx: 能查看文件,不能编辑文件,能执行,不能删除移动复制
rwx: 能查看文件,能编辑文件,能执行,不能删除移动复制
针对目录
使用最多的:rx=5 755
r: 具有浏览目录的权限,无法进入目录,使用ls查看目录下的文件会报错,会显示文件名称,使用ls -l只能看到文件名称,其他全部无法查看
w: 什么权限也没有
x: 能进入目录,其他什么也没有
rx: 能进入目录,能查看目录下的文件,至于操作文件,需要看文件的权限
rw:
rwx: 如果目录赋予了w权限,则该目录下的文件可以复制删除移动修改
属主和属组变更
[root@oldboy ~]# chown uname:或者.gname filename
[root@oldboy ~]# chown uname filename
[root@oldboy ~]# chown :或者.gname filename
[root@oldboy ~]# chown u:.g 目录名
-R 递归修改目录属主属组
今日总结
1.什么是权限?
权限就是一种约束
2.为什么要有权限?
3.权限和用户之间的关系?
4.权限如何设定?chmod
ugo方式 out
number方式 7rwx 6rw 5rx 4r 3wx 2w 1x
r=4
w=2
x=1
755 ---> 7属主 5属组 5其他
5.测试r w x每一位的权限?
6.通常权限的组合使用方式?
文件:r rw rx
目录:rx rwx
7.如何变更一个文件属主和属组
chown -R 递归
相关命令
chmod
修改文件权限
chown
变更文件的属主和属组
chgrp
---忽略,变更文件的属组