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,一经查实,立即删除!

相关文章

【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…

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…

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

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

Zabbix3.4安装详细步骤

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

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

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

array_combine()

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

composer windows安装

一.前期准备: 1.下载安装包,https://getcomposer.org/download/ 2.在php.ini文档中打开extensionphp_openssl.dll 3.下载php_ssh2.dll、php_ssh2.pdb,http://windows.php.net/downloads/pecl/releases/ssh2/0.12/ 4.把php_ssh2.dll、php_ssh2.pdb文件放php的ext文件夹 5.重启ap…

spring整合mybatis采坑

本来这个错误是整合spring和mybatis遇到的错误,但是一直没有解决,但是在做SpringMVC时也了出现了这样的错误org.springframework.beans.factory.BeanCreationException: Error creating bean with name sqlSessionFactory defined in class path resourc…

处理测试环境硬盘爆满

测试环境经常会收到这类告警 第一步 登陆机器查看硬盘使用 执行df 好吧,使用情况真不妙,根目录占用过大 第二步 确定哪个文件太大或者文件过多 进入爆满的目录,如这里是根目录 cd / 然后找下面哪个文件夹或者文件太大,有几种方式: 1.dusudo du -h --max-depth1 | sort -hr 越前…

LeetCode-46. Permutations

一、问题描述 就是全排列问题。 二、问题解决 应该哪一本数据结构的书上都有讲了。 void get_permute(vector<int>& nums, int pos, vector<vector<int>>& result) {if (nums.size() pos) {result.push_back(nums);return;}for (int i pos; i <…

789. 逃脱阻碍者

789. 逃脱阻碍者 你在进行一个简化版的吃豆人游戏。你从 [0, 0] 点开始出发&#xff0c;你的目的地是 target [xtarget, ytarget] 。地图上有一些阻碍者&#xff0c;以数组 ghosts 给出&#xff0c;第 i 个阻碍者从 ghosts[i] [xi, yi] 出发。所有输入均为 整数坐标 。 每一…

计算机视觉-自定义对象检测器

1、模板匹配 运行指令&#xff1a;python template_matching.py --source 3.jpg --template 2.jpg import argparse import cv2ap argparse.ArgumentParser() ap.add_argument("-s", "--source", requiredTrue, help"Path to the source image"…

297. 二叉树的序列化与反序列化

297. 二叉树的序列化与反序列化 序列化是将一个数据结构或者对象转换为连续的比特位的操作&#xff0c;进而可以将转换后的数据存储在一个文件或者内存中&#xff0c;同时也可以通过网络传输到另一个计算机环境&#xff0c;采取相反方式重构得到原数据。 请设计一个算法来实现…

Python 08 面向对象

Python 面向对象 1、编程范式 2、面向对象特性 3、属性、方法 4、三大特性 5、高级方法 6、类的特殊成员方法 7、反射 8、异常处理 9、单例模式 一、编程范式 编程&#xff1a;程序员用特定的语法数据结构算法组成的代码来告诉计算机如何执行任务的过程 &#xff0c; 实现一个…

eclipse手动添加SVN插件

https://www.cnblogs.com/hcl1991/p/5888461.html 1.手动下载svn插件&#xff08;百度SVNsite-1.8.18&#xff09; 2.将下载好的SVNsite-1.8.18.zip 解压 3.在eclipse安装目录的plugins新建SVN文件夹 4.将SVNsite-1.8.18解压包下的features和plugins拷贝到新建的SVN文件夹下 5.…

440. 字典序的第K小数字

440. 字典序的第K小数字 给定整数 n 和 k&#xff0c;找到 1 到 n 中字典序第 k 小的数字。 注意&#xff1a;1 ≤ k ≤ n ≤ 109。 示例 : 输入: n: 13 k: 2 输出: 10 解释: 字典序的排列是 [1, 10, 11, 12, 13, 2, 3, 4, 5, 6, 7, 8, 9]&#xff0c;所以第二小的数字是…

JDK 11 还有一个处于计划阶段的 JEP:让其支持 TLS 1.3

开发四年只会写业务代码&#xff0c;分布式高并发都不会还做程序员&#xff1f; >>> JDK 11 最近有什么消息&#xff1f;我们不妨来看一下它的进展情况&#xff0c;包括最新的 JEP 提案。Java 的新版本发布计划意味着总会有一款新的 JDK 即将推出。根据他们的计划&a…

498. 对角线遍历

498. 对角线遍历 给定一个含有 M x N 个元素的矩阵&#xff08;M 行&#xff0c;N 列&#xff09;&#xff0c;请以对角线遍历的顺序返回这个矩阵中的所有元素&#xff0c;对角线遍历如下图所示。 示例: 输入: [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ] 输出: [1,2,4,7,5…

Squid 访问控制配置

Squid 访问控制配置 主配置文件内加入限制参数 vim /etc/squid/squid.conf # 访问控制 acl http proto HTTP # 限制访问 good_domain添加两个域名“.”表示半解析(相当于*) acl good_domain dstdomain .kevin.net .baidu.com # 允许good_domain内的域名访问 http_access allow …