• 程序使用suid应注意的策略


      安全要求程序应使用最小权限执行,然而有的程序由于特殊性,往往在执行某段代码的时候需要提高权限。

    由于suid的容易使用特性,很多编程人员往往会直接使用它来实现提高权限的功能,而不是去做代码权限分离。这样子的代码被封装成一个可执行程序,且被设置了suid。从安全性上来看,这种代码是劣质的。但是有的时候处于某些原因(方便

    性占大多数),这种程序还是会被创造出来。

      其实,稍微注意一下,可以使得使用了suid的代码更加安全。原理很简单,代码很少,也为了方便苦逼的程序员使用。

    毕竟为了一段需要权限提升的代码,大动干戈的重新修改设计很麻烦。

    uid_t e_uid_initial;  
    uid_t r_uid;  
    
    int 
    main(int argc, char * argv[])  
    {  
    
        /*saves the different UIDS */ 
        e_uid_initial = geteuid();  
        r_uid = getuid();  
    
        /*limits access rights to the ones of the   
         * user launching the program*/ 
         seteuid(r_uid);  
          ...  
         privileged_function();  
         ....  
     }  
    
    void 
    privileged_function(void)  
    {  
        /* Gets initial priveleges back */ 
        seteuid (e_uid_initial);   
        ...  
    
        /* portion needing priveleges */ 
          ...  
    
        seteuid (r_uid);  
    } 
    

      

    很简单的代码,但是加上这段代码比直接使用suid的程序要安全很多。

  • 相关阅读:
    LRu Cache算法原理
    c# 哈希表
    c# 获取二维数组的行数和列数
    Linq
    DataTable使用
    Wpf学习
    数据库配置
    js 数字保留两位小树
    平面数据转换为树形结构
    mysql操作
  • 原文地址:https://www.cnblogs.com/liushaodong/p/3454650.html
Copyright © 2020-2023  润新知