Linux文件权限管理详解

<code>❶rwx ❷rwx ❸rwx   ❹user  ❺group  ❻date   ❼filename 111   101  101/<code>

一个文件主要包含以上属性,

ls -l

❶归属用户权限

❷归属群组权限

❸其它用户权限

❹归属用户

❺归属群组

❻日期信息

❼文件名称

对于文件夹,必须拥有它可执行的权限,才能够使用 cd 命令进入该文件夹;拥有可读权限,才能够使用 ls 命令查看该文件夹的文件列表。

root用户 拥有最高权限

可以使用 3位的二进制数字 来描述一组权限,某一权限对应的数字为 1,则表示具有该种权限,为 0,则不具有该种权限。

Linux文件权限管理详解

使用二进制数字来描述一组权限,虽然非常直观,但是 3组 权限需要用 9位 数来表示,不够方便。因此我们将三组权限使用 3位8进制数字 来表示。

每种权限对应的数字:

<code>权限  r  w  x二进制100010001八进制 4 2 1/<code>

将这3位8进制数字相加的结果,就可以表示该组权限的具体内容,例如:

7=4+2+1=rwx5=4+1=rx755=4+2+1,4+1,4+1=rwx,r-x,r-x

还可以使用 a 、 u 、 g 、 o 表示归属关系,使用 = 、 + 、 - 表示权限变化,使用 r 、 w 、 x 表示权限内容

a 所有用户 u 归属用户 g 归属群组 o 其它用户= 具有权限 + 增加权限 - 去除权限r 可读权限 w 可写权限 x 可执行权限

例如:

<code>a+x 给所有用户增加可执行权限go-wx 将归属群组和其它用户的可写、可执行权限去掉u=rwx 归属用户具有可读、可写、可执行权限/<code>

chmod 权限表达式 文件|目录

更改文件的权限。权限的表达式可以使用 3位8进制数字 表示,或者使用 augo +-= rxw-s 来表示

<code>-R递归-v显示过程-c类似“-v”,仅显示更改部分--reference=参照文件或目录以指定文件为参照更改权限/<code>

示例:

<code>chown user:admin pathchown -R user.admin pathchown user path /<code>

chgrp 归属群组 文件|目录

更改文件的归属群组。可以使用群组名或者群组编号,选项同上

SUID、SGID、Sticky bit

某些情况下,需要以可执行文件归属用户的身份执行该文件,可以为该文件设置 SUID。同样,设置 SGID 能够以该文件归属群组的身份执行它。


Linux文件权限管理详解


例如:用户自行设定密码。出于安全方面的考虑, /etc/shadow 只能由 root用户 直接修改。

<code>-rw------- root root /etc/shadow    /<code>

这个时候,可以为程序 /usr/bin/passwd 设置 SUID,当普通用户执行“passwd”命令时,便能够以该程序归属用户 root 的身份修改 /etc/shadow 文件。而“passwd”程序自身带有身份验证机制,不能通过验证时拒绝执行,从而保证了安全。

<code>ls -l /usr/bin/passwd-r-s--x--x root root /usr/bin/passwd/<code>

我们发现,归属用户的可执行权限位使用 s ,表示 SUID。同样,归属群组的可执行权限位使用 s ,表示 SGID。任何用户或群组都拥有 “其它用户” 的权限,所以不需要以 其它用户 身份执行文件,其它用户的可执行权限位便不会出现 s 。该权限位可能出现的属性为 t ,也就是粘着位 Sticky bit。

<code>ls -ld /tmpdrwxrwxrwt root root /tmp/<code>

粘着位表示任何用户都可能具有写权限,但只有该归属用户或 root用户 才能够删除

SUID、SGID、Sticky bit 也可以像权限一样,使用一个八进制数表示,如下:

4SUID

2SGID

1Sticky bit

通过在“chmod”命令中使用 4个八进制数 的表达式,如 4755 ,用第一位表示 SUID、SGID 或 Sticky bit,便能够为文件设置这些特殊权限。示例:

<code>chmod -R 4755 path    /<code>
Linux文件权限管理详解

lsattr [路径]

查看文件的特殊属性

-a全部显示

-d只显示目录

-R递归

特殊属性包括:

a仅供附加用途

b不更新最后存取时间

c压缩后存放

d排除在转储操作之外

i不得任意更动文件或目录

s保密性删除文件或目录

S即时更新文件或目录

u预防意外删除

chattr +|-|=属性 路径

更改文件特殊属性

-R递归

-V显示过程


分享到:


相關文章: