当前位置: 首页 > news >正文

接单做公司网站站群站长之家网站建设制作

接单做公司网站站群,站长之家网站建设制作,wordpress rest 某类,云南网站定制开发转载请注明来源chengyaogen.blog.chinaunix.net一、进程与权限A.进程时Linux/Unix操作系统中最重要的抽象之一B.进程是一个处于执行期的程序(目标代码存储在某种介质上)A process is a program(object code stored on some media) in the midst ofexecution.而进…转载请注明来源chengyaogen.blog.chinaunix.net一、进程与权限A.进程时Linux/Unix操作系统中最重要的抽象之一B.进程是一个处于执行期的程序(目标代码存储在某种介质上)A    process   is   a  program(object  code  stored  on some  media)  in the  midst  ofexecution.而进程在执行过程中经常涉及到文件访问操作等1.一个运行中的进程究竟可以访问哪些资源而不能访问哪些资源2.一个进程运行过程中如何实现在某个执行阶段拥有一些权限而在另一个阶段又具备另外一种权限呢?上述状况对应于进程的访问权限以及进程执行中不同权限的切换。这一切都和进程实际用户ID,进程有效用户ID,进程保存设置用户ID有关联。二、进程的用户ID1.实际用户ID(real user id,RUID)为该进程的创建者的用户ID,也可以说是进程的执行者。该ID仅root用户可以修改2.有效用户ID(effective  user  id,EUID)该ID用户标识用户进程执行操作的权限。例如:如果EUID是0即(root),此时进程拥有root用户权限。普通用户可以将EUID设置为RUID或者SUID而超级用户可以将EUID设置为任意的合法UID。注意对于一个可执行的二进制文件如果其set-user-id bit被设置则运行改程序时对应进程的有效用户ID(EUID)为该文件的文件所有者用户ID。3.保存设置用户ID(saved set-user-id,SUID)对于没有设置set-uid-bit的可执行程序而言其对应进程的保存设置用户ID(SUID)为其实际用户ID;而对于设置了set-uid-bit的程序而言其对应的保存设置用户ID(SUID)为该可执行文件的文件拥有者用户ID。只能root用户权限才能更改(当一个程序文件运行的时候其值已经确定)。注意:linux不提供返回保存的设置-用户-ID的函数总结:RUID代表此进程是哪个用户创建的 EUID代表此进程所拥有的权限SUID保存了EUID当EUID改变后如果想回到以前的EUID此时SUID将发挥作用。三、相关API#include#includeint   setuid(uid);可以用setuid函数设置实际用户ID和有效用户ID。注意我们并不能想怎么设就怎么设。有若干规则需要我们遵守:(1)若进程具有超级用户特权则setuid函数将实际用户ID、有效用户ID以及保存的设置-用户-D设置为uid。(2)若进程没有超级用户特权,但是uid等于实际用户ID或保存的设置-用户-ID则setuid只将有效用户ID设置为。不改变实际用户ID和保存的设置-用户-ID。(3)如果上面两个条件都不满足则errno设置为EPERM,并返回出错.。关于内核所维护的三个用户ID还要注意下列几点(1)只有超级用户进程可以更改实际用户ID。通常实际用户ID是在用户登录时由login(1)程序设置的而且决不会改变它。因为login是一个超级用户进程当它调用setuid时设置所有三个用户ID。(2)仅当对程序文件设置了 set-user-id bit时exec函数设置有效用户ID为文件所有者。如果set-user-id bit没有设置则exec函数不会改变有效用户ID而将其位置原先值。任何时候都可以调用setuid将有效用户ID设置为实际用户ID或保存的设置-用户-ID。自然不能讲有效用户ID设置为任意随机值。四、探究案例一:有个要在MacOS上实现一个关机程序,它熟悉linux其实老祖宗都是unix,所以MacOS对他并不陌生。如下他写了如下程序实现关机编译运行:从上面看这段代码可以实现关机但是有个不符合要求的地方运行程序不能是超级用户只能是普通用户。他很苦恼后来找到了我我做了如下事情呵呵可以了。我将这个可执行文件的owner和group都改为了root,然后有讲其set-user-id bit位加以了设置。这样以普通用户运行这个程序时此进程的EUID就是root了这样满足了shutdown命令执行的权限。案例二:#include #include #include #include #include #include void test_read_file(const char *name){int fd -1;fd open(name ,O_RDWR);if(fd 0){printf([ERROR]:read failed.\n);}else{printf([OK]:read successful\n);close(fd);}}//打印uid和euidvoid p_states(){int uid 0;int euid 0;printf(------Current states--------\n);printf(real uid\t %d\n,getuid());printf(effective uid\t %d\n,geteuid());printf(----------------------------\n);}//调用setuidvoid run_setuid_fun(int uid){if(setuid(uid) -1){printf([ERROR]:setuid(%d) error\n,uid);}p_states();}//调用setuidvoid run_seteuid_fun(int uid){if(setuid(uid) -1){printf([ERROR]:seteuid(%d) error\n,uid);}p_states();}int main(){int t_re 0;const char *file root_only.txt;printf(\nTEST 1:\n);p_states();//此时real uid login user id//effective uid root//saved uid roottest_read_file(file);getchar();printf(\nTEST 2:setuid(getuid())\n);run_seteuid_fun(getuid());//此时real uid login user id//effective uid login user id//saved uid roottest_read_file(file);getchar();printf(\nTEST 3:setuid(0)\n);run_setuid_fun(0);//此时real uid login user id//effective uid root//saved uid roottest_read_file(file);getchar();printf(\nTEST 4:setuid(0)\n);run_setuid_fun(0);//此时real uid root//effective uid root//saved uid roottest_read_file(file);getchar();printf(\nTEST 5:setuid(503)\n);run_setuid_fun(503);//此时real uid login user id//effective id login user id//saved uid login user idtest_read_file(file);getchar();printf(\nTEST 6:setuid(0)\n);//read uid login user id//effective uid login user id//saved uid login user idrun_setuid_fun(0);test_read_file(file);return 0;}编译运行:root_only.txt文件建立:第一次:RUID:实际用户EUID:文件所有者(root)SUID:文件所有者(root)此时进程拥有root用户权限能对root_only.txt进行读写操作第二次:此时普通用户调用setuid(getuid())只会将EUID改为getuid(),其他都不变RUID:实际用户EUID:实际用户SUID:root此时进程没有有root用户权限不能能对root_only.txt进行读写操作第三次:此时普通用户调用seteuid(0)只会将EUID改为0,其他都不变RUID:实际用户EUID:rootSUID:root此时进程拥有root用户权限能对root_only.txt进行读写操作第四次:此时进程拥有root用户权限调用setuid(0)会将三个ID都设置为0RUID:rootEUID:rootSUID:root此时进程拥有root用户权限能对root_only.txt进行读写操作第五次:此时进程拥有root用户权限调用setuid(503)会将三个ID都设置为503RUID:503EUID:503SUID:503此时进程拥有普通用户权限不能对root_only.txt进行读写操作第六次:此时进程拥有普通用户权限调用setuid(0)此时RUIDSUID都不为0这一次操作将失败RUID:503EUID:503SUID:503此时进程拥有普通用户权限不能能对root_only.txt进行读写操作
http://www.sadfv.cn/news/58895/

相关文章:

  • 如何更快的让百度收录网站做dj平台网站
  • 南川网站建设公司济南市住房建设网站
  • 甘肃省城乡城乡建设厅网站首页wordpress调用页面名称
  • 书店建设网站国产搜什么关键词最好看
  • 网站建设 王卫洲百度网站的建设目标
  • 网站广告推广怎么做应用商店软件大全
  • 做网站公司怎么样网站开发预付款账务处理
  • 网站备案流程图片学院网站建设项目的活动分解
  • 写网站建设的软文wordpress 支持数据库
  • 安徽网站seo第一次和两个老头做网站
  • 养殖类网站模板三都网站建设
  • wordpress 作品集网站嵌入式软件开发工程师招聘
  • app公司网站建设价格怎么用云校建设学校网站
  • 校园微网站建设方案ppt广告优化师工作内容
  • 网站建设业务员主动话术宠物主题网站模板
  • 营销型网站建设模板下载丽水网站开发
  • 电子商务网站开发的书有哪些wordpress博客
  • 做企业形象网站wordpress用户名忘记密码
  • 淘宝指数入口公司网络优化方案
  • wordpress搜站点网络中断做网站所用的语言
  • 使用php的大型网站台州智能模板建站
  • 网站链轮内有死链电子政务网站建设的实验体会
  • 个人网站的制作全新微信号2元一个
  • php做的网站怎么打开营销型企业网站推广的方法有哪些
  • 网站开发团队需要几个人wordpress菜单添加链接地址
  • 邯郸个人网站建设仓储服务 东莞网站建设 技术支持
  • 学做文案的网站铜仁市网站建设情况
  • 做视频直播网站需要多少资金软件开发公司有几家
  • 减肥产品网站模板营销存在的问题及改进
  • 沈阳免费网站制作丰台手机网站设计