Linux学习记录(8)Linux基本权限设置

来源:互联网 发布:软件下载snapseed 编辑:程序博客网 时间:2024/06/10 05:01

今天学习了Linux的权限相关的知识,在Linux下,有三种“身份”:文件的所属者,与该文件所属者相同组的成员,其他成员。

这里说一下组的概念,组相当于我小时候做值日,每周每天都会有不同的人来打扫卫生,那每天打扫卫生的那批人,就是一个组,在Linux上,假设我们新建一个组A,里边有成员a,b,c。这就构成了一个最简单的组。

其他的两个,很好理解,从词语上来看就能明白意思,这里就不做解释了。

既然有组和用户,那么我们怎么去新建一个组合用户呢?这里用到了useradd和groupadd,介绍这两个命令之前,要先明确uid和gid。

我们都知道,系统在使用用户登录的时候,不可能是用用户名操作的,有过编程经验的人都知道,我们要给每个用户分配一个唯一的ID,系统进行任何操作的时候,都使用这个ID,这样就进行了统一。

在Linux下,uid由32位组成从0开始,60000以内。

其中:0为root用户;

1-499为系统用户;

500之后为普通用户。

下边我们介绍命令的使用方式:

1、

useradd:增加用户

例:useradd  zw

这样就建立了一个名为zw的用户。

有以下几个参数:

-d 家目录

-s 指定登录的shell

-u 指定userId

-g 指定主组

-G 指定附属组

2、

userdel:删除用户

userdel 用户名

-r参数,在删除用户的同时,一起删除家目录

3、

groupadd:增加组

groupadd 组名

4、

groupdel:删除组

groupdel 组名



讲完了用户和组的概念之后我们来说一下权限

Linux是根据UGO这三种不同的身份来限制我们的权限的

权限分为3种,r可读,w可写,x可执行

5、

chmod命令:chmod 模式 文件路径

例:为名为test的文件的同族用户增加可执行权限:chmod g+x test

同样的,我们减去一个权限:chmod g-x test

用户和其他也是一样的。

除了这种方式外,我们还可以用数字来代表权限,其中,r=4,w=2,x=1

假设我们现在有这样一组权限

 U         G         O

rwx      r-x       ---

那么我们可以这样表示

U G O

7  5  0

很简单吧,就是将这些代表的数字相加就ok了。

例:chmod 750 test,就ok了

6、

除了这3X3的权限之外,Linux还有3个特殊权限,名字叫做SUID,SGID,STICKY。

SUID:以文件所属者的身份运行,而不是当前操作的用户。

这个权限存在的意义是:假如我们现在有一个可执行的文件,里边有一条命令,要访问根目录的“test”文件夹,假设这个文件夹里边有很重要的东西,只能root用户访问,其他人都不能看,我们还想使用这个可执行文件,怎么办?如果我们以当前用户去执行这个文件,那肯定会出错的,最好的办法就是,我使用这个文件,以这个文件的所属用户的身份去执行,但我们并没有切换用户,我还是我,但是执行文件却认为我是root,这样一来,我就有权限访问test文件夹了。就可以解决这个问题了。

SGID:在该目录下所新建的所有文件和目录都属于这个组。

STICKY:用户只能删除属于自己的文件。

假如我们有一个文件夹test,里边是公司的一些文件,同一个用户组的人对这个文件夹都有读写的权利,假如员工A创建了一个文件,员工B与员工A有矛盾,B看见A的文件就删,阻止A正常工作,这样可是很不好的。那么设置STICKY权限,就可以阻止这种事情的发生,假如文件的创建者不是B,那么B就不能对这个文件进行操作了。

其中,SUID=4,SGID=2,STICKY=1

那么我们设置的时候就可以变成4位了,顺序是:特殊位,U,G,O

所以命令可以这样写:chmod 1750 test


0 0
原创粉丝点击