2018.3.29 二周第四次课

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2018.3.29 二周第四次课相关的知识,希望对你有一定的参考价值。

特殊权限set_uid

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

如下命令,查看

[[email protected] ~]# which passwd #查看这个命令在哪
/usr/bin/passwd
[[email protected] ~]# 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下

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

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

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

[[email protected] ~]# useradd zhang-02 #创建一个zhang-02的用户
[[email protected] ~]# 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
[[email protected] ~]# su - zhang-0 #切换用户
[[email protected] ~]$ whoami #查看当前是哪个用户登录的
zhang-02

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

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

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

技术分享图片

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

我们可以给这个ls文件添加“s”权限
[[email protected] ~]# chmod u+s /usr/bin/ls
再来查看这个文件权限
技术分享图片
添加成功!

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

[[email protected] ~]$ ls /root/ #ok,这这里可以查到
anaconda-ks.cfg dior dior2 dior3
[[email protected] ~]$ ls -ld /root/
dr-xr-x---. 6 root root 185 3月 29 00:21 /root/

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

[[email protected] ~]# chmod u-s /usr/bin/ls

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

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

操作命令如下:
技术分享图片

特殊权限stick_bit

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

示例
在普通用户下创建个文件

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

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

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

软链接文件

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

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

技术分享图片

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

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

技术分享图片

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

[[email protected] /]# ln -s /tmp/dior/ /root/111/zhang
[[email protected] /]# 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/
技术分享图片

硬链接文件

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

查看inode号:

#如下命令中,第二段表示inode号
[[email protected] ~]# 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
[[email protected] ~]# ls -i #查看inode号
499815 111 33574978 anaconda-ks.cfg 499801 dior 33575028 dior2 16784710 dior3

以上是关于2018.3.29 二周第四次课的主要内容,如果未能解决你的问题,请参考以下文章

二周第四次课(12月21日)

二周第四次课

二周第四次课(2月1日)笔记

二周第四次课(2月1日)

Linux学习笔记第二周第四次课(2月1日)

Linux学习笔记第二周第四次课(2月1日)