2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件...

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

特殊权限set_uid


set_uid:该权限针对二进制可执行文件,使文件在执行阶段具有文件所有者的权限; 通俗一点讲就是,普通用户想要访问一个没有其他用户可执行权限的目录时,暂时借助二进制文件的所属主权限去访问这个目录,如果没有s权限,就不能访问; 注意:普通用户要有这个二进制文件的可执行权限。如果没有,那也是不能访问的。 我们系统中passwd命令就具有s权限。当普通用户执行passwd命令的时候,可以临时获得root权限,从而可以更改密码;

系统修改密码命令:passwd

    [root@linux-128 ~]# which passwd/usr/bin/passwd[root@linux-128 ~]# ls -l /usr/bin/passwd-rwsr-xr-x. 1 root root 27832 6月  10 2014 /usr/bin/passwd  //颜色变成红色

系统密码文件:/etc/shadow

    [root@linux-128 ~]# ls -l /etc/shadow---------- 1 root root 663 10月 20 15:14 /etc/shadow

注意:这里所有者,所属组,其他用户都没有执行权限,但是root是超级用户,它具有至高无上的权限,所以root用户是可以修改密码的;按理说普通用户没有执行权限是没办法去修改密码的,但是我们passwd命令具有s权限,普通用户在使用命令passwd时,可以临时获取到passwd所属主的root权限,所以能修改密码。

例子:使用普通用户查看/root/目录:

    [root@linux-128 ~]# ls -ld /root/     //root目录没有其他用户可执行权限;dr-xr-x---. 3 root root 163 10月 25 00:45 /root/[root@linux-128 ~]# su - wuzhou     //切换用户上一次登录:一 10月 23 21:56:30 CST 2017pts/0 上[wuzhou@linux-128 ~]$ ls /root/ls: 无法打开目录/root/: 权限不够      //没有权限

我们怎样才能让普通用户wuzhou打开/root/目录呢? 解:我们给ls命令加上一个s权限,让用户wuzhou临时拥有ls的所有者权限;例如:

    [root@linux-128 ~]# which lsalias ls='ls --color=auto'/usr/bin/ls[root@linux-128 ~]# chmod u+s /usr/bin/ls[root@linux-128 ~]# ls -l /usr/bin/ls-rwsr-xr-x. 1 root root 117656 11月  6 2016 /usr/bin/ls[root@linux-128 ~]# su - wuzhou上一次登录:五 10月 27 00:18:52 CST 2017pts/0 上[wuzhou@linux-128 ~]$ ls /root/anaconda-ks.cfg

设置s权限:

  • chmod u+s 二进制文件名
  • chmod u=rws 二进制文件名
  • chmod 4755 二进制文件名 这个4是这样得出来的:
    suid = 4
    sgid = 2
    stick_bit = 1

取消s权限:

  • chmod u-s
  • chmod u=rws
  • chmod 755

特殊权限set_gid

set_gid:该权限可以作用在二进制可执行文件上,也可以作用在目录上。当作用在文件上时,其功能和set_uid一样,它会使文件在执行阶段具有该文件所属组的权限。作用在目录上时,任务用户在此目录下创建的文件和目录都具有和该目录所属组相同的组。

设置s权限:

  • chmod g+s 二进制文件名或目录
  • chmod g=rws 二进制文件名或目录
  • chmod 2755 二进制文件名或目录

例子:作用在二进制文件上

[root@linux ~]# ls -l /bin/ls
-rwxr-xr-x. 1 root root 112664 10月 15 2014 /bin/ls
[root@linux ~]# chmod g+s /bin/ls                \\/bin/ls 加上sgid
[root@linux ~]# !ls
ls -l /bin/ls
-rwxr-sr-x. 1 root root 112664 10月 15 2014 /bin/ls     \\颜色会变成黄色
[root@linux ~]# su - wzzhan       
[wzzhan@linux ~]$ ls /root             \\wzzhan用户会调用命令ls属组的权限去访问/root目录
111.bak  444    5.txt  777              install.log         prem
222      4.txx  6.txt  anaconda-ks.cfg  install.log.syslog  test

例子:作用于目录上

[root@linux tmp]# mkdir 555            \\创建目录555
[root@linux tmp]# chmod 777 555        \\设置权限所有人可读可写可执行
[root@linux tmp]# su - wzzhan          \\切换用户 wzzhan下
[wzzhan@linux ~]$ cd /tmp/555          
[wzzhan@linux 555]$ mkdir dir          \\创建目录dir
[wzzhan@linux 555]$ touch file         \\创建文件file
[wzzhan@linux 555]$ logout             \\退出用户到root下
[root@linux tmp]# chmod g+s 555        \\将目录555添加sgid权限
[root@linux tmp]# su - wzzhan          \\切换用到wzzhan下[wzzhan@linux tmp]$ cd 555
[wzzhan@linux 555]$ mkdir dir1          \\创建目录dir1
[wzzhan@linux 555]$ touch file1         \\创建文件file1
[wzzhan@linux 555]$ ls -l
总用量 8
drwxrwxr-x. 2 wzzhan wzzhan 4096 10月 27 15:04 dir
drwxrwsr-x. 2 wzzhan root   4096 10月 27 15:06 dir1    \\创建的目录的属组是调用的目录的属组
-rw-rw-r--. 1 wzzhan wzzhan    0 10月 27 15:04 file
-rw-rw-r--. 1 wzzhan root      0 10月 27 15:06 file1   \\创建的文件的属组也是调用的目录的属组

特殊权限stick_bit


sticky_bit:防删除位。一个目录下的文件嫩不能被删除,不是取决于文件本身的属组属组还有其他权限, 而是在于这个文件所在目录的权限是否可读可写可执行,如果目录可写,那就意味着我们可以删除目录下的任何文件。当一个目录的权限为其他人可读可写可执行的时候,那么其他用户都可以删除这个目录下的文件,包括root文件,为了防止文件被其他用户删除,我们给这这个目录增加一种特殊权限:sticky,防删除位,要用root用户操作。这样一个用户就不能删除另一个用户创建的文件了。只有root和创建文件本人才能够删除。

设置t权限:

  • chmod o+t 目录
  • chmod o=rwt 目录
  • chmod 1755 目录

例子:

root@linux ~]# cd /tmp
[root@linux tmp]# chmod o+t 666
[root@linux tmp]# ls -ld 666
drwxrwxrwt. 3 root root 4096 10月 27 15:42 666
[root@linux tmp]# su - user1
[user1@linux ~]$ cd /tmp/666
[user1@linux 666]$ ls -l
总用量 8
drwxrwxr-x. 2 wzzhan wzzhan 4096 10月 27 15:42 11
-rw-r--r--. 1 root   root    337 10月 27 15:22 1.txt
-rw-r--r--. 1 root   root      0 10月 27 15:22 1.xt
-rw-rw-r--. 1 wzzhan wzzhan    0 10月 27 15:42 2.txt
[user1@linux 666]$ rm -r 111
rm: 无法删除"111": 没有那个文件或目录
[user1@linux 666]$ rm -r 11
rm:是否删除有写保护的目录 "11"?y
rm: 无法删除"11": 不允许的操作
[user1@linux 666]$ rm -r 1.txt
rm:是否删除有写保护的普通文件 "1.txt"?y
rm: 无法删除"1.txt": 不允许的操作
[user1@linux 666]$ rm -rf 2.txt
rm: 无法删除"2.txt": 不允许的操作
[user1@linux 666]$ logout
[root@linux tmp]# ls
1      22.txt  3      555  6.txt  file1  test1
1.txt  2.txt   3.txt  666  dir1   test   yum.log
[root@linux tmp]# cd 666
[root@linux 666]# ls
11  1.txt  1.xt  2.txt
[root@linux 666]# rm -rf 11
[root@linux 666]# ls
1.txt  1.xt  2.txt
[root@linux 666]# su - wzzhan
[wzzhan@linux ~]$ cd /tmp/666      
[wzzhan@linux 666]$ ls -l
总用量 4
-rw-r--r--. 1 root   root   337 10月 27 15:22 1.txt
-rw-r--r--. 1 root   root     0 10月 27 15:22 1.xt
-rw-rw-r--. 1 wzzhan wzzhan   0 10月 27 15:42 2.txt
[wzzhan@linux 666]$ rm 2.txt           用户wzzhan才能删除2。txt文件
[wzzhan@linux 666]$ ls -l
总用量 4
-rw-r--r--. 1 root root 337 10月 27 15:22 1.txt
-rw-r--r--. 1 root root   0 10月 27 15:22 1.xt

软链接文件


软链接:是建立一个独立的文件,当读取这个链接文件时,它会把读取的行为转发到该文件所链接的文件上。

  • 软链接 相当于一个快捷方式
  • 软链接的大小取决于软链接源文件的路径长短
  • 软链接支持文件和目录
  • 软链接的源文件不能被删除,如果删除源文件,软链接文件会失效;软链接删除,源文件不受影响。 创建软链接格式:
  • 尽量使用绝对路径来做软链接 ln -s 源文件 目标文件
[root@linux-128 tmp]# ln -s /tmp/111/ /root/12
[root@linux-128 tmp]# ls -l /root
总用量 4
lrwxrwxrwx  1 root root    9 10月 27 01:12 12 -> /tmp/111/
-rw-------. 1 root root 1422 10月 17 03:51 anaconda-ks.cfg

比较源文件和软链接的大小,软连接的大小与源文件的长度有关

[root@linux-128 tmp]# du -sh /tmp/111/ /root/12
4.0K	/tmp/111/
0	/root/12
  • du -sh 文件 \查看文件大小
  • df -h \查看磁盘情况

硬连接文件


硬链接:当系统要读取一个文件时,会先读取inode信息,然后再根据inode的信息到块区域将数据取出来。而硬链接就是直接在建立一个inode链接到文件放置的块区域,即进行硬链接时,该文件的内容没有任何变化,只是增加了一个指向这个文件的inode,并不会额外占用磁盘空间。

  • 硬链接不能夸文件系统,不同的文件系统有不同的inode table;
  • 硬链接不能链接目录; 格式: ln 来源文件 目标文件
[root@linux-128 tmp]# ln /tmp/123.txt  /root/321.txt
[root@linux-128 tmp]# ls -lih /tmp/123.txt
8389029 -rw-r--r-- 2 root root 17K 10月 27 01:31 /tmp/123.txt
[root@linux-128 tmp]# ls -lih /root/321.txt
8389029 -rw-r--r-- 2 root root 17K 10月 27 01:31 /root/321.txt

注意:我们创建的硬链接和源文件的inode一样,大小一样。


删除源文件,硬链接不受影响
[root@linux-128 tmp]# rm /tmp/123.txt
rm:是否删除普通文件 "/tmp/123.txt"?y
[root@linux-128 tmp]# ls -l /root/321.txt
-rw-r--r-- 1 root root 16816 10月 27 01:31 /root/321.txt
硬链接不能链接目录
[root@linux-128 tmp]# ln /tmp/222/ /root/23
ln: "/tmp/222/": 不允许将硬链接指向目录

转载于:https://my.oschina.net/u/3866516/blog/1826319

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/390296.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

345. 反转字符串中的元音字母

345. 反转字符串中的元音字母 给你一个字符串 s ,仅反转字符串中的所有元音字母,并返回结果字符串。 元音字母包括 ‘a’、‘e’、‘i’、‘o’、‘u’,且可能以大小写两种形式出现。 示例 1: 输入:s “hello” 输…

通过制作数字桌面游戏和Web应用程序学习JavaScript

Building 2D games can be a great way to learn JavaScript, especially when working through the basics of complex tabletop game logic.制作2D游戏可能是学习JavaScript的好方法,尤其是在研究复杂的桌面游戏逻辑基础时。 In this series, I’m going to intr…

【HAVENT原创】Node Express API 通用配置

为什么80%的码农都做不了架构师?>>> ( 基于 Express 4.x ) 启动文件 /app.js: var express require(express); var bodyParser require(body-parser); var proxy require(http-proxy-middleware); var path require(path);var index re…

C#使用Json.NET解析Json

本文转载自 http://xiaosheng.me/2016/10/01/article25/ 最近在 C# 项目中需要使用到 Json 格式的数据,我简单上网搜索了一下,基本上有两种操作 Json 数据的方法: 使用 Windows 系统自带的类使用第三方的包本着“第三方包一定有比系统自带类优…

现在JavaScript日期–如何在JavaScript中获取当前日期

Many applications you build will have some sort of a date component, whether its the creation date of a resource, or the timestamp of an activity. 您构建的许多应用程序都将具有某种日期组件,无论是资源的创建日期还是活动的时间戳。 Dealing with date…

233. 数字 1 的个数

给定一个整数 n,计算所有小于等于 n 的非负整数中数字 1 出现的个数。 示例 1: 输入:n 13 输出:6 示例 2: 输入:n 0 输出:0 解题思路 正确性证明 例如:对于n3015&#xff0c…

Linux串口设置参数

为什么80%的码农都做不了架构师?>>> 在Linux环境下,串口名从ttyS0开始依次是ttyS1、ttyS2等。在本程序中,使用ttyS0作为通信串口。在打开ttyS0的时候选项 O_NOCTTY 表示不能把本串口当成控制终端,否则用户的键盘输入信…

STM32F013 十元板

我大拇指般大小。STM32F103C8T6,64K Flash,20K RAM,m3的核。十元,应该是价格极限了吧。 通过USB供电(5V),也可以排针3.3V供电。可惜没有引出5V排针。USB口可以供电和USB通讯,没有USB…

如何在Python中建立和训练K最近邻和K-Means集群ML模型

One of machine learnings most popular applications is in solving classification problems.机器学习最流行的应用之一是解决分类问题。 Classification problems are situations where you have a data set, and you want to classify observations from that data set in…

552. 学生出勤记录 II

552. 学生出勤记录 II 可以用字符串表示一个学生的出勤记录,其中的每个字符用来标记当天的出勤情况(缺勤、迟到、到场)。记录中只含下面三种字符: ‘A’:Absent,缺勤 ‘L’:Late,迟…

C/C++中计算函数运行时间

#include<stdio.h> #include<time.h> clock_t start,stop;//clock_t 是clock&#xff08;&#xff09;函数返回变量的类型 double duration;//记录被测函数的运行时间&#xff0c;以秒为单位 int main() { startclock();//开始计时 MyFunction();//把被测函数加在这…

作为一名前端开发工程师,你必须掌握的WEB模板引擎:Handlebars

为什么需要使用模板引擎&#xff1f; 关于为什么要使用模板引擎&#xff0c;按照我常说的一句话就是&#xff1a;不用重复造轮子了。 简单来说&#xff0c;模板最本质的作用是“变静为动”&#xff0c;一切利于这方面的都是优势&#xff0c;不利于的都是劣势。要想很好地实现“…

extjs 实用开发指南_如何提出有效问题:针对开发人员的实用指南

extjs 实用开发指南Learning is a journey that never ends. At every point in your career, you will keep learning, re-learning, and un-learning. 学习是一个永无止境的旅程。 在职业生涯的每个阶段&#xff0c;您都会不断学习&#xff0c;重新学习和不学习。 The abil…

LOJ 6270

最近&#xff08;一直&#xff09;有点&#xff08;很&#xff09;蠢 按照区间大小排序做区间包含多少区间的话 只用考虑 左端点比当前左端点小的和右端点比当前右端点大的&#xff0c;因为不可能同时满足 关于K&#xff0c;就在做到K的时候减一下就好了&#xff0c;一直傻逼在…

Zabbix3.4安装详细步骤

Zabbix3.4安装的详细步骤一、zabbix介绍现在大多数公司都会用到监控软件&#xff0c;主流的监控软件就是Zabbix了&#xff0c;当然还会有Nagios等其他的软件&#xff1a;zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix能监视各种…

软件自学成才到公司要学历吗_作为一名自学成才的移动开发人员,我在旅途中学到了什么

软件自学成才到公司要学历吗In this post, Ill share my entire journey about how I became a professional mobile developer.在这篇文章中&#xff0c;我将分享我如何成为一名专业的移动开发人员的整个过程。 I hope that reading about my experience will help you refle…

cs231n---语义分割 物体定位 物体检测 物体分割

1 语义分割 语义分割是对图像中每个像素作分类&#xff0c;不区分物体&#xff0c;只关心像素。如下&#xff1a; &#xff08;1&#xff09;完全的卷积网络架构 处理语义分割问题可以使用下面的模型&#xff1a; 其中我们经过多个卷积层处理&#xff0c;最终输出体的维度是C*H…

http协议内容

前言&#xff1a; http协议&#xff1a; 对浏览器客户端 和 服务器端 之间数据传输的格式规范http1.0&#xff1a;当前浏览器客户端与服务器端建立连接之后&#xff0c; 只能发送一次请求&#xff0c;一次请求之后连接关闭。 http1.1&#xff1a;当前浏览器客户端与服务器端建…

array_combine()

转载于:https://www.cnblogs.com/xiaobiaomei/p/8392728.html

CSS外边距(margin)重叠及防止方法

#css外边距margin重叠及防止方法CSS外边距(margin)重叠及防止方法 #1-什么是外边距margin重叠1. 什么是外边距(margin)重叠 外边距重叠是指两个或多个盒子(可能相邻也可能嵌套)的相邻边界(其间没有任何非空内容、补白、边框)重合在一起而形成一个单一边界。 #2-相邻marign重叠的…