linux权限部分,linux中的文件权限(部分)

#####文件的普通权限#####

对于linux中每一个文件或目录,通常都用三种基本用户类型的权限:文件拥有者权限、拥有者所在用户组权限、其它用户权限。每种类型的权限都有三种:读、写、执行。输入终端命令“ls

-l”我们就可以查看到当前工作文件夹中所有文件(除去隐藏文件)的各种属性。我使用的ubuntu

linux系统,当在当前用户的家目录中执行上述命令,则会有如下结果:

total 28

-rwxr-xr-x 1 tingyu tingyu 0 2011-03017 21:25 hekaicheng

……

以上第一行是表示的目录中所有文件所占的空间,第二行的第一个项目是关于文件的权限:第一个字符为文件的类型、紧接的三个一组的字符依次为文件拥有者所权限、拥有者用户组的权限、其它用户的权限。其中,上述提到的文件权限中的第一个字符为文件的类型,具体有如下几类:

d 目录

l 符号链接(指向另一个文件)

s 套接字文件

b 块设备文件

c 字符设备文件

p 命名管道文件

- 普通文件,具体来说是除上述文件类型之外的文件,如可执行文件、文本文件、链接库等等。

改变文件权限的命令:chmod [option] 文件名

其中option有两种模式,分别为符号模式和位模式。

【1】.符号模式可以用来进行部分权限指定,具体格式为:用户类型+'+/-'+权限。

其中“用户类型”是指的三种用户类型。文件拥有者用符号'u'表示、用户组用符号'g'表示、其它用户用符号'o'表示、全部三种类型用户则用符号'a'表示。

'+/-'表示的是添加或去除权限(也就是后面紧接的权限)。

权限有三种:读用'r'表示,写用'w'表示,执行用'x'表示。

当然上述的用户类型和权限可以是多个,例如:给文件'hekaicheng'的其它用户权限添加可执行、可写权限:chmod

o+wx hekaicheng;给文件'hekaicheng'的文件拥有者、用户组成员添加可执行权限:chmod ug+x

hekaicheng;给文件'hekaicheng'的全部三种类型的用户均添加可写权限:chmod a+w

hekaicheng。

【2】.位模式一般用来指定文件的全部三种用户类型的权限(当然,也同时可以指定下文中提到的特殊权限),具体格式为:拥有者权限位+用户组权限位+其它用户权限位。

每一种用户类型的权限位都是由一个8进制位来表示的,一位八进制位可以由三位二进制位来表示,这个三个二进制位从高到低,依次表示的是当前用户类型的可读、可写、可执行三种权限,当该位为'1'时表示该位表示的权限为有效。如:用文件拥有者具有可读可执行,对应的二进制位为'101',转化为八进制数时,表示为5。

以下举例说明:

把文件'hekaicheng'的权限修改为:

拥有者可读可写、用户组可读、其它用户可读:chmod 644 hekaicheng

拥有者可写、用户组其它用户无权限:chmod 200 hekaicheng

其它依次类推。

#####文件的特殊权限#####

文件的特殊权限是指文件的SUID/SGID/Sticky

Bit的权限,这些特殊权限是给予用户怎样的权限呢?下面来具体讲解一下:

【SUID权限】

当可执行文件具有了SUID权限时,一般用户在执行此可执行文件时,会具有文件拥有者的权限。例如:我们都知道账号和密码是存放在/etc/passwd与/etc/shadow中的。而文件'etc/shadow'的权限是"-r--------",它的拥有者是root,这个权限中,仅有root可以“强制”存储,其他人是不能修改的。但是我们却可以使用以一般身份的用户去修改自己的密码,这个就是该文件有SUID权限的原因。现在我们可以查看一下命令"passwd"的权限:

执行命令:ls -al /usr/bin/passwd

得到的结果是:-rwsr-xr-x 1 root root 32988 2008-06-10 02:10

passwd

因为SUID是程序执行过程中拥有文件拥有者的权限,SUID权限只可以用在二进制可执行文件上。但这个权限对于shell脚本无效,因不shell不是一个可执行文件,它只是一个解释器,它只是调用其它的程序来完成任务,同时SUID对于目录文件也是无效的。

【SGID权限】

SGID权限与SUID相似,当一个文件设置有SGID标志时,一般用户将具有文件拥有者的用户组权限。具体来说,对于一个可执行文件,当具有SGID时,一般用户执行它时将具有文件拥有者所在用户组的权限;对于一个目录而言,当具有SGID时,一般用户在这个目录中建立的文件或目录的用户组则会是这个目录拥有者所在的用户组,一般而言,SGID用于多人团队进行合作开发。

【Sticky Bit权限】

SBIT只对于目录有效,对于具有SBIT权限的目录来说,一般用户在这个目录内建立的文件,只有root和用户自己能够删除,其它的用户无法删除,当然,这个目录必需要具有其它用户的wx权限才行。

【SUID/SGID/SBIT权限的设置】

上述三种权限的设置与普通权限的设置有一定的相似性,也有两种方式:符号模式和位模式。符号模式下的格式与普通文件权限是一样的,只不过设置SUID/SGID/SBIT的方式有所不同,以下主要以举例为主:

对可执行文件“hekaicheng”设置SUID:chmod u+s hekaicheng

执行后的效果在不同的情况下会有所不同,当设置SUID属性的文件具有拥有者的可执行权限时,设置SUID后,使用ls查看权限时,会看到“-**s******”(其中*表示的rwx中的一种权限),如果这个文件对于拥有者的权限中无可执行权限时,则会显示“-**S******”。

对可执行文件“hekaicheng”设置SGID:chmod g+s hekaicheng

执行后的效果在不同的情况下会有所不同,当设置SGID属性的文件具有拥有者的可执行权限时,设置SGID后,使用ls查看权限时,会看到“-*****s***”(其中*表示的rwx中的一种权限),如果这个文件对于拥有者的权限中无可执行权限时,则会显示“-*****S***”。

对可执行文件“hekaicheng”设置SBIT:chmod o+t hekaicheng

执行后的效果在不同的情况下会有所不同,当设置SUID属性的文件具有拥有者的可执行权限时,设置SBIT后,使用ls查看权限时,会看到“-********t”(其中*表示的rwx中的一种权限),如果这个文件对于拥有者的权限中无可执行权限时,则会显示“-********T”。

使用位模式来对上述三种权限进行设置,格式为:chmod [option] 文件名

其中option与设置普通权限类似,只是原来设置权限时,是三个八进制数据,这里是四个八进制数据。后三位八进制数是设置普通权限,最前面的一位八进制数是用来设置三种特殊权限的,把这位八进制位分解为三位二进制位后,从高到低依次为SUID、SGID、SBIT。例如:

使文件“hekaicheng”具有SUID权限:chmod 4*** hekaicheng

(这里的‘*’表示对普通权限的一种设定)

使文件“hekaicheng”具有SUID、SGID权限:chmod 6*** hekaicheng

具体关于位模式的设定,可以参考文章前面的内容。

【创建文件时的默认权限】

在linux中创建文件时,新创建的文件的权限(默认权限)是一个系统预设的值,这个值可以通过umask进行查看。例如:

在终端窗口中输入:umask

我们可以看到输入出一串数字:0022

这里的数字与新创建的文件的默认权限不相反的,如果默认权限为0022,则表示文件的拥有者用户组不具备写权限、其它用户不具备写权限。

如果我们新创建一个文件“hekaicheng”:touch hekaicheng

然后查看其权限,我们会得结果为:-rw-r--r-- 1 tingyu tingyu 0 2011-03-19 19:48

hekaicheng

这里我们发现一点疑问,为什么拥有者的权限不是rwx,而是rw-,因为系统不允许给新创建的文本文件执行权,只能在创建后,用chmod命令手动赋予执行权。也就是说,对于新创建的文本的最大默认权限仅为6,而对于新建的目录,则最大默认权限为7,新建目录系统默认给予执行权(可以进入目录)。

以下表给出了umask值与默认权限的对应关系:

umask 文件 目录

0 6 7

1 6 6

2 4 5

3 3 3

4 2 3

5 2 2

6 0 1

7 0 0

修改默认权限的命令同样为umask,其格式为:umask *** (‘*’代表三种默认权限默认值)

例如:修改默认权限为020:umask 020

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值