昨天内容回复
1、hash算法
一串内容------------hash算法-----------》hash值
hash值
1传入算法内容相同,hash值一定相同
2、hash值不逆推
3、hash值的长度取决采用的算法,与传入的内容无关
用途:
1,2=》密码加密
1,3=》校验文件的完整性
常见:
md5
sha512
2、权限
文件
r:读文件内容
w:修改文件内容
x:执行文件
目录:
r:浏览
w:创建、删除、移动子文件与子目录
x:进入该目录
操作目录下的东西:对沿途所有目录有x权限+对目标目录有r或w权限
操作文件的内容:对沿途所有目录有x权限+对目标文件有r或w权限
执行文件:对沿途所有目录有x权限+对目标文件有x权限,如果是解释型程序还需配合r
修改权限:
1、加减法
chmod u+rwx,g+rwx,o+rw a.txt
chmod (a 全部的意思)a-rw a.txt
2、赋值
chmod u=x,g=x,o=x a.txt
chmod a=x a.txt
3、数字
chmod u=rw,g=rwx,o=x a.txt
chmod 671 a.txt
修改属主与属组:
chown 属主.属组 a.txt
-R
特殊:
suid # 4755
chmod u+s 命令文件 (第一个 s 是尚方宝剑,当普通用户使用时就可以获得该命令主人的权限)
sgid # 2755
chmod g+s 命令文件 (第二个 s 作用在文件身上与第一个功能相似,获得该组的权限)
chmod g+s 目录(作用在目录身上,当你在有s的目录下创建子目录子子目录,这些子目录子子目录的属组都会是带有s这个父目录的属组)
sticky # 1755
chmod o+t 共享目录
目录---》777
文件---》666
root用户下的umask值:022
今日内容:
1、高级权限acl
修改属主的权限
setfacl -m u::权限 a.txt
修改属组的权限
setfacl -m g::权限 a.txt
修改其他人的权限
setfacl -m o::权限 a.txt
修改具体某一个用户的权限
setfacl -m u:用户名:权限 a.txt
修改具体某一个组的权限
setfacl -m g:组名:权限 a.txt
继承:
setfacl -m d:u:egon01:rw a.txt
应用场景:
1、其他人对文件没有任何权限,然后单独设置其他人里的egon01对文件有r权限、egon02对文件有w权限
setfacl -b b.txt
setfacl -m o::- b.txt
setfacl -m u:egon01:r b.txt
setfacl -m u:egon02:w b.txt
2、其他人对文件有rw权限,然后单独设置其他人里的egon01对文件有r权限、egon02对文件有w权限
setfacl -b b.txt
setfacl -m o::rw b.txt
setfacl -m u:egon01:r b.txt
setfacl -m u:egon02:w b.txt
实验:
[root@web01 ~]# pwd
/root
[root@web01 ~]# echo 1111 > b.txt
[root@web01 ~]# getfacl b.txt
# file: b.txt
# owner: root
# group: root
user::rw-
group::r--
other::r--
[root@web01 ~]# setfacl -m o::- b.txt
[root@web01 ~]# setfacl -m u:egon01:r b.txt
[root@web01 ~]# setfacl -m u:egon02:w b.txt
[root@web01 ~]# getfacl b.txt
# file: b.txt
# owner: root
# group: root
user::rw-
user:egon01:r--
user:egon02:-w-
group::r--
mask::rw-
other::---
[root@web01 ~]# su - egon01 -c "cat /root/b.txt"
1111
[root@web01 ~]# su - egon01 -c "echo 222 >> /root/b.txt"
-bash: /root/b.txt: 权限不够
[root@web01 ~]# su - egon02 -c "cat /root/b.txt"
cat: /root/b.txt: 权限不够
[root@web01 ~]# su - egon02 -c "echo 222 >> /root/b.txt"
[root@web01 ~]#
2、特殊属性
+i ()
+a
+A
3、让普通用户具备管理员权限
1、su切换用户身份:从一个用户切换到另外一个用户
储备知识:
1、linux中shell分为两种级别:
登录级别shell:/etc/profile--->/etc/profile.d/*.sh--->~/.bash_profile--->~/.bashrc--->/etc/bashrc
1、输入账号密码登录进来
2、su - 用户名 (管理员root切换到普通用户下无需输入密码,反之需要)
非登录级别shell: ~/.bashrc---->/etc/bashrc----->/etc/profile.d/*.sh
1、su 用户名
如果想针对所有用户以及登录与非登录shell设置统一的配置----》/etc/bashrc
[root@web01 ~]# vim /etc/bashrc
[root@web01 ~]# source /etc/bashrc # 当前环境让该文件生效
或者重启也可以生效
/etc/profile------------->登录级别的所有用户
ps:shell的使用分类两种
交互式
非交互式
2、sudo提权:不切换用户,即用户身份不变,但是可以获取root的部分管理权限
在管理员下修改配置文件/etc/sudoers来分配权限
vim /etc/sudoers # 风险高
visudo -c # 检查语法
visudo # 不需要加文件路径
3、总结
su:
特点:直接切换到root账号下进行操作,输入的是root的密码
优点:简单粗暴
缺点:root密码泄露,普通用户获取了所有管理权限
sudo
特点:在当前普通用户下进行操作,不需要切换到root账号下,在执行操作命令格式为:sudo 命令,输入的是普通用户自己的密码
优点:root密码没有泄露,普通用户获取了部分管理权限
缺点:相对复杂
用户 主机ip或主机名=(转成的用户身份) 管理命令
egon01 ALL=(ALL) /usr/sbin/ifconifg
egon01 ALL=(ALL) NOPASSWD:/usr/sbin/ifconifg
egon01 ALL=(ALL) NOPASSWD:命令的别名
egon01 ALL=(ALL) ALL,!/usr/bin/vim /test/b.txt
ALL代表的是服务端的IP地址,与客户端无关