一个小白学习linux的艰辛路程day14
day14学习笔记
1.文件权限补充
通过昨日的学习,文件权限一共三位角色共有9位
u 属主 r,w,x
g 属组 r,w,x
o 其他人 r,w,x
与linux中的隐藏文件一样,文件中也拥有三个隐藏权限
suid sgid sbit

2.特殊权限的作用
suid作用
SUID 特殊权限仅适用于可执行文件
比如系统的/usr/bin下提供的命令,如 /usr/bin/ls,如/usr/bin/rm
只要用户对设有 SUID 的文件有执行权限,那么当用户执行此文件时,会以文件属主的身份去执行此文件,一旦文件执行结束,身份的切换也随之消失。
sgid作用
sgid的功能和suid基本一样,只不过一个是设置文件属主的权限,一个是设置属组的权限
sgid主要用于文件夹,为某个目录设置sgid之后,在该目录中的创建的文件,都以(目录的属组)权限为准,而不属于创建该文件的用户权限,这就实现了多个用户,可以共享一个目录的作用,等于是设置了一个共享文件夹
[root@linux ~]# mkdir /tmp/BOB
[root@linux ~]# ll -d /tmp/BOB
[root@linux ~]# chmod o=rwx /tmp/BOB
[root@linux ~]# ll -d /tmp/BOB
drwxr-xrwx. 2 root root 6 Mar 17 15:16 /tmp/BOB
现创建一个共享目录BOB
[YL@linux BOB]$ mkdir 超哥
[YL@linux BOB]$ ll -d 超哥
drwxrwxr-x. 2 YL YL 6 Mar 17 15:18 超哥
登录一个普通的用户YL,目录BOB下创建新的文件夹 超哥 ,该文件夹的属主和属组都属于YL
[root@linux ~]# chmod g+s /tmp/BOB
[root@linux ~]# ll -d /tmp/BOB
drwxr-srwx. 3 root root 20 Mar 17 15:18 /tmp/BOB
给共享目录BOB的属组位上添加sgid特殊权限
[YL@linux BOB]$ mkdir 救命
[YL@linux BOB]$ ll -d 救命
drwxrwsr-x. 2 YL root 6 Mar 17 15:22 救命
再使用YL普通用户创建一个新的文件夹 救命,发现这个文件夹的属主还是YL,但是属组变成了root,并且文件夹的属组位上也拥有了sgid权限,实现了递归继承的效果。
sbit的作用
又称作粘着位,linux下另一个特殊权限
当目录有了粘滞位特殊权限,这个目录除了root用户特殊以外,任何用户都只能删除、移动自己的创建的文件,而不能影响到其他人
[root@linux ~]# ll -d /tmp/BOB
drwxrwxrwx. 4 root root 34 Mar 17 15:22 /tmp/BOB
创建一个权限为777的目录
[YL@linux BOB]$ touch 我是2号.log[YL@linux BOB]$ ll
total 0
-rw-rw-r--. 1 yjy01 yjy01 0 Mar 17 15:45 我是1号.txt
-rw-rw-r--. 1 YL YL 0 Mar 17 15:45 我是2号.log
用户YL在该目录下创建一个我是2号.log的文件,其他人只有读取的权限
[yjy01@linux BOB]$ ll
total 0
-rw-rw-r--. 1 yjy01 yjy01 0 Mar 17 15:45 我是1号.txt
-rw-rw-r--. 1 YL YL 0 Mar 17 15:45 我是2号.log
用户yjy01在该目录下创建一个我是1号.txt的文件,其他人只有读取的权限
[YL@linux BOB]$ rm -rf 我是1号.txt
[YL@linux BOB]$ ll
total 0
-rw-rw-r--. 1 YL YL 0 Mar 17 15:45 我是2号.log
普通用户YL将yjy01创建的文件删除,因为两个用户都处在一个权限为777的目录下,在该目录下所有用户,可以进行 r,w,x的操作,也就意味着,可以随便,删除其他人的资料
[root@linux ~]# chmod o+t /tmp/BOB
[root@linux ~]# ll -d /tmp/BOB
drwxrwxrwt. 4 root root 56 Mar 17 15:47 /tmp/BOB
root用户在BOB目录中的o角色上增加了一个t的特殊权限(粘着位)
[yjy01@linux BOB]$ rm -rf 我是2 号.log
rm: cannot remove ‘我是2号.log’: Operation not permitted
此时,由于o角色上t权限,导致yjy01用户已经不能删除YL用户的文件,权限不够,这就是sbit特殊权限的作用
3.环境变量
系统所有的环境变量 set
用户个人的环境变量 env
[root@linux ~]# su YL
[YL@linux root]$ env
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
切换用户时,su命令不加- ,发现用户名虽然变了,但是用户个人的环境变量仍旧是root
[root@linux ~]# su - YL
Last login: Thu Mar 17 21:31:13 CST 2022 on pts/1
[YL@linux ~]$ env
PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/YL/.local/bin:/home/YL/bin
当su命令加上- 时,发现用户个人的环境变量已经全部切换为用户本身
4.PS1变量
ps1 是控制命令提示符的
\u 显示用户名
\h 显示主机名
\W 显示用户目录所处的最后一级
\w 显示用户所处的绝对路径 省的你去敲pwd
\t 以24小时制 显示时间
\$ 用户的身份小时
[root@linux ~]# #PS1='[\u@\h \W]\$' 我们可以在此修改PS1的格式,也就是修改命令提示符,比如多加空格或者添加参数\t等等
这种方法添加出来的PS1变量是临时生效
[root@linux ~]# vim /etc/profile 想要修改的PS1变量永久生效,需要使用vim编辑器对profile文件进行修改并保存
5.命令提示符发生变化



浙公网安备 33010602011771号