1.特殊权限概述

前面我们已经学习过 r(读)、w(写)、 x(执行)这三种普通权限,但是我们在査询系统文件权限时会发现出现了一些其他权限字母,比如:

2.特殊权限SUID

set uid 简称suid,当我们为某个命令设定了suid,无论谁使用该命令 都会使用该命令的 "属主" 运行该命令

suid  == 4000
chmod u+s   /usr/bin/passwd
chmod 4755   /usr/bin/passwd
chmod u-s  去掉权限
  • suid优点: 可以让普通用户执行无法执行的命令 方便
  • suid缺点: 如果rm 为suid, 无论谁执行该命令,都能删除系统的任何资源

3.sgid (set gid) 特殊权限 (RHCE考试)

将目录设置为sgid后,如果在往该目录下创建文件,都将与该目录的所属组保持一致,演示如下

[root@chengyinwu ~]# groupadd devops
[root@chengyinwu ~]# useradd zhangsan -G devops
[root@chengyinwu ~]# useradd lisi -G devops
[root@chengyinwu ~]# mkdir /opt/share
[root@chengyinwu ~]# chmod 2777 share/
[root@chengyinwu ~]# chown .devops share/
  • 测试不同的用户在该目录下创建文件,检查属主和属组
  • 使用sgid可以使得多个用户之间共享一个目录的所有文件变得简单。

4.特殊权限SBIT

  1. 如果一个目录设定了粘滞位, 那么谁都可以在该目录下创建文件,.
  2. 删除文件只能是 谁创建的谁删除. 除此以外 root 和/tmp/的所属主都能删除该目录下的内容.
设定粘滞位 1000
chmod o+t /tmp
chmod 1777 /tmp

5.特殊属性 chattr lsattr

-a 只能追加,无其他操作
-i 锁定文件,不能删除,不能追加,不能移动
1.希望任何人都不能创建用户,应该给/etc/passwd添加什么特殊属
性?
[root@oldboyedu ~]# chattr +i /etc/passwd
[root@oldboyedu ~]# lsattr /etc/passwd
----i----------- /etc/passwd
# 不得任意更动文件或目录
#----------------------------------------------
[root@oldboyedu ~]# chattr -i /etc/passwd
[root@oldboyedu ~]# lsattr /etc/passwd
---------------- /etc/passwd
[root@oldboyedu ~]# useradd test123
2.日志文件,希望能往里面追加内容,但不允许删除,应该添加什么
特殊属性?
[root@oldboyedu ~]# chattr +a /var/log/secure
[root@oldboyedu ~]# lsattr /var/log/secure
-----a---------- /var/log/secure

6.umask 默认权限

umask是用来控制默认创建文件或目录的权限
umask设定为022,表示要减去的权限
目录 777 -022 =755
文件 666 -022 =644

umask 设定为奇数 偶数 对文件和目录有什么影响?

文件: 如果umask出现了奇数, 要在奇数位+1

目录: 对目录毫无影响

设定umask

umask number 临时 (当前bash窗口有效,会随着bash的关闭一起结束)
vim /etc/profile /etc/login.defs # 如果修改则都为永久.
注: umask 知道就行, 不要调整,默认就是安全的权限.
目录: 755
文件: 644

今日总结

1.特殊权限 suid sgid sbit

2.特殊属性 chattr lsattr -a(/var/log/*.log) -i (/etc/passwd)

3.umask 默认权限( 表示要减去的权限 目录:777 -umask 文件:666 -

umask)

11.Linux用户特殊权限的更多相关文章

  1. Linux 用户及权限详解

    Linux 用户及权限详解 用户 , 组 ,权限 安全上下文(secure context): 权限: r,w,x 文件: r : 可读,可以使用类似cat 等命令查看文件内容. w : 可写,可以编 ...

  2. 《The Linux Command Line》 读书笔记04 Linux用户以及权限相关命令

    Linux用户以及权限相关命令 查看身份 id:Display user identity. 这个命令的输出会显示uid,gid和用户所属的组. uid即user ID,这是账户创建时被赋予的. gi ...

  3. Linux用户和权限——管理文件权限的命令

    Linux用户和权限——管理文件权限的命令 摘要:本文主要学习了Linux中修改文件权限的命令. chown命令 chown命令,主要用于修改文件(或目录)的所有者,除此之外,这个命令也可以修改文件( ...

  4. Linux用户和权限——权限管理

    Linux用户和权限——权限管理 摘要:本文主要介绍了Linux系统中权限的分类,以及对权限的管理. 用户的三种身份 所有者 由于Linux是个多人多工的系统,因此可能常常会有多人同时使用这部主机来进 ...

  5. Linux用户和权限——管理用户和用户组的命令

    Linux用户和权限——管理用户和用户组的命令 摘要:本文主要学习了在Linux系统中管理用户和用户组的命令. useradd命令 useradd命令可以用来创建新用户. 基本语法 useradd [ ...

  6. Linux用户和权限——用户和用户组管理

    Linux用户和权限——用户和用户组管理 摘要:本文主要介绍了Linux系统中的用户和用户组管理. 用户和用户组 含义 在使用Linux系统时,虽然输入的是自己的用户名和密码,但其实Linux并不认识 ...

  7. 11.Linux用户管理

    本笔记说的Linux用户管理主要包括以下内容: 1.用户配置文件(/etc/passwd  /etc/shadow) 2.组配置文件(/etc/group  /etc/gshadow) 3.用户缺省配 ...

  8. linux用户及权限管理

    [文件管理.管道.用户及组管理.用户及权限管理]\用户及组管理 用户与组管理 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这 ...

  9. Linux用户和权限管理看了你就会用啦

    前言 只有光头才能变强 回顾前面: 看完这篇Linux基本的操作就会了 没想到上一篇能在知乎获得千赞呀,Linux也快期末考试了,也有半个月没有写文章了.这篇主要将Linux下的用户和权限知识点再整理 ...

随机推荐

  1. [Pandas] 04 - Efficient I/O

    SQLITE3接口 调动 SQLITE3数据库 import sqlite3 as sq3 query = 'CREATE TABLE numbs (Date date, No1 real, No2 ...

  2. uboot学习之uboot启动流程简述

    一.uboot启动分为了三个阶段BL0.BL1.BL2:BL0表示上电后运行ROM中固化的一段程序,其中ROM中的程序是厂家写进去的,所以具体功能可能根据厂家芯片而有所不同.功能如下: 初始化系统时钟 ...

  3. jvm对象内存分配

    一.jvm简单结构图 1.jvm内存对象分配整体流程: 1.类加载子系统和方法区 类加载子系统负责从文件系统或者网络中加载Class信息,加载的类信息存放于一块称为方法区的内存空间.除了类的信息外, ...

  4. Github 持续化集成 工作流 Npm包自动化发布

    Github 持续化集成 工作流 Npm包自动化发布 简介   持续集成指的是,频繁地(一天多次)将代码集成到主干. 它的好处主要有两个: 快速发现错误.每完成一点更新,就集成到主干,可以快速发现错误 ...

  5. Python的未来发展方向

    Python是一种跨平台的计算机程序设计语言. 是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的.大型项目的开发. ...

  6. 23种设计模式之模板方法(Template Pattern)

    定义一个操作中的算法的骨架,而将一些步骤延迟到子类中.模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤 AbstractClass:抽象类.用来定义算法骨架和原语操作,在这个类里 ...

  7. Maven 梳理 -聚合与继承

    一.聚合 如果我们想一次构建多个项目模块,那我们就需要对多个项目模块进行聚合 1.1.聚合配置代码 1 <modules> 2 <module>模块一</module&g ...

  8. .net core 3.0 Signalr - 08 业务实现-客户端demo

    由于signalr作为一个单独的推送系统,跟业务系统是分离开的,所以此处模拟一个业务系统,新建一个.net core app项目 ## 模拟实现一个登录功能 我们的登录很简单,当进入系统,如果检测到用 ...

  9. linux脚本入门之终端显示输出

    主要基本命令为 echo 与 printf. 关于echo: 其语法结构为:echo -选项参数 字符串: 例如:echo hello,world   echo 'hello,world'  echo ...

  10. Jetpack系列:应用内导航的正确使用方法

    今天小编要分享的还是Android Jetpack库的基本使用方法,本篇介绍的内容是Jetpack Navigation组件,让我们一起学习,为完成年初制定的计划而努力吧! *** 组件介绍 导航,是 ...