zoukankan      html  css  js  c++  java
  • SUID

    SUID

    1. 从passwd说起

    普通用户可以使用passwd命令来修改自己的密码,但大家都知道修改密码需要保存到/etc/shadow文件中,但从shadow文件中可以看到只有root用户可写,那么普通用户是如何修改这个文件的呢?

    ls -l /etc/shadow
    -rw-r----- 1 root shadow 1404 Nov  7  2019 /etc/shadow

    我们先看passwd命令的权限,可以看到该文件属于root:root,对于用户、组、其它的可执行权限分别为s, x, xx可以理解,这个s的用处是什么呢?

    ls -l `which passwd`
    -rwsr-xr-x 1 root root 54256 May 17  2017 /usr/bin/passwd

    实际上s是SUID权限,这个文件表示非所有者在执行这个文件时,会临时以所有者的权限执行,也就是passwd在普通用户执行时,可以获取root权限,从而将修改的密码保存到了/etc/passwd权限。当然如果不想普通用户修改自己的密码,可以把passwd的SUID权限拿掉。

    同理,也存在SGID权限。

    2. 应用

    如果平时遇到一个应用程序需要获得管理员权限才能执行,但普通用户并没有加到sudoers,或者加到sudoers但不想每次都敲sudo,这时就可以将该文件加上SUID权限。

    首先,如果想使用管理员权限,先要把可执行文件(test)改成root所有:

    > ll test
    -rwxrwxr-x 1 gr gr 45878368 Sep 23 15:59 test*
    > sudo chown root:root tesst
    > ll test
    -rwxrwxr-x 1 root root 45878368 Sep 23 15:59 test*

    对文件添加SUID权限,使用如下命令:

    > sudo chmod u+s test
    > ll test
    -rwsrwxr-x 1 root root 45878368 Sep 23 15:59 test*

    如果想添加SGID权限,使用如下命令:

    > sudo chmod g+s test
    > ll tests
    -rwxrwsr-x 1 root root 45878368 Sep 23 15:59 test*
  • 相关阅读:
    Brettle.Web.NeatUpload.dll支持的大文件上传
    WebStorm:令人眼前一亮的一款前端开发IDE
    jQuery UI vs EasyUI
    jquery validate.js表单验证的基本用法入门
    JQuery扩展插件Validate—6radio、checkbox、select的验证位置显示
    ExtJs与jQuery的比较
    WebStorm 5.0 注册码
    常用PHP运行环境一键安装包
    Sublime Text 2.0.1 简体中文版来了 技术帝的最爱
    JS匿名函数
  • 原文地址:https://www.cnblogs.com/gr-nick/p/13719558.html
Copyright © 2011-2022 走看看