您的位置:首页 > 其它

用户态软件读写root文件方法

2016-04-25 16:26 246 查看
在linux中每个进程有三个[实际上有第4个]用户标识符.

real uid : 真实用户ID.

saved uid : 已保存用户ID

effective uid : 有效用户ID

真实用户ID(real uid)是login时的用户.而在运行过程中,用于所有的安全检查的是有效用户ID(effective uid).

用户态软件访问root文件方法:

1、setuid(0) || seteuid(0) ||

2、chown root:root ${exe}

3、chmod 4111 ${exe} #改变有效id和已保存id

gtk3+ 不能使用setuid的方法,因为setuid的时候gtk会初始化动态加载模块,大概50万行,这是一个安全漏洞,所以gtk禁用setuid,setgid。gtk程序想使用root权限可以尝试使用一个root的后台程序或者用gksu的方法启动时输入root密码

现在有一个普通用户operation,我想让他有权限重启nginx服务,但是不允许他操作其他的系统服务及程序,从网上找到了很多解决方法,都是基于sudoer的配置的

operation ALL=(ALL) NOPASSWD: /etc/init.d/nginx restart

格式如下:
USER_FLAG HOST_FLAG=(RUNAS_FLAG) NOPASSWD:COMMAND_FLAG
另外建议使用
visudo
命令进行编辑,不要直接修改
/etc/sudoers
。如命令格式不对、使用visudo编辑时保存退出会提示错误的

参考文章:http://blog.chinaunix.net/uid-20722281-id-160009.html
http://www.gtk.org/setuid.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: