博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【linux高级程序设计】(第八章)进程管理与程序开发 4
阅读量:7123 次
发布时间:2019-06-28

本文共 1249 字,大约阅读时间需要 4 分钟。

修改进程用户相关信息

int access (__const char *__name, int __type):检测当前进程是否拥有对某文件的访问权限

  参数1:待访问文件

  参数2:相应权限  4(R_OK 可读),2(W_OK 可写), 1(X_OK 可执行), 0(F_OK 文件存在)

  如果具有权限,将返回0,否则返回-1.错误状态包括 EACCES(不具有访问权限), ENOENT(文件不存在), EROFS(只读的文件系统要求写权限)

int i;if((i = access("/etc/exports", X_OK)) == -1){    perror("access");    exit(EXIT_FAILURE);}else{    //...}

 

int setuid (__uid_t __uid):设置进程真实用户RUID

  参数为预设值的真实用户号。

  超级用户执行:将设置真实用户号UID,有效用户号EUID为指定ID,并返回0表示成功。

  普通用户执行:若设置为自己的UID值,可以成功;否则无权修改,返回-1.

#include
#include
#include
int main(){ int uid, euid, suid; getresuid(&uid, &euid, &suid); printf("uid = %d, euid = %d, suid = %d\n", uid, euid, suid); printf("after setuid(501)\n"); setuid(501); uid = -1; euid = -1; suid = -1; getresuid(&uid, &euid, &suid); printf("uid = %d, euid = %d, suid = %d\n", uid, euid, suid); return 0;}

root用户执行结果,可以成功修改

普通用户执行结果,不可修改

 

int setgid (__gid_t __gid):修改过进程用户的GID,使用方法与setuid类似。

int seteuid (__uid_T __uid):设置有效用户号EUID

  超级用户:设置有效用户号为指定ID,成功返回0,失败返回-1;

  普通用户:可以设置为自己的ID,设置为其他失败。

int setegid (__gid_t __gid):设置有效用户组id

int setreuid (__uid_t __ruid, __uid_t __euid):同时设置RUID和EUID

int setregid (__gid_t __rgid, __gid_t __egid):同时设置真实用户组和有效用户组

 

转载地址:http://ulxel.baihongyu.com/

你可能感兴趣的文章
动物会产生“鸡尾酒”模式毒素
查看>>
HashSet和TreeSet的区别
查看>>
白盒1:iOS静态代码扫描
查看>>
什么是商业画布呢?
查看>>
python 之易经启卦
查看>>
第34讲:对List进行高效的排序和倒排序代码实战
查看>>
Python学习笔记(1_list)
查看>>
Python 登陆接口小程序V2
查看>>
linux配置vncserver服务
查看>>
vmware esxi基础篇之标准交换机
查看>>
@Autowired注解的配置
查看>>
PL/SQL 记录与集合
查看>>
django字段值显示为中文的方法
查看>>
重置MYSQL的root账号的密码
查看>>
ansible安装和常用的命令
查看>>
运维使用的mongo基本操作
查看>>
十一的时候计划去哪玩,你们想好了吗
查看>>
Java IO类库之BufferedInputStream
查看>>
DWZ:主从结构当遇到修改时删不掉遍历出来的项目处理方法
查看>>
TurboGate邮件网关邮件归档模块介绍
查看>>