LINUX 317日记

今日课堂笔记

文件的特殊权限

Linux提供的12个特殊权限
默认的9位权限
rwx rwx rwx
还有三位隐藏的特殊权限
suid
sgid
sbit

特殊权限对照表

suid的作用

SUID 特殊权限仅适用于可执行文件
二进制命令
比如系统的/usr/bin下提供的命令,如 /usr/bin/ls,如/usr/bin/rm
所具有的功能是,**只要用户对设有 SUID 的文件有执行权限,那么当用户执行此文件时,会以文件属主的身份去执行此文件
一旦文件执行结束,身份的切换也随之消失
以这个/usr/bin/passwd可执行命令举例
就是让普通用户,执行该命令时,临时获得root的权限。
用户创建完用户后,需要修改密码,执行passwd命令
但是passwd命令需要读取,修改/etc/passwd,/etc/shadow文件,这些文件都是属于root,那不就没权限操作了吗,但是普通用户,如何执行passwd命令,修改自己的密码呢
可以让普通用户临时获得root的身份,不就有属主的权限了吗

找出系统中,所有包含了suid权限的文件

# find提供权限查找的参数 -perm -ls find提供的格式化打印参数,就好比-exec -ok -delete 一样
find / -type f -perm -4000 -ls
find / -type f -name '*.log' -ok rm -f {} \;

sgid的作用

1.对于二进制命令来说,sgid的功能和suid基本一样,只不过一个是设置文件属主的权限,一个是设置属组的权限,和9位基本rwx那个理解概念一样。
2. suid是获得文件属主的权限,sgid是获得文件属组的权限
3. sgid主要用于文件夹,为某个目录设置sgid之后,在该目录中的创建的文件,都以(目录的属组)权限为准,而不属于创建该文件的用户权限,这就实现了多个用户,可以共享一个目录的作用。
一般直接和文件夹结合使用,给文件夹设置sgid,等于设置了一个共享文件夹的概念
简单总结
1.一个普通的文件夹,普通用户cc03进入后,创建文件,usergroup都属于谁?都属于cc03
baoqiang01 进入后,创建文件 ,都属于谁? baoqiang01
2.当一个文件夹设置了sgid,普通用户cc03进入后,创建的文件,user属于cc03,group属于了文件夹的属组。
baoqiang01 进入后,创建了文件,usergroup属于谁?user属于baoqiang01,group属于文件夹的属组。

sbit的作用

在一个权限是 777的文件夹下,所有用户,可以进行 r,w,x的操作,也就意味着,可以随便,删除其他人的资料!!
linux中的确存在这么一个公共文件夹,名字叫做/tmp 临时文件夹
sbit粘滞位,用的已经很少了,但是对于系统特殊文件夹/tmp来说,是整个系统所有用户的临时文件存放地,谁都有任意的权限,你会发现该目录的权限巨大。
[root@yuchao-tx-server ~]# ll -d /tmp/
drwxrwxrwt. 8 root root 4096 3月 16 18:54 /tmp/
但是看到了一个特殊权限t
一句话总结。
当目录有了粘滞位特殊权限,这个目录除了root用户特殊以外,任何用户都只能删除、移动自己的创建的文件,而不能影响到其他人。
没有设置粘滞位,且目录是777权限时,也就是任意的user、group、other角色在这个目录下,可以进行读、写、执行任意文件。

学习的命令

chmod u+s 获得文件属主的权限
chmod u-s 去掉你文件属主的权限
chmod g+s 获得文件属组的权限
chmod g-s 去掉你文件属组的权限
chmod o-t 添加粘滞位
chmod o+t 去掉粘滞位

如何查看 系统所有环境变量 ,且过滤出与root相关的变量。

如何查看 ⽤户个⼈的环境变量 ,且过滤出与root相关的变量

PS1变量

ps1 是控制命令提示符的
\u 显示用户名
\h 显示主机名
\W 显示用户目录所处的最后一级
\w 显示用户所处的绝对路径 省的你去敲pwd
\t 以24小时制 显示时间
\$ 用户的身份小时

永久修改PS1变量⽣效?演示root、和普通⽤户的配置

root用户下的
vim进入到/etc/profile文件中

普通用户下的
vim进入到 ~/.bash_profile

如何使⽤umask

-S大写的 以字符的形式显示当前的掩码
-p 带umask开头以数字的形式显示当前掩码

如何修改umask,会产⽣什么结果

[rootlocalhost ~~18:04:39]#umask
0022
[rootlocalhost ~~18:05:15]#mkdir 555
[rootlocalhost ~~18:05:25]#ll 555
total 0
[rootlocalhost ~~18:05:29]#ll -d 555
drwxr-xr-x. 2 root root 6 Mar 17 18:05 555
[rootlocalhost ~~18:05:36]#umask 156
[rootlocalhost ~~18:05:52]#mkdir 333
[rootlocalhost ~~18:05:59]#ll -d 333
drw--w---x. 2 root root 6 Mar 17 18:05 333
[rootlocalhost ~~18:06:02]#
[rootlocalhost ~~18:06:02]#umask
0156
修改了umask的默认值 ,默认的文件文件夹权限,减去umask的值等于最终的权限值

find命令补充

find / -maxdepth 1 -type f -name '*.log' 寻找指定目录层次信息
find / -type f -perm 664 寻找指定权限文件信息

系统时间查看以及修改

data +%F 查看系统日期
data +%T 查看系统时间
data -s "2022-03-17 00:00:00" 手动修改系统时间
ntpdata ntp2.aliyun.com 自动修改系统时间需要安装 yum install ntpdata -y

chattr命令

用于更改文件的扩展属性
a 只能向文件中添加数据,不得删除
-R 递归更改目录属性
-v 显示命令执行过程
A 不认系统系统最后修改文件的时间
i 文件不能被删除,改名,修改内容
+ 增加参数 - 移除参数 = 更新为指定参数

lsattr命令

用于查看文件的第二扩展文件系统属性,可结合chatte一起用
-R 递归地列出目录以及其下内容的属性
-V 列出目录中的所有文件,包括以 ' . '开头的文件属性
-d 以列出其他文件的方式那样列出目录的属性,而不列出其下的内容

date命令

date
查看系统当前时间
[root@yuanlai0224 ~]# date
Thu Mar 17 21:16:34 CST 2022
[root@yuanlai0224 ~]#
参数:
-s 可自定义设置时间
%H 表示时
%M 表示分
%S 表示秒
%y 表示年
%m 表示月
%d 表示日
%F 表示日期
%T 表示时间
[root@yuanlai0224 ~]# date '+%y%m%d' #显示日期
220317
[root@yuanlai0224 ~]#
[root@yuanlai0224 ~]# date '+%H:%M:%S' #显示时间
21:27:06
[root@yuanlai0224 ~]#
[root@yuanlai0224 ~]# date '+%F %T' #显示日期和时间
2022-03-17 21:28:40
[root@yuanlai0224 ~]#
[root@yuanlai0224 ~]# date -s '12:12:12 2012-12-12' #格式化修改时间
Wed Dec 12 12:12:12 CST 2012
[root@yuanlai0224 ~]# date
#试⼀试,如何纠正,同步系统为正确的互联⽹时间。
[root@yuanlai0224 ~]# ntpdate
17 Mar 20:20:01 ntpdate[5589]: no servers can be used, exiting
[root@yuanlai0224 ~]# ntpdate ntp2.aliyun.com
17 Mar 20:20:27 ntpdate[5590]: adjust time server 203.107.6.88 offset -0.496970 sec
[root@yuanlai0224 ~]# date
Thu Mar 17 20:20:31 CST 2022
[root@yuanlai0224 ~]#
posted @   并不是那么牛  阅读(89)  评论(2编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
点击右上角即可分享
微信分享提示