su incorrect password问题 su无法切换用户问题 以及权限s、t、i、a补充

2023-11-04

摘要:

最近遇到一个问题,在测试环境上发现使用su无法切换账户,但是这两个账户都是可以登录的,于是就开始百度,找到了解决问题的办法。


解决方案如下:


第一步:


使用root用户登录系统,或者有root权限的用户登录


第二步:


查看文件权限,例如

ll -a /bin/su
ll -a /usr/bin/passwd

观察显示结果,正确的结果为:

-rwsr-xr-x 1 root root 36936 Feb 17  2014 /bin/su*
-rwsr-xr-x 1 root root 47032 Feb 17  2014 /usr/bin/passwd*

错误的结果为:

-rwxr-xr-x 1 root root 36936 Feb 17  2014 /bin/su
-rwxr-xr-x 1 root root 47032 Feb 17  2014 /usr/bin/passwd

请注意rw sr-xr-x 与rw xr-xr-x是不同的

前者与后者的区别如下:

  1. s:当普通用户使用su的时候,采用的是owner的权限,几使用root去执行su内部需要执行的文件或命令
  2. x:当用普通用户执行su的时候,只能代表该用户,虽然执行了,但访问其他资源,比如密码文件等,可能就没有权限了。

关于密码文件可能也访问了别的命令或文件,道理同上。


第三步:


既然知道原因,那么修改文件权限即可

chmod 4755 /bin/su
chmod 4755 /usr/bin/passwd

第四步:


查看结果是否正确,可以正常切换用户。


虽然遇到的问题解决了,可是还有需对疑问:

  1. 有s权限吗,没见过啊?
  2. 还有别的特殊权限吗?
  3. 授权的时候755我理解啊,4775是什么意思啊,为什么是前边加4呢?

这几个问题还是困扰我的,于是我继续百度,去找到问题的答案。


第一、二个问题答案:


文件权限除了r、w、x外还有s、t、i、a权限:

s:文件属主和组设置SUID和GUID,文件在被设置了s权限后将以root身份执行。

例如:Linux修改密码的passwd便是个设置了SUID的程序,普通用户无读写/etc/shadow文件的权限确可以修改自己的密码。

ls -al /usr/bin/passwd
-rwsr-xr-x 1 root root 32988 2008-12-08 17:17 /usr/bin/passwd*

我们可以通过字符模式设置s权限:chmod a+s filename,也可以使用绝对模式进行设置:

设置suid:将相应的权限位之前的那一位设置为4;

设置guid:将相应的权限位之前的那一位设置为2;

两者都置位:将相应的权限位之前的那一位设置为4+2=6。

如:chmod 4755 filename   //设置SUID


注:在设置s权限时文件属主、属组必须先设置相应的x权限,否则s权限并不能正真生效(chmod命令不进行必要的完整性检查,即使不设置x权限就设置s权限,chmod也不会报错,当我们ls -l时看到rwS,大写S说明s权限未生效。

例如:

有执行权限:


无执行权限:



t :设置粘着位,一个文件可读写的用户并一定相让他有删除此文件的权限,如果文件设置了t权限则只用属主和root有删除文件的权限,通过chmod +t filename 来设置t权限。

注:经过测试发现,这个权限用于文件夹,如果文件夹没有这个权限,文件也无法添加这个权限

i:不可修改权限  例:chattr u+i filename 则filename文件就不可修改,无论任何人,如果需要修改需要先删除i权限,用chattr -i filename就可以了。查看文件是否设置了i权限用lsattr filename。

a:只追加权限, 对于日志系统很好用,这个权限让目标文件只能追加,不能删除,而且不能通过编辑器追加。可以使用chattr +a设置追加权限。


第三个问题答案:


如何设置以上特殊权限:

  • setuid:chmod u+s xxx
  • setgid:  chmod g+s xxx
  • stick :   chmod o+t xxx

或者使用八进制方式,在原先的数字前加一个数字,三个权限所代表的进制数与一般权限的方式类似,如下:

suid   guid    stick

1        1         1

所以:

  • suid的二进制串为:100,换算十进制为:4
  • guid的二进制串为:010,换算十进制:2
  • stick的 二进制串:001,换算十进制:1

于是也可以这样设:

  • setuid: chmod 4755 xxx
  • setgid: chmod 2755 xxx
  • stick : chmod 1755 xxx


参考:

关于Linux下s、t、i、a权限

Linux系统中的文件的s权限

linux下文件权限和特殊权限说明

su 切换不了用户

su: incorrect password

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

su incorrect password问题 su无法切换用户问题 以及权限s、t、i、a补充 的相关文章

随机推荐

  • emi滤波matlab,【原创】EMI 滤波器设计从入门到精通(三)

    原标题 原创 EMI 滤波器设计从入门到精通 三 07 一些重要的基本概念 1 电磁场 电场和磁场总是联系在一起的 电场和磁场的混合就是电磁场 英文也专门创建了这么一个单词 Electromagnetic Field 电磁场 以下图为例 图
  • 基于RISC-V架构的45条指令单周期CPU设计——第1章

    完整目录 完整代码和论文 指令选取 前言 本次设计选取 RV32I 和 RV32M 大部分可实现的指令 其中囊括 R 型 I 型 U 型 S 型 B 型 J 型指令 R 型指令 R 型指令格式 I 型指令 I 型指令格式 U 型指令 U 型
  • qt平台插件问题(Ubuntu 16.04)

    问题描述 在运行python的可视化库的时候 报错提示 Qt平台插件异常 可以尝试重新安装qt库 度娘之后发现解决方法是将PyQt加入环境变量 但是尝试之后是没有效果的 所以卡了很久 最后分析了一下 应该是Ubuntu基于Python的GU
  • 微信小程序开发搜索功能(前端+后端+数据库)

    2019年5月7日更新 这是写的最新的一篇文章 大家看这篇 https blog csdn net weixin 39927850 article details 87990384 界面比较丑 主要实现逻辑 超级简单的界面 表单 提交按钮
  • 刷脸支付现已引领了新一轮科技开展浪潮

    人脸验证前 平台需要采集目标对象的人像数据 经过算法提取图画中的人脸特征值 树立个人独特的生物数据库 假定您的特征值存储在数据库中 在您的付出过程中 系统将您的人脸信息放入数据库进行云比较 从而到达辨认和付出的目的 刷脸支付有多重好处 将会
  • mysql中groupby用法_详解SQL中GroupBy的用法

    GROUP BY 语句用于结合合计函数 根据一个或多个列对结果集进行分组 1 概述 Group By 从字面意义上理解就是根据 By 指定的规则对数据进行分组 所谓的分组就是将一个 数据集 划分成若干个 小区域 然后针对若干个 小区域 进行
  • Unity 简单的虚拟摇杆

    需求 点击创建一个虚拟摇杆底盘 鼠标拖拽时候上方摇杆会跟随鼠标方向移动 并且不会超出摇杆盘范围 摇杆功能另外实现 UI显示 using System Collections using System Collections Generic
  • C语言---malloc函数详解

    引言 为什么使用动态内存分配 当你声明数组时 你必须用一个编译时常量指定数组的长度 但是 数组的长度常常在运行时才知道 这是由于它所需要的内存空间取决于输入数据 例如 一个用于计算学生等级和平均分的程序可能需要存储一个班级所有学生的数据 但
  • 新版支付宝开放平台 手机网页支付 整个流程

    新版支付宝开放平台 手机网页支付 整个流程 在支付宝签约如下产品 然后 使用支付宝最新的签名工具生成商户的私钥和公钥 值得注意的是 如果是 net c 请选择PKCS1 我只采用1024密钥长度 然后来到支付宝的账号管理中心 在如图的开放平
  • 搭建和运行hyperledger fabric1.0alpha版本过程分析

    搭建和运行hyperledger fabric1 0alpha版本过程分析 目录 1 主要步骤 1 安装docker和docker compose 2 下载相关镜像并tag重命名 3 安装git 并git下载fabric源码 4 安装go环
  • 解决scala.collection.mutable.WrappedArray$ofRef cannot be cast to [D的问题(Spark)

    Caused by java lang ClassCastException scala collection mutable WrappedArray ofRef cannot be cast to D at cn doitedu ml
  • A callback was made on a garbage collected delegate of type...

    最近在调试海康SDK时 遇到了标题写的这个错误 A callback was made on a garbage collected delegate of type XXX CHCNetSDK RemoteConfigCallback I
  • 游戏开发unity编辑器扩展知识系列:自定义Hierarchy右键菜单

    参考 https blog csdn net weixin 43994445 article details 107305810 总结 重写OnHierarchyGUI
  • Yolo模型部署的两种方法

    目录 1 需求描述 第1种 封装darknet框架 第2种 weights模型转pb模型 2 weights模型转pb模型方法 3 重要备注 1 关于预处理 2 关于模型输入输出的数据结构和节点名称 3 关于NMS 1 需求描述 工程部署使
  • C++ 成员运算符

    点 运算符和 gt 箭头 运算符用于引用类 结构和共用体的成员 点运算符应用于实际的对象 箭头运算符与一个指向对象的指针一起使用 例如 假设有下面的结构 struct Employee char first name 16 int age
  • GitHack & GitHacker

    写这个的原因是在做CTFHub的Git泄露题目时发现GitHack并不能正常将服务器中的 git 文件正常保存下来 问了问工作室的好哥哥 告诉我GitHack就是有这个问题 使用GitHacker即可 于是记录下此问题 GitHack 下载
  • Docker环境搭建以及相关指令

    一 实施背景 因项目中可能使用的opencv版本比较高 ubuntu18 04中ros自带opencv版本低 3 0 直接使用opencv编译比较麻烦 时间消耗太长 主要是依赖ros环境 所以直接使用docker安装ubuntu20 04的
  • python应用-输入三个数,输出其最大值

    输入三个数 输出其最大值 Author 罗万财 Date 2017 7 6 a int input a b int input b c int input c my max a gt b and a or b my max c gt my
  • Maven pom.xml <packaging>pom</packaging> 引发的问题

    文章目录 Maven pom xml pom 引发的问题 Maven pom xml pom 引发的问题 有一个项目在别人那运行的非常好 有一天 我开开心心的把这个项目作为一个新 module 导入到了当前的工程中 然后启动项目 发现启动端
  • su incorrect password问题 su无法切换用户问题 以及权限s、t、i、a补充

    摘要 最近遇到一个问题 在测试环境上发现使用su无法切换账户 但是这两个账户都是可以登录的 于是就开始百度 找到了解决问题的办法 解决方案如下 第一步 使用root用户登录系统 或者有root权限的用户登录 第二步 查看文件权限 例如 ll