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

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

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
setpriority函数是一个用于设置进程、进程组和用户的进程执行优先级的函数。它的函数原型为int setpriority(int which, int who, int prio)。其中,which参数有三种可能的取值,who参数的具体含义取决于which的取值。prio参数表示进程的执行优先级,取值范围为-20至20,数值越低代表有较高的优先次序。只有超级用户(root)允许降低此值。函数执行成功时返回0,如果有错误发生则返回-1,错误原因存储在errno中。常见的错误包括参数which或who可能有误而找不到符合的进程(ESRCH)、参数which值错误(EINVAL)、权限不够无法完成设置(EPERM)以及一般用户无法降低优先级(EACCES)。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* [setuid()函数,setgid()函数,getpriority()函数,setpriority()函数,nice()函数](https://blog.csdn.net/whoamiyang/article/details/50884008)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [setpriority](https://blog.csdn.net/Michaelwubo/article/details/41444855)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值