博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
set uid 、set gid 、sticky bit、软链接、硬链接
阅读量:6232 次
发布时间:2019-06-21

本文共 3808 字,大约阅读时间需要 12 分钟。

hot3.png

特殊权限set_uid

概念:set_uid,当普通用户执行passwd命令时,可以**临时**拥有root权限。set_uid 该权限针对二进制**可执行文件**,如:ls passwd

如下命令,查看

[root@zhangzhen-01 ~]# which passwd #查看这个命令在哪

/usr/bin/passwd
[root@zhangzhen-01 ~]# ls -l /usr/bin/passwd #查看passwd文件权限
-rwsr-xr-x. 1 root root 27832 6月 10 2014 /usr/bin/passwd #这里的s表示什么含义呢,s就是set_uid的权限,这个权限可以让普通用户(所有者)当他执行带set_uid这个命令时,这时候他就会被赋予这个所有者的临时权限。

修改密码权限的配置文件在:/etc/shadow下

[root@zhangzhen-01 ~]# ls /etc/shadow

/etc/shadow
[root@zhangzhen-01 ~]# ls -l !$ #在这里我们可以看见,这个文件是非常严谨,禁止任何用户对它进行任何操作。
ls -l /etc/shadow
----------. 1 root root 645 3月 28 21:58 /etc/shadow

注:在这里,root是超级用户权限,可以对他进行操作。

如何让一个普通用户临时拥有root权限,操作如下:

[root@zhangzhen-01 ~]# useradd zhang-02 #创建一个zhang-02的用户

[root@zhangzhen-01 ~]# tail -n3 /etc/passwd #查看最后三行是否创建成功
zhangzhen-03:x:1000:1000::/home/zhangzhen-03:/bin/bash
user1:x:1001:1001::/home/user1:/bin/bash
zhang-02:x:1002:1002::/home/zhang-02:/bin/bash
[root@zhangzhen-01 ~]# su - zhang-0 #切换用户
[zhang-02@zhangzhen-01 ~]$ whoami #查看当前是哪个用户登录的
zhang-02

如何给一个可执行的文件添加“s”(让普通用户临时拥有所有者权限),例如下:

[zhang-02@zhangzhen-01 ~]$ ls /root/ #普通用户没有访问的权限

ls: 无法打开目录/root/: 权限不够
[zhang-02@zhangzhen-01 ~]$ ls -ld /root/ #来看一下这个文件的权限,因为是普通用户,所以访问不了root
dr-xr-x---. 6 root root 185 3月 29 00:21 /root/

在这里,我们回到root用户下,执行:

2018.3.29 二周第四次课

.

在这里,绿色的/usr/bin/ls还并没有赋予“s权限”

我们可以给这个ls文件添加“s”权限

[root@zhangzhen-01 ~]# chmod u+s /usr/bin/ls
再来查看这个文件权限
2018.3.29 二周第四次课
添加成功!

再回到普通用户下,实验一下是否可以查看root下的文件呢

[zhang-02@zhangzhen-01 ~]$ ls /root/ #ok,这这里可以查到

anaconda-ks.cfg dior dior2 dior3
[zhang-02@zhangzhen-01 ~]$ ls -ld /root/
dr-xr-x---. 6 root root 185 3月 29 00:21 /root/

**如何删除已添加的“s”,权限,命令如下:

[root@zhangzhen-01 ~]# chmod u-s /usr/bin/ls

特殊权限set_gid (可以针对目录,所属组的身份,)该目录的背景颜色的是×××

概念:其功能和操作和set uid是一样的该权限可以作用在二进制可执行文件,也可以作用在目录上;当作用在文件上时,其功能和操作和set uid是一样的;它会使文件在执行阶段具有文件所属组的权限;目录被设置这个权限后,任何用户在此目录下创建的文件都具有和该目录所属的组相同的组。

操作命令如下:

2018.3.29 二周第四次课

特殊权限stick_bit

概念:可以理解为防删除位,文件是否可以被某用户删除;主要取决于该文件所在的目录是否对该用户具有写权限;如果没有写权限,则这个目录下的所有文件都不能删除;同时也不能添加新的文件。如果希望用户能够添加文件但不能删除该目录下其他用户的文件时;则可以对父目录增加该权限,如设置后,就算用户对目录具有写权限;也是不能删除其他用户的文件。命令如下:chmod u=b /tmp/

示例

在普通用户下创建个文件

[zhang-02@zhangzhen-01 tmp]$ touch zhang1 #在/tmp下创建个zhang1的文件

[zhang-02@zhangzhen-01 tmp]$ ls
zhang1
[zhang-02@zhangzhen-01 tmp]$ chmod 777 zhang1 #赋予最高的权限
[zhang-02@zhangzhen-01 tmp]$ ls -l zhang1#查看这个文件的所有者和所属组是谁
-rwxrwxrwx. 1 zhang-02 zhang-02 13 3月 29 23:26 zhang1

切到另外一个普通用户 user1下,查看是否可以编辑和删除。

[root@zhangzhen-01 tmp]# su - user1

[user1@zhangzhen-01 tmp]$ ls
zhang1
[user1@zhangzhen-01 tmp]$ vi zhang1 # 可以编辑,已测试
[user1@zhangzhen-01 tmp]$ rm -f zhang1 #但是在这里并不可以删除
rm: 无法删除"zhang1": 不允许的操作

软链接文件

概念:软连接类似于windows的快捷方式,软链接不只可以连接文件,也可以链接目录。软连接后面可以跟绝对路径;也可以跟相对路径,相对路径的话得在你要去的目录下命令如下:ln -s [源文件] [目标文件]### 建议使用绝对路径。如果你创建软连接不存在的时候,会红色常闪,那么直接在这个路径下touch一个文件即可。

软连接是什么样子呢,如下图,浅蓝色:

2018.3.29 二周第四次课

如何创建软链接,命令如下:ln -s [源文件] [目标文件]

例:

[root@zhangzhen-01 /]# mkdir /root/111

[root@zhangzhen-01 /]# ln -s /tmp/yum.log /root/111/
[root@zhangzhen-01 /]# ls -l /root/111/
总用量 0
lrwxrwxrwx. 1 root root 12 3月 29 23:55 yum.log -> /tmp/yum.log

2018.3.29 二周第四次课

如何创建软链接目录,操作如下:ln -s [源目录] [目标目录]

[root@zhangzhen-01 /]# ln -s /tmp/dior/ /root/111/zhang

[root@zhangzhen-01 /]# ls -l /root/111
总用量 0
lrwxrwxrwx. 1 root root 12 3月 29 23:55 yum.log -> /tmp/yum.log
lrwxrwxrwx. 1 root root 10 3月 29 23:59 zhang -> /tmp/dior/
2018.3.29 二周第四次课

硬链接文件

概念:硬链接不支持对目录做硬链接,只支持对文件做。即便是硬链接源地址被删除,也不受影响,相当于windows复制。inode号如果相同有N个文件,也不会占用空间,因为数据都存在了inode里面。文件做硬链接可以,但是有一个前提,不可以跨分区命令如下 :ln [源地址] [目标地址]

查看inode号:

#如下命令中,第二段表示inode号

[root@zhangzhen-01 ~]# ls -l
总用量 8
drwxr-xr-x. 2 root root 34 3月 29 23:59 111
-rw-------. 1 root root 6901 3月 27 22:40 anaconda-ks.cfg
drwxr-xr-x. 2 root user1 32 3月 28 22:44 dior
d---------. 3 root root 45 3月 28 23:26 dior2
drwxrwxr-x. 2 root root 19 3月 29 00:22 dior3
[root@zhangzhen-01 ~]# ls -i #查看inode号
499815 111 33574978 anaconda-ks.cfg 499801 dior 33575028 dior2 16784710 dior3

转载于:https://my.oschina.net/u/3830571/blog/1798196

你可能感兴趣的文章
Algs4-1.1.5位于0与1之间则打印true,否则打印false
查看>>
分布式存储 FastDFS-5.0.5线上搭建
查看>>
[Java 基础]ResultSet 指定field映射到Pojo对象的Map
查看>>
Oracle 11g OCM 考试大纲
查看>>
华为 题目大数据计算器
查看>>
学会了怎么推矩阵啊哈哈哈哈哈
查看>>
web开篇
查看>>
day7CSS
查看>>
android中延迟执行某个任务
查看>>
蒲公英分布平台下载更新实现
查看>>
Mysql常用命令详解
查看>>
依赖注入的方式
查看>>
从VBA到Delphi
查看>>
将父类activity context传递给fragment
查看>>
eclipse中导入SVN项目步骤
查看>>
2018-2019-1 20165226 《信息安全系统设计基础》第4周学习总结
查看>>
Oracle之自动收集统计信息
查看>>
互联网技术部门该如何管理
查看>>
微软2014实习生及秋令营技术类职位在线测试-题目3 : Reduce inversion count
查看>>
WebView兼容问题分析报告
查看>>