目录
2.3rwx对目录的影响实战案例2:对目录没有w,对目录下的文件有rwx
1.文件权限管理
1.1基本权限UGO
权限对象:
属主——->u
属组——->g
其他人—–>o
基本权限类型
读(read):r———>4
写(write):w——–>2
执行(exec):x——->1
案例
r w x r w – r– alice hr file1.txt
属主权限 属组权限 其他人权限 属主 属组 文件
1.2设置权限
chown:改变文件或目录的所属主以及所属组
chmod:为文件或目录设置访问目录chown
chown 属主.属组 文件名 //修改属主,属组
chown 属主 文件名 //修改属主
chown .属组 文件名 //只改属组
chown -R 属主.属组 目录名 //递归修改–针对目录(连同目录下内容一起修改)
1.3更改权限
a.使用符号
对象:u(属主) g(属组) o(其他人) a(所有人)
赋值号 + – =
权限类型 r w x
chmod u+x file1.txt //属主增加执行
chmod a=rwx file1.txt //所有人等于读写执行
chmod a=- file1.txt //所有人都没有权限
chmod ug=rw ,o=r file1.txt //属主属组等于读写,其他人只读
b.使用数字
chmod 644 file1.txt //rw-r–r–
chmod 755 file1.txt //rwxr-xr-x
2.权限案例UGO
2.1设置权限案例
1.root用户和hr组的员工可以读,写,执行
2.其他用户没有任何权限
groupadd hr //创建一个用户
useradd hr01 -G hr //创建hr01用户添加hr组里
useradd hr02 -G hr //创建hr02用户添加到hr组里
mkdir /home/hr //在/home下创建一个hr目录
chown .hr /home/hr //将/home/hr目录的所属组设置成hr
chmod 770 /home/hr //将/home/hr的权限设置成770
ll -d /home/hr //查看/home/hr/目录本省的权限(rwxrwx—)
2.2rwx对文件的影响
实战案例1:rwx对文件的影响
vim /home/file1 //往文件中写入内容(date)
ll /home/file1 //查看文件权限
su – alice //切换到普通用户
cat /home/file1 //查看问件,权限足够
/home/file1 //执行文件里面的内容,权限不够
chmod o+x /home/file1 //给文件加上执行权限
chmod 0+w /home/file1 //给文件加上写权限
vim /hime/file1 //可以更改文件内容
2.3rwx对目录的影响
实战案例2:对目录没有w,对目录下的文件有rwx
mkdir /dir10 //创建目录
touch /dir10/file1 //在目录下创建文件
chmod 777 /dir10/file1 //给目录下的文件全部权限
su – alice //切换到alice用户
cat /dir10/file1 //可以查看目录下的文件
rm -rf /dir10/file1 //权限不够
touch /dir10/file1 //权限不够
实战案例3:对目录有w,对文件没有任何权限
chmod 777 /dir10/ //给目录所有权限
chmod 000 /dir10/dile1 // 给目录下的文件不分配任何权限
su – alice //切换到alice用户
cat /dir/file1 //没有权限查看
rm -rf /dir/10/file1 //可以删除文件
touch /dir10/file1 //可以创建文件
2.4实战案例4:对目录有r和没有r的区别
chmod 070 /dir10/ //其他用户没有权限
su – alice //切换用户
ll /dir10/ //没有权限
chmod 074 /dir10 //给其他用户分配读权限
su – alice //切换用户
ls /dir10/ //会显示没有权限,但会列出目录下内容
2.5实战案例5:对目录有x,和没有x的区别
chmod 770 /dir10/ //其他用户没有权限
su – alice //切换用户
cd /dir10/ //没有权限
chmod o+w /dir10/ //给其他用户分配执行权限
su – alice //切换用户
cd /dir10/ //可以访问目录
2.6
@@@对文件的影响
r———>cat
w——–>vi,vim
x———>bash /dir/file (执行文件里的内容)
对目录的影响
r——->ls ll
w——>touch,rm
x——->cd(可以进入目录)
2.7权限掩码
umask用户掩码
0022 root账户默认
0002 普通用户默认
2.8###root用户默认最高权限
目录777 文件666
###通过计算root用户创建文件目录的权限为
目录:755
文件:644
#umask 0111 //修改umask
2.9高级权限
高级权限suid sgid sticky
问题一:为什么会失败
chmod root.root /root/file1.txt //修改文件的所属主和所属组
vim /root/file1.txt //向文件中加入123内容
ll /root/file1.txt //查看权限,发现有读权限
su – alice //进入用户
cat /root/file1.txt //没有权限查看
3.高级权限的类型
suid====4 提权 (只对二进制命令文件生效,其他无用)
sgid====2组继承 (只对目录生效)
sticky===1 权限控制
3.1设置特殊权限
a.字符—语法
chmod u+s file
chmod g+s dir
chmod o+t dir
b.数字
chmod 4777 file
chmod 2770 dir
chmod 1770 dir
3.2案例一(suid chmod u+s )
sudo 普通用户通过suid提权 <针对二进制命令文件>
chmod u+s /usr/bin/cat //给cat命令文件提权
chmod u+s /usr/bin/rm // 给rm命令文件提权
su – alice //切换用户
cat /root/file1.txt //可以使用cat命令
rm -rf /root/file1.txt //可以使用rm命令chmod u-s /usr/bin/rm //取消提权
3.3案例二(sgid chmod g+s )
把s放到文件的所属用户组的x位置上的话,就是SGID。那么SGID的功能是什么呢?
和SUID一样,只是SGID是获得该程序所属用户组的权限。
SGID主要用在目录上—–如果用户在此目录下具有w权限的话,使用者在此目录下建立新文件,
则创建的这个文件的群组与此目录的群组相同。(简单地说新创建内容与所在目录属的组相同)
[root@linux-server ~]# mkdir /opt/dir1 #创建目录
[root@linux-server ~]# groupadd hr #创建一个组
[root@linux-server ~]# chmod 775 /opt/dir1/ #设置权限
[root@linux-server ~]# ll -d /opt/dir1/
drwxrwxr-x. 2 root root 6 Nov 6 21:26 /opt/dir1/
[root@linux-server ~]# chown .hr /opt/dir1/ #设置属组
[root@linux-server ~]# chmod g+s /opt/dir1/ #设置sgid
[root@linux-server ~]# ll -d /opt/dir1/
drwxrwsr-x. 2 root hr 6 Nov 6 21:26 /opt/dir1/
[root@linux-server ~]# touch /opt/dir1/a.txt
[root@linux-server ~]# ll /opt/dir1/a.txt
-rw-r–r–. 1 root hr 0 Nov 6 21:33 /opt/dir1/a.txt[root@linux-server ~]# chmod o+w /opt/dir1/ -R
[root@linux-server ~]# su – alice
Last login: Wed Nov 6 21:34:59 CST 2019 on pts/2
[alice@linux-server ~]$ touch /opt/dir1/b.txt
[alice@linux-server ~]$ ll /opt/dir1/b.txt
-rw-rw-r–. 1 alice hr 0 Nov 6 21:35 /opt/dir1/b.txt
3.4案例三 (sticky chmod o+t )
BIT(Sticky Bit)目前只针对目录有效,
对于目录的作用是:当用户在该目录下建立文件或目录时,仅有自己与 root才有权力删除。
[root@linux-server ~]# cd /home/
[root@linux-server home]# mkdir dir2
[root@linux-server home]# chmod 757 dir2/
[root@linux-server home]# chmod o+t dir2/
[root@linux-server home]# ll -d dir2/
drwxr-xrwt. 2 root root 52 Oct 31 16:49 dir2/
[root@linux-server home]# useradd jack #创建用户
[root@linux-server home]# su – alice
Last login: Wed Nov 6 21:48:12 CST 2019 on pts/2
[alice@linux-server ~]$ touch /home/dir2/alice.txt #用户alice创建文件
[alice@linux-server ~]$ exit
logout
[root@linux-server home]# su – jack
Last login: Wed Nov 6 21:48:36 CST 2019 on pts/2
[jack@linux-server ~]$ touch /home/dir2/jack.txt #用户jack创建文件
[jack@linux-server ~]$ rm -rf /home/dir2/alice.txt
rm: cannot remove ‘/home/dir2/alice.txt’: Operation not permitted
测试jack删除alice创建的文件,无法删除
4.目前给普通用户提权手段
4.1 放开所有命令使用权
配置解释:
root表示用户名
第一个 ALL 指示允许从任何终端、机器访问 sudo
第二个 (ALL) 指示 sudo 命令被允许以任何用户身份执行
第三个 ALL 表示所有命令都可以作为 root 执行[root@linux-server ~]# visudo #打开配置文件
90 ##
91 ## Allow root to run any commands anywhere
92 root ALL=(ALL) ALL
93 jack ALL=(ALL) NOPASSWD: ALL #添加内容
94 ## Allows members of the ‘sys’ group to run networking, software,
测试
[root@linux-server ~]# su – jack
Last login: Wed Nov 6 22:04:46 CST 2019 on pts/2
[jack@linux-server ~]$ sudo mkdir /test1
4.2 放开个别命令使用权
[root@linux-server ~]# visudo
91 ## Allow root to run any commands anywhere
92 root ALL=(ALL) ALL
93 jack ALL=(ALL) NOPASSWD:ALL
94 alice ALL=(ALL) NOPASSWD:/usr/bin/mkdir, /usr/bin/rm, /usr/bin/touch
95
96 ## Allows members of the ‘sys’ group to run networking, software,
测试:
[root@linux-server ~]# su – alice
Last login: Fri Jul 24 00:52:13 CST 2020 on pts/1
[alice@linux-server ~]$ touch /file
touch: cannot touch ‘/file’: Permission denied
[alice@linux-server ~]$ sudo touch /file