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

大学精神文明建设专题网站互动广告

大学精神文明建设专题网站,互动广告,深圳做公司网站推广的,wordpress 软件下载作者#xff1a;Vamei 出处#xff1a;http://www.cnblogs.com/vamei 欢迎转载#xff0c;也请保留这段声明。谢谢#xff01; 作为一个Linux用户来说#xff0c;我们并不需要特别关心下面的机制。但是#xff0c;当我们去编写一个Linux应用程序的时候#xff0c;就要注…作者Vamei 出处http://www.cnblogs.com/vamei 欢迎转载也请保留这段声明。谢谢     作为一个Linux用户来说我们并不需要特别关心下面的机制。但是当我们去编写一个Linux应用程序的时候就要注意在程序中实现以下切换(有必要的前提下)以便让我们的程序符合最小权限的原则不给系统留下可能的安全隐患。给你的程序过度的权限的话就像是吃下去下面的汉堡:         容易让人吃伤的汉堡: 过度的“权限”     Linux的用户在登录(login)之后就带有一个用户身份(user ID, UID)和一个组身份(group ID, GID)。在Linux文件管理背景知识中我们又看到每个文件又有九位的权限说明用来指明该文件允许哪些用户执行哪些操作(读、写或者执行)。 (参考Linux文件管理背景知识)   一般来说Linux的用户信息保存在/etc/passwd中组信息保存在/etc/group中文件的每一行代表一个用户/组。早期的Linux将密码以名码的形式保存在/etc/passwd中而现在则多以暗码(也就是加密之后的形式)的形式保存在/etc/shadow中。将密码存储在/etc/shadow中提高了密码的安全性因为/etc/passwd允许所有人查看而/etc/shadow只允许root用户查看。   进程权限 但是在Linux中用户的指令是在进程的范围内进行的。当我们向对某个文件进行操作的时候我们需要在进程中运行一个程序在进程中对文件打开并进行读、写或者执行的操作。因此我们需要将用户的权限传递给进程以便进程真正去执行操作。例如我们有一个文件a.txt, 文件中为一个字符串: Hello world! 我以用户Vamei的身份登录并在shell中运行如下命令 $cat a.txt 整个运行过程以及文件读取如下:   我们可以看到整个过程中我们会有两个进程一个是shell本身(2256)一个是shell复制自身再运行/bin/cat (9913)。图中的fork, exec, PID可参看Linux进程基础。第二个进程总共对文件系统进行了两次操作一次是执行(x)文件/bin/cat另外一次是读取(r)文件a.txt。使用$ls -l 查看这两个文件的权限: $ls -l /bin/cat -rwxr-xr-x 1 root root 46764 Apr  1  2012 /bin/cat $ls -l a.txt -rw-rw-r-- 1 Vamei Vamei 14 Oct  7 09:14 a.txt 从上面可以看到(参考Linux文件管理背景知识)/bin/cat让所有用户都享有执行的权利而Vamei作为a.txt的拥有者对a.txt享有读取的权利。   让我们进入更多的细节 (The devil is in the details)。在进行这两次操作的时候尽管用户Vamei拥有相应的权限但我们发现真正做工作的是进程9913。我们要让这个进程得到相应的权限。实际上每个进程会维护有如下6个ID 真实身份: real UID,       real GID 有效身份: effective UID,  effective GID 存储身份saved UID,      saved GID 其中真实身份是我们登录使用的身份有效身份是当该进程真正去操作文件时所检查的身份存储身份较为特殊我们等一下再深入。当进程fork的时候真实身份和有效身份都会复制给子进程。大部分情况下真实身份和有效身份都相同。当Linux完成开机启动之后init进程会执行一个login的子进程。我们将用户名和密码传递给login子进程。login在查询了/etc/passwd和/etc/shadow并确定了其合法性之后运行(利用exec)一个shell进程shell进程真实身份被设置成为该用户的身份。由于此后fork此shell进程的子进程都会继承真实身份所以该真实身份会持续下去直到我们登出并以其他身份再次登录(当我们使用su成为root的时候实际上就是以root身份再次登录此后真实身份成为root)。   最小权限原则 每个进程为什么不简单地只维护真实身份却选择费尽麻烦地去维护有效身份和存储身份呢这牵涉到Linux的“最小特权”(least priviledge)的原则。Linux通常希望进程只拥有足够完成其工作的特权而不希望赋予更多的特权给它。从设计上来说最简单的是赋予每个进程以super user的特权这样进程就可以想做什么做什么。然而这对于系统来说是一个巨大的安全漏洞特别是在多用户环境下如果每个用户都享有无限制的特权就很容易破坏其他用户的文件或者系统本身。“最小特权”就是收缩进程所享有的特权以防进程滥用特权。 然而进程的不同阶段可能需要不同的特权。比如一个进程最开始的有效身份是真实身份但运行到中间的时候需要以其他的用户身份读入某些配置文件然后再进行其他的操作。为了防止其他的用户身份被滥用我们需要在操作之前让进程的有效身份变更回来成为真实身份。这样进程需要在两个身份之间变化。 存储身份就是真实身份之外的另一个身份。当我们将一个程序文件执行成为进程的时候该程序文件的拥有者(owner)和拥有组(owner group)可以被存储成为进程的存储身份。在随后进程的运行过程中进程就将可以选择将真实身份或者存储身份复制到有效身份以拥有真实身份或者存储身份的权限。并不是所有的程序文件在执行的过程都设置存储身份的。需要这么做的程序文件会在其九位(bit)权限的执行位的x改为s。这时这一位(bit)叫做set UID bit或者set GID bit。 $ls -l /usr/bin/uuidd -rwsr-sr-x 1 libuuid libuuid 17976 Mar 30  2012 /usr/sbin/uuidd 当我以root(UID), root(GID)的真实身份运行这个程序的时候由于拥有者(owner)有s位的设定所以saved UID被设置成为libuuidsaved GID被设置成为libuuid。这样uuidd的进程就可以在两个身份之间切换。   我们通常使用chmod来修改set-UID bit和set-GID bit: $chmod 4700 file 我们看到这里的chmod后面不再只是三位的数字。最前面一位用于处理set-UID bit/set-GID bit它可以被设置成为4/2/1以及或者上面数字的和。4表示为set UID bit, 2表示为set GID bit1表示为sticky bit (暂时不介绍)。必须要先有x位的基础上才能设置s位。       总结 real/effective/saved UID/GID saved UID/GID bit “最小权限”原则转载于:https://www.cnblogs.com/Guido-admirers/p/6209786.html
http://www.pierceye.com/news/664321/

相关文章:

  • 注册做网站的公司有哪些wordpress 4.1 下载
  • 用ps做美食网站一个网站多少钱?
  • 网站建设 试题揭阳专业做网站公司
  • 手机上怎么创建自己的网站河南企业网站优化
  • 定陶区城乡和住房建设局网站新手怎么做网站
  • 工商银行与建设银行网站对比石嘴山网站seo
  • seo快速建站自学程序员的步骤
  • 做旅行网站的依据及意义如何制作自己想要的图片
  • 电子商务网站怎么做网站建设企业建站哪家好?来这里看看
  • 网站备案电话号码购物商城网站建设方案
  • 手机商城系统徐州seo计费管理
  • 西安网站公司哪家好信息推广的方式有哪些
  • 网站开发注意的事项商丘网站制作软件
  • 51zwd一起做网站广州广东省网站备案查询
  • 如何生成一个网站自己弄公司网站
  • 企业信用信息查询网官网孝感网站seo
  • 中淼建设工程有限公司网站分类用wordpress
  • 腾讯建设网站首页做销售网站
  • 推广引流网站聚名网注册
  • 原来做网站后来跑国外了多伦多网站建设多少钱
  • 手机建站平台做母婴网站设计思路
  • 免费个人手机网站九八智能建站
  • 中山网站备案如何做购物网站
  • 常见的简单的网站制作建设网站的好公司
  • 邯郸网站制作建设wordpress+怎么迁移
  • 设计创意广告上海企业网站优化
  • 自己做网站需要购买服务器吗WordPress文章相册修改
  • 校园招聘哪个网站做的好学做川菜网站
  • 大足网站建设公司医院网站建设熊掌号
  • 做网站编辑是不是也要做推广做蛋白go分析网站