码迷,mamicode.com
首页 > 系统相关 > 详细

linux权限控制机制

时间:2015-07-29 21:18:44      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:

linux对于用户权限的分配有着很严格的约束,在linux中一切皆文件的概念已深入人心,它通过对不同的文件定义其属主及所属用户组的方式控制着文件的访问权限。在linux中站在文件的角度来考虑,系统角色大概分为四种,分别第一种超级用户,第二种文件或目录的属主也就是文件的所有者,第三种角色是属主的同组人,第四种便是其他人,这也就是Linux基于UGO的权限控制模型,U代User,G代表Group,O代表Other,每一个文件的权限基于UGO进行设置。权限三个一组(rwx),对应UGO分别设置每一个文件拥有一个所属用户和所属组,对应UG权限,不属于该文件所属用户或所属组的使用O权限。听上去似乎比较难懂,下面根据实例场景介绍一下,相信大家都能看的明白。

如果你是一个linux小白,现在接到上级命令,需要将服务器换为linux操作系统(以CentOS为例),那么你现在需要做的第一步肯定是去装linux操作系统。好吧,现在linux云服务器的安装十分的方便,在此就不做过多介绍了,需要注意的是刚安装完系统之后可能会遇到普通用户也不允许ssh方式登录的情况,官网解决办法很简单,点此查看。好了现在系统装完了,但是用户权限控制可算得上是一大问题,毕竟涉及到服务器安全,不是任何人都可以进行登录,即便可以进行登录也一定要现在普通用户的访问权限。系统装完之后只有一个root用户,这个用户是系统的超级管理员,拥有所有用户和文件的生杀大权,自然是不可以通过ssh方式进行登录的,限制root用户只能通过控制台远程登录的方式也十分方便,修改/etc/ssh/sshd_config文件,打开注释将PermitRootLogin yes 改为PermitRootLogin no即可。现在root已经不能通过ssh的方式登录服务器了,那么只能通过普通用户来通过ssh方式管理日常文件的上传下载了,好了,马上进入本文正题。

1.创建用户。

创建普通用户的过程是一个简单到不行的过程,如果你创建一个普通用户并且想禁止其 通过Telnet方式登录,那么可以使用这个命令:useradd -d /home/user1 -m -s /sbin/nologin u1,这样创建的u1用户拥有自己的主目录/home/user1,并且只能通过ssh方式登录。在创建用户的同时,默认创建了一个用户组,用户组的名字与用户名相同。我们可以以同样的方式创建用户u2.

2.创建公共文件夹ceshi,并指定文件属主。

切换到root用户后,通过mkdir命令创建文件夹,同时在文件夹下创建ceshi.txt文件。此时分别切换到u1用户和u2用户,发现普通用户对于root创建的ceshi文件夹及其子文件均只有读的权限,那么如何让两个用户都对ceshi文件夹及其子文件拥有读写权限呢?一共有两种方式,第一种是指定文件属主,例如将ceshi文件夹的属主定义为u1,命令为:chown u1 ceshi,这样修改了ceshi文件夹的属主为u1之后,再切换到u1用户,发现u1用户具有了对该文件的读写权限,但是文件的属主只能有一个,要么属于用户u1要么属于用户u2,怎样才能让这两个用户对该文件具有相同的权限呢,这就需要通过下面介绍第二种方式,以用户组的方式定义权限。

3.用户组权限的设定。

要想让同一用户组中的用户均对某文件具有相同权限,首先我们要创建用户组。创建的命令也十分简单,groupadd -g 101 users_1,这个命令创建了users_1用户组,用户组的GID为101。创建好了用户组之后,我们需要做的是将u1和u2均纳入该用户组中,gpasswd –a u1 users,但是光这样是不行的,先前只指定了ceshi属于u1用户,如果想要达到与u1在相同用户组的其他用户都对ceshi文件具有相同权限,我们还需要指定ceshi文件所属的用户组为users_1,chgrp users_1  ceshi,这样指定完毕之后就需要通过UGO模型对用户权限进行授权了。

4.UGO模型给用户授权。

UGO模式授权也有两种表示方式,一种是文字表示法,另外一种是数字表示法。说道linux权限,大致来了解一下linux的三种基本权限分别为:读、写、执行,说明如下:

r 读权限可以读文件的内容可以列出目录中的文件列表
w 写权限可以修改、删节文件可以在该目录中创建、删除文件
x 执行权限可以执行该文件可以使用cd命令进入该目录


1. 目录上只有执行权限,表示可以进入或穿越他进入更深层次的子目录
2. 目录上只有执行权限,要访问该目录下的有读权限的文件,必须知道文件名才可以访问
3. 目录上只有执行权限,不能列出目录列表也不能删除该目录
4. 目录上执行权限和读权限的组合,表示可以进入目录并列出目录列表
5. 目录上执行权限和写权限的组合,表示可以在目录中创建、删除和重命名文件

如果我们想要查看某文件或目录的权限,可以使用ls -l命令,所列出的各列如下所示:

lrwxrwxrwx 1 osmond osmond 26 2006-05-19 13:40 Examples -> /usr/share/example-content
drwx------ 2 osmond osmond 48 2006-07-01 04:14 Mail
-rw-r--r-- 1 osmond osmond 9418746 2006-04-05 09:13 webmin-1.270.tar.gz
-rw-r--r-- 1 osmond osmond 97582 2005-10-25 21:00 zsync_0.4.2-1_i386.deb

数据分别表示文件的权限,文件类型,文件属主,文件所属组,还有文件的大小和创建时间以及文件名。

这里我们重点关注的是权限,也就是第一列。权限说明既可以用字符形式表示,也可以用8进制数字表示,他们的对应关系如下图所示:

技术分享


了解完基本的权限知识后,我们需要做的就是根据这些权限字符(或数字),运用授权命令来对文件进行授权了,还以上面的情况为例,我想要u1和u2对ceshi文件具有相同权限,已经完成的第一步是让ceshi这个文件属于了users_1用户组,并制定了他的属主为u1,那么接下来要进行的授权命令是让u1的同组人具有读写的权限,具体命令如下:chmod  ug+wr  ceshi,这样再切换到u2用户后,发现u2也对ceshi文件具有了读写权限,此时如果我们还要再新建用户u3,并且想让u3和u1一样对ceshi具有读写权限,我们只需要将u3用户加入到users_1用户组中就可以了,十分的方便。

既然上面提到了字符表示和数字表示两种方式,那我们再简单介绍一下数字表示,r = 4,w=2,x=1,UGO每个角色都对应着这三个权限,并且其总权限就分别是这三个数字的和。例如属主具有读写和执行的权限,那么属主的权限构成为4+2+1=7,同组用户具有读写的权限,则其权限构成为4+2=6,其他人不具有任何权限,则其权限构成为0+0+0=0,所以我们要实现上例的权限问题,用数字表示方法为chmod 760 ceshi,这样达到的效果是一模一样的。喜欢哪一种看你口味了。

版权声明:本文为博主原创文章,未经博主允许不得转载。

linux权限控制机制

标签:

原文地址:http://blog.csdn.net/a1314517love/article/details/47132431

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!