`

LINUX 程序权限

阅读更多
具有SetUID或SetGID属性的程序,能够在进程执行中调用系统调用setuid()或setgid() ,调用成功后这个进程就具有了程序文件属主和组的权限,就可以完成以前改变身份之前不能完成的任务。因为通过它们程序可以改变进程的用户标识,绕过系统的权限设置,因此这两个属性对于系统安全非常重要。尤其是属于root的文件,并设置了SetUID属性的程序,更是系统安全中值得注意的地方。为了保证系统安全,必须保证没有非法的SetUID或 SetGID程序的存在,通常管理员可以使用find命令来完成这个任务,例如查找具有SetUID的程序,则执行:




setuid(设置真实的用户识别码)
相关函数

getuid,setreuid,seteuid,setfsuid
表头文件

#include<unistd.h>
定义函数

int setuid(uid_t uid)
函数说明

setuid()用来重新设置执行目前进程的用户识别码。不过,要让此函数有作用,其有效的用户识别码必须为0(root)。在Linux下,当root 使用setuid()来变换成其他用户识别码时,root权限会被抛弃,完全转换成该用户身份,也就是说,该进程往后将不再具有可setuid()的权利,如果只是向暂时抛弃root 权限,稍后想重新取回权限,则必须使用seteuid()。
返回值

执行成功则返回0,失败则返回-1,错误代码存于errno。
附加说明

一般在编写具setuid root的程序时,为减少此类程序带来的系统安全风险,在使用完root权限后建议马上执行setuid(getuid());来抛弃root权限。此外,进程uid和euid不一致时Linux系统将不会产生core dump。
分享到:
评论

相关推荐

    linux 权限 c,Linux下获取root权限的c程序

    Linux下获取root权限的c程序 传递euid和egid给脚本,使脚本具有特殊用户的权限 使脚本实现类于设置了stick位的效果 shell, python, perl等脚本、程序不能取得suid,因为这些脚本程序需要解释器-/bin/bash, /usr/bin/...

    linux系统权限管理文件特殊权限PPT学习教案.pptx

    "Linux 系统权限管理文件特殊权限学习教案" Linux 系统权限管理文件特殊权限是 Linux 操作系统中的一种重要机制,用于控制用户对文件和目录的访问权限。本学习教案将详细介绍 Linux 系统权限管理文件特殊权限的概念...

    linux系统权限总结

    SUID(Set User ID upon execution)与SGID(Set Group ID upon execution)是Linux系统中两种特殊的权限设置,它们允许程序在执行时临时获得文件所有者或所属组的权限。这种机制主要用于实现某些需要特定权限才能...

    linux基础权限介绍

    ### Linux基础权限详解 #### 一、文件与目录权限概览 在Linux系统中,文件和目录的权限管理是至关重要的。它不仅涉及到文件的安全性,还直接影响到系统的整体稳定性和性能。本节将详细介绍Linux文件和目录的基础...

    Linux高级程序设计

    《Linux高级程序设计》这本书是针对那些希望深入理解Linux系统编程的开发者们的一份宝贵资源。它涵盖了Linux环境下的高级程序设计技术,包括系统调用、进程管理、内存管理、文件系统、网络编程以及多线程等内容。...

    linux 程序设计 源码

    "Linux程序设计源码"可能包含了用于教学或实践的示例代码,这些代码可以帮助你深入理解Linux系统编程的各个方面。《Beginning Linux Programming》这本书是学习这个主题的经典资源,它详细介绍了如何在Linux操作系统...

    Linux应用程序开发详解

    了解Linux的基础知识包括理解Linux目录结构、文件系统、用户权限和管理,以及进程控制等核心概念。这些基础知识对于开发者来说至关重要,因为它们构成了与操作系统交互的基础。 在Linux环境中,命令行接口是开发者...

    linux系统程序设计

    Linux系统程序设计是计算机科学与技术中的一项重要技能,尤其在开源领域具有极高的实用价值和广泛应用。海同的内部培训教材系统性地介绍了Linux系统编程的各个重要方面,旨在帮助初学者和有一定基础的开发者能够理解...

    Linux系统权限讲义.ppt

    为了提高安全性,有些系统会使用setuid权限的程序来验证用户身份,而不是直接从`/etc/passwd`中获取口令。 在Linux中,文件和目录的权限由九个字符表示,分为三组,每组三个,分别代表所有者、同组用户和其他用户的...

    linux 程序设计第三版

    理解Linux的基本操作,如文件系统结构、权限管理、进程控制等,是Linux程序设计的基础。 2. **C语言编程**:Linux编程通常使用C语言,因为它是系统编程的首选语言,提供了与操作系统底层交互的能力。掌握C语言的...

    福建农林大学《LINUX程序设计》复习题.pdf

    - Linux程序设计人员需要了解Linux系统的基本管理知识,包括用户管理、权限设置、磁盘管理等。 - 熟悉常用的Linux命令行工具,如ls、cp、mv、grep、find等。 6. Linux开发工具和环境配置 - 熟悉GCC、GDB等工具,...

    Linux高级程序设计 英文版 pdf 507页 Professional Linux Programming

    - **调试工具**:掌握gdb等工具在程序调试中的应用技巧。 - **集成开发环境**:介绍Eclipse、Visual Studio Code等IDE在Linux下的配置与使用。 #### 3. 进程管理与控制 - **进程生命周期**:理解进程从创建到终止的...

    linux中特殊权限问题

    在Linux操作系统中,权限管理是核心安全机制之一。本文将深入探讨Linux中的特殊权限SUID、SGID和SBIT,以及与进程相关的ID。 首先,我们来看Linux中的用户和权限。用户分为两种类型:超级用户(root)和普通用户。...

    php 基于Linux权限登录

    PHP在验证用户身份后,可以使用`su`或`sudo`命令切换到指定的用户或组,从而改变程序运行的上下文,限制其对系统的访问权限。 五、会话管理 登录成功后,PHP会使用session机制来保持用户的登录状态。通过`session_...

    《Linux与Qt程序设计》.pdf

    1. Linux基础知识:了解Linux操作系统的基本概念,包括Linux的目录结构、文件系统、权限管理、文本处理工具等。Linux的命令行操作也是不可或缺的一部分,比如常用的ls, cd, cp, mv等命令的使用。 2. Linux系统编程...

    恢复LINUX权限

    ### 恢复 Linux 权限 在 Linux 系统中,权限管理是确保系统安全性和数据完整性的关键因素之一。当系统权限因为某种原因被更改或破坏时,需要进行权限恢复来确保系统的正常运行。 #### 知识点 1:Linux 文件权限的...

    一种基于程序权限的访问控制框架及其在Linux中的实现.pdf

    一种基于程序权限的访问控制框架及其在Linux中的实现.pdf

    Linux操作系统编程教学pdf

    "1.7 Linux程序编译调试方法.pdf"可能会介绍Linux下的编译工具,如gcc/g++,以及如何使用gdb进行程序调试。 总的来说,这些PDF教程覆盖了从基础的Linux命令到进阶的文件I/O、权限管理、文件共享等多个方面,对于...

Global site tag (gtag.js) - Google Analytics