首页 > 系统相关 >Linux的特殊权限

Linux的特殊权限

时间:2024-08-05 18:40:10浏览次数:7  
标签:jungout 特殊 passwd Linux 权限 root 目录 localhost

特殊权限是什么

在Linux中,特殊权限是指针对文件或目录的特殊权限设置,包括SetUIDSetGIDSticky Bit

特殊权限 说明
SetUID Set User ID 当一个可执行文件被设置了SetUID权限后,当任何用户执行该文件时,文件的所有者权限会被赋予执行者,而不是执行者的权限。这使得用户可以以文件所有者的身份执行文件,通常用于需要特殊权限的程序。
SetGID Set Group ID 当一个可执行文件被设置了SetGID权限后,当任何用户执行该文件时,文件的所属组权限会被赋予执行者,而不是执行者的权限。这使得用户可以以文件所属组的身份执行文件,通常用于需要特殊权限的程序。
Sticky Bit 粘置位 当一个目录被设置了Sticky Bit权限后,只有目录的所有者、文件的所有者或者root用户才能删除该目录下的文件。这通常用于共享目录,防止其他用户删除不属于自己的文件。

一个典型的例子就是 passwd 命令,这个命令允许用户修改自己的密码。

ll /usr/bin/passwd 
-rwsr-xr-x. 1 root root 32648 Aug 10  2021 /usr/bin/passwd

我们可以看到本来是rwx的权限表示形式变成了rws

查找特殊权限的文件或目录

#1.查找/usr/bin目录下拥有suid权限的文件
find /usr/bin -perm /u+s

#2.查找/目录下拥有guid权限的目录
find / -type d -perm /g+s

#3.查找/目录下拥有sticky权限的目录
find / -type d -perm /o+t

linux权限的示意图

Linux特殊权限的说明

SetUID权限

  • 添加SetUID的权限,Owner原本有执行权限的,执行权限位会从 x 会变为 s
  • 添加SetUID的权限,Owner原本没有执行权限的,执行权限位会从 - 会变为 S
  • 数字模式:4744

例如,Linux系统 passwd 修改密码的命令需要通过修改 /etc/passwd 文件实现,但是这个文件是权限所属于 root 用户,普通用户需要临时提权调用这个 passwd 命令。

  1. 查看passwd命令,查看所有者的执行位权限为s

    [root@localhost ~]# ls -l /usr/bin/passwd
    -rwsr-xr-x. 1 root root 33424 Feb 18  2022 /usr/bin/passwd
    
  2. 将passwd命令的setuid权限取消

    [root@localhost ~]# chmod 755 /usr/bin/passwd
    
  3. 使用普通用户jungout修改密码,发现执行错误

    [root@localhost ~]# su - jungout
    [jungout@localhost ~]$ passwd
    Changing password for user jungout.
    Current password:                                 #输入旧密码
    New password:                                     #输入新密码
    passwd: Authentication token manipulation error   #认证令牌操作错误
    
  4. 切换回root用户添加setuid权限

    [jungout@localhost ~]$ exit
    [root@localhost ~]# chmod u+s /usr/bin/passwd
    
  5. 再次使用jungout修改密码,执行成功

    [root@localhost ~]# su - jungout
    [jungout@localhost ~]$ passwd
    Changing password for user jungout.
    Current password:                                 #输入旧密码
    New password:                                     #输入新密码
    Retype new password:                              #确认新密码
    passwd: all authentication tokens updated successfully.
    

SetGID权限

SetGID权限,用户可以以文件所属组的身份执行文件,新创建的文件或目录会继承该目录的所属组,但是只有目录的所有者、文件的所有者或者root用户才能删除该目录下的文件。

  • 添加SetGID的权限,Group原本有执行权限的,执行权限位会从 x 会变为 s
  • 添加SetGID的权限,Group原本没有执行权限的,执行权限位会从 - 会变为 S
  • 数字模式:2770

例如,Linux系统中一个项目的 共享目录 设置 SetGID 权限,共享目录的名称为:share ,这个目下执行的操作和文件都会继承该目录的所属组的权限。

  1. 在/home目录下创建share的目录
    [root@localhost ~]# mkdir /home/share
    
  2. 要求/home/share的所属组是shareuser,组内成员可读可写。
    [root@localhost ~]# groupadd shareuser
    [root@localhost ~]# chgrp shareuser /home/share
    [root@localhost ~]# chmod 770 /home/share
    
  3. 设置sgid权限位,所属组的执行位权限为s
    [root@localhost ~]# chmod g+s /home/share
    [root@localhost ~]# ls -l /home | grep share 
    drwxrws---. 2 root  shareuser  6 Jan  5 04:55 share
    
  4. 将普通用户jungout添加到shareuser组
    [root@localhost ~]# gpasswd -a jungout shareuser
    Adding user jungout to group shareuser
    
  5. 切换到jungout并在/home/share目录上创建file1文件(继承组权限,组内成员都可以访问)
    [root@localhost ~]# su - jungout
    [jungout@localhost ~]$ touch /home/share/file1
    [jungout@localhost ~]$ ls -l /home/share/
    -rw-rw-r--. 1 jungout shareuser 0 Jan  5 05:27 file1
    

Sticky Bit权限

Sticky Bit 权限,只有目录的所有者、文件的所有者或者root用户才能删除该目录下的文件,这通常用于共享目录下的私人文件,防止其他用户删除不属于自己的文件。

  • 添加 Sticky Bit 的权限,Others原本有执行权限的,执行权限位会从 x 会变为 t
  • 添加 Sticky Bit 的权限,Others原本没有执行权限的,执行权限位会从 - 会变为 T
  • 数字模式:1777

例如,Linux系统中临时目录 /tmp ,通常用于临时存放服务的进程PID,这要求意味着所有用户都有对该目录的写入权限,但只有文件的所有者才能删除自己创建的文件。

  1. 查看/tmp目录的ohter的执行权限位为:t

    [root@localhost ~]# ls -l / | grep tmp
    drwxrwxrwt.  16 root root 4096 Jan  5 05:42 tmp
    
  2. 创建普通用户user1,并在/tmp目录下创建一个目录

    [root@localhost ~]# useradd user1
    [root@localhost ~]# su -user1
    [user1@localhost ~]$ mkdir /tmp/user1-servr
    [user1@localhost ~]$ exit  #返回root用户
    
  3. 使用普通用户jungout删除/tmp/user1-servr目,操作不允许。

    [root@localhost ~]# su - jungout
    [jungout@localhost ~]$ rmdir /tmp/user1-services
    rmdir: failed to remove '/tmp/user1-services/': Operation not permitted
    

标签:jungout,特殊,passwd,Linux,权限,root,目录,localhost
From: https://www.cnblogs.com/guangdelw/p/18343826

相关文章

  • linux忘记root密码重置
     如果您在Linux系统中忘记了root密码,可以按照以下步骤重置:重启系统。在启动时,当GRUB菜单出现时,选择要启动的内核版本,然后按e键编辑启动选项。找到以linux或linux16开头的行,它包含了启动内核的命令。在这行的末尾添加 rd.break 或 single 或 ini......
  • Linux学习第57天:Linux PWM驱动实验
    Linux版本号4.1.15  芯片I.MX6ULL                  大叔学Linux  品人间百味 思文短情长本章的思维导图如下:一、PWM驱动简析1、设备树下的PWM控制节点        8路PWM都属于I.MX6ULL的AIPS-1域,分为了两部分,PW......
  • 如何在linux系统上安装tomcat应用程序?
    1)首先查看安装包信息yuminfotomcatyuminfotomcat2)安装yum-yinstalltomcatyum-yinstalltomcat3)查看安装是否成功rpm-qtomcatrpm-qtomcat4)如果输出一下内容则代表安装成功tomcat-7.0.76-16.el7_9.noarch5)执行vi/etc/profile添加下列内容vi/etc......
  • 查看linux系统的相关配置命令
    1、查看系统基本信息uname[选项]-a显示所有的信息-s显示内核信息-r显示内核版本-o显示操作系统名称-m硬件架构2、查看cpu相关信息lscpu​3、查看内存相关信息free[选项]-m以m为单位显示-h以人类可读显示4、系统实时状态top命令可以实时地显示系......
  • linux 基础知识汇总
    1、Linux文件系统概述Linux文件系统是指操作系统用来控制文件如何存储和检索的结构和逻辑。文件系统结构根目录:/Linux文件系统从根目录(/)开始,这是所有文件和目录的起点。目录结构:Linux使用层次化目录结构,每个目录包含文件和子目录。挂载点:各种文件系统通过挂载点(mo......
  • Parallels Desktop19.3.0虚拟机软件可以让你在Mac上同时运行Windows、Linux等多个系统
    ParallelsDesktop19,一个虚拟机软件,可以让你在Mac上同时运行Windows、Linux等多个系统。听起来是不是很厉害?但其实它还有更多隐藏的小技巧等着你去发现。如果你还在因为Mac和Windows之间的不兼容而苦恼,那么ParallelsDesktop19就是你的救星。它可以帮助你轻松地在Mac上运行Win......
  • prometheus中的node_exporter中linux系统中取磁盘使用率
    (((node_filesystem_size_bytes{job="exp-server-node",mountpoint=~".*",fstype=~"ext4|xfs|ext2|ext3|tmpfs"}-node_filesystem_free_bytes{job="exp-server-node",mountpoint=~".*",fstype=~"ext4|xfs|ext2|ext3|t......
  • 一张图带你学习Linux文件权限,简单易懂!
    你好,这里是网络技术联盟站,我是瑞哥。在Linux系统中,文件权限是确保系统安全性和完整性的重要机制。理解并正确设置文件权限,能够有效防止未授权的访问和修改,从而保护系统中的数据。文件权限文件权限是Linux系统中控制用户和组对文件和目录的访问权限的机制。每个文件和目......
  • 特殊成员函数
    C++提供的特殊成员函数1.你未定义构造函数会生成默认构造函数2.你未定义析构函数会生成默认析构函数3.未定义拷贝构造函数时生成拷贝构造函数4.赋值运算符=5.&取地址运算符拷贝构造函数使用1.使用赋值运算符时=2.进行值传递时,进行值传递意味会产生一份传递参数的拷贝。3.......
  • 坚果云,文件夹同步冲突、共享文件夹权限提示文件已共享实际查看不到
    一、提示冲突打开注册表1、按下面的路径\HKEYLOCALMACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\SyncRootManager\看是否有【Nutstore-临时】开头的项和【Nutstore-通知】开头的项。如果有,删掉这两项就好了。2、重新同步文件夹就可以了二、共享文件夹权......