Linux权限管理

Linux权限管理

Linux文件系统权限

文件或者系统的基本权限:

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

Linux中通过对三种用户分配三种权限,可以通过ls -l命令查看文件或者目录的权限。
例如:

zp@zp-linux:~$ ls -l
总用量 1856
drwxrwxr-x 3 zp zp    4096 929 08:32 codes
-rw-r--r-- 1 zp zp    8980 924 22:20 examples.desktop
-rw-rw-r-- 1 zp zp 1829577 929 22:14 flask_login
drwxrwxr-x 3 zp zp    4096 929 18:02 IdeaProjects
drwxr-xr-x 8 zp zp    4096 411  2015 jdk1.7.0_80

每一行显示一个文件或者目录的信息,其中的第一个项代表了文件或者目录的权限。第一项的第一个字符是文件或者目录的标志符号。其余9个可分为3组,3个字母一组。分别代表文件属主的权限、文件所属组的权限、其他用户的权限。

更改操作权限

更改目录或文件的权限使用chmod命令进行,有两种设置方法:文字设定法和数值设定法。

  1. 文字设定法

     chmod [ugoa][+-=][rwxugo]<文件名或目录名>

    第一个选项表示要赋予权限的用户

    选项 说明 选项 说明
    u 属主(user) o 其他用户(other)
    g 所属组用户(group) a 所有用户(all)

    第二个选项表示要进行的操作

    选项 说明 选项 说明
    + 增加权限 = 分配另一个权限,同时把原有权限删除
    - 删除权限

    第三个选项是要分配的权限

    选项 说明 选项 说明
    r 允许读取 u 和属主权限相同
    w 允许写入 g 和所属组用户权限相同
    x 运行执行 o 和其他用户权限相同
  2. 数值设定法

    chomod n1n2n3 <文件名或者目录>

    其中,n1代表属主的权限,n2代表所属组用户的权限,n3代表其他用户的权限。将权限使用数值表示首先将每组的权限转化为二进制,然后将二进制转化为八进制。例如权限为rwxrw-r–的目录采用数值表示首先转化为二进制为111110100,将每组转化为八进制为754。

更改属主和同组人

只有文件的属主有权更改其属主和所属组,用户可以把属于自己的文件转让给他人。改变文件的属主和组可以用chown命令。

chown [-R]<用户,[:组]><文件或目录>

举例:

//将文件users1的属主改为osmond
#chmod osmond usrs1
//将文件users1的属主和组改为osmond
#chmod osmond:osmond usrs1
//将mydir目录下所有文件的属主和组改为osmond
#chmod -R osmondLosmond mydir

特殊权限设置

对文件可以设置SUID和SGID权限;对目录可以设置SGID和sticky-bit权限。其中SUID占用属主的x位置表示,SGID占用组的x位置表示,sticky-bit占用其他人的x位置表示。SUID和SGID用s表示,sticky-bit用t表示。

文件特殊权限:

特殊权限 说明
SUID 一个可执行文件设置了该权限,则无论谁执行这个文件,都将以文件所有者的身份执行该文件
SGID 一个可执行文件设置了该权限,则无论谁执行这个文件,都将以文件所属组的身份执行该文件

目录特殊权限:

特殊权限 说明
SGID 在该目录下创建或复制进来的文件将与该目录的所属组一致,复制文件时加上-p(preserve)参数,文件将保留原来的所属组
SGID 存放在该目录下的文件仅运行其属主或root执行删除、移动等操作

设置特殊权限任然使用chmod命令,并且仍然可以通过字符设定法和数值设定法两种。使用字符设定法时,可以使用s和t字符。使用数值设定法时,要使用4位八进制数,其中第一位用于设置特殊权限,后三位设置基本权限。

//文字设定法
//为/usr/bin/myapp添加SUID权限
#chmod u+s /usr/bin/myapp
//为目录/home/groupspace添加SGID权限
#chmod g+s /home/groupspace
//为目录/home/share添加sticky权限
#chmod o+t /home/share
//数值设定法
//为/usr/bin/myapp添加SUID权限
#chmod 4755 /usr/bin/myapp
//为目录/home/groupspace添加SGID权限
#chmod 2755 /home/groupspace
//为目录/home/share添加sticky权限
#chmod 1755 /home/share

ACL权限

ACL是访问控制列表,可以针对指定的用户/组分配rwx权限。
setfacl命令的语法为:

setfacl [-R]{-m|-x}<file or directory>

setfacl命令的选项为:
Linux权限管理_第1张图片
getfacl命令用于查看文件或者目录的ACL权限

getfacl <file or directory>

你可能感兴趣的:(linux,linux)