setuid()函数,setgid()函数,getpriority()函数,setpriority()函数,nice()函数

本文介绍了Linux系统中的几个关键函数,包括setuid()和setgid()用于改变进程的用户和组ID,getpriority()和setpriority()用于获取和设置进程的执行优先级,以及nice()函数作为调整优先级的便捷方式。这些函数涉及到进程权限管理和调度优化,只有超级用户(root)才能进行某些操作,如降低进程的优先级。
摘要由CSDN通过智能技术生成
1.setuid()函数,setgid() 函数,

头文件:#include <sys/types.h>  #include <types.h> 函数原型:int setuid(uid_t uid); int setgid(gid_t  gid); 函数说明:若进程具有root 权限, 则函数 将实际用户的ID(组), 有效用户的ID(组),都设置为参数uid; 若进程不具有root权限,但uid等于 实际用户 ID(组), 则 setuid 只将有效用户的ID(组)设置为uid,不改变实际用户ID; 若以上两个条件都不满足,则函数调用失败,返回 -1;并设置错误为EPERM. 也就是说,只有超级用户才能更改实际用户的 ID, 所以一个非root 用户进程是不能通过setuid和setgid得到特权用户权限的,但su命令能将一个普通用户变成特权用户,这并不矛盾,因为su是一个"set_uid程序",执行一个设置了set_uid位的程序时,内核将进程的有效用户iD 设置为文件属主的ID,而检查一个进程是否有访问某个文件的权限时,是使用进程的有效 ID来进行检查的.su程序的文件属主是root,普通用户运行su 时,su的进程权限就是root 权限.

2.getpriority()函数,setpriority()函数

头文件:#include <sys/resource.h> 函数原型:int getpriority(int which,int who); int setpriority(int which,int who, int prio); getpriorit

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值