首页 > 代码库 > 权限管理

权限管理

  一.  文件的基本权限

     1.1 基本权限

         -rw- r--  r--

            |    |    |

           u    g   o

r:可读 r-- 100 4
针对文件:是否可以查看文件内容
针对目录:是否可以查看目录里的内容(ls)
w:可写 -w- 010 2
针对文件:是否可以修改文件内容
针对目录:是否可以在该目录下创建、删除、修改文件的属性等
x:可执行 --x 001 1
针对文件:是否可以执行该文件(命令、脚本文件)
针对目录:是否可以cd(切换)到该目录

   注意:
  对文件来讲:最高权限是 x
  对目录来讲:最高权限是 w

  对于一个正常使用的目录,需要有rx权限

 

权限管理:
权限:文件的权限
ls -l
-rw-------. 1 root root  1590 Mar 28  2016 anaconda-ks.cfg
drwxr-xr-x. 2 root root  4096 Jul  8 17:19 Desktop

用空格分割的多列
第一列的第一个字符:文件类型

          - 第一个 “-” 表示文件类型

                 -  :普通文件

                d  :目录  

      b  :块设备

                c  :字符设备

        p  :管道文件

               s  :套接字文件

               l  :链接文件(软链接)

第一列的第2-11:文件权限
第二列:文件的硬链接个数或者是目录的子目录个数
硬盘读取数据的最小单位:扇区(512字节)
操作系统读取数据的最小单位:一次性读取连续8个扇区(4096字节),4kb(块)

超级块:文件系统大小、inode号个数、属性信息等
inode:文件的源数据信息(大小、权限...)
data:数据区域

open file——>inode号——>block——>相应数据

一般情况下,一个文件对应一个inode号,但是在类unix系统中,有多个文件对应相同的inode号现象存在,那么这多个文件互为硬链接。
互为硬链接的文件特点:
1、inode号相同
2、互为硬链接的文件的内容相同,一个文件改变,其他文件跟着改变(互为热备)
3、删除一个硬链接文件不影响其他文件

创建硬链接:
ln 源文件 目标文件(硬连接文件)

# ln aaa ccc
ln: `aaa‘: hard link not allowed for directory
说明:
目前操作系统不支持目录创建硬连接

创建软链接:
ln -s 源文件 目标文件(软连接)
特点:
1、互为软链接的文件的inode号不相同
2、一个文件改变,另一个也会跟着改变
3、删除源文件,软连接文件就会成为无效连接(死连接)
4、可以对目录创建软链接

第三列:文件的创建者(拥有者)
第四列:文件的所属组
第五列:文件的大小(字节)
第6-8列:文件的最后一次修改的时间
第9列:文件名

二、文件默认权限

(4).unmak: 查看默认权限
如0022
  - 第一位0: 文件特殊权限
  - 022 : 文件默认权限
临时修改: umask 0002
永久修改: vi  /etc/profile

文件默认权限
  1).文件默认不能建立执行文件,必须手工赋予执行权限
  2).所以文件默认权限最大为666
  3).默认权限需要换算成字母再相减
  4).建立文件之后的默认权限,为666减去umask值
例如:
 - 文件默认最大权限是666, umask值为022
 - -rw-rw-rw-  减去  -----w--w-  等于 -rw-r--r--

目录的默认权限
  1).目录默认权限最大为777
  2).默认权限需要换算成字母再相减
  3).建立文件之后的默认权限,为777减去umask值
例如:
 - 目录默认权限最大为777, umask值为022  
 - -rwxrwxrwx  减去  -----w--w-  等于 -rwxr-xr-x

 

 

普通权限
修改权限:
chmod:
-R 递归修改
用法:
chmod 权限 filename
chmod u+x file1
chmod g=wx file1
chmod o-r file1
chmod +x file1
chmod a+x file1
chmod -x file1
chmod a-x file1
chmod u-w,g=w,o-r file1

rwxr-----  file1
chmod 740 file1

修改文件的拥有者和所属组:
chown:既可以修改拥有者也可以修改所属组
chown stu1 file1  只更改拥有者为stu1
chown .admin file1 只更改所属组为admin
chown :admin file1 只更改所属组为admin
chown stu1.admin file1 更改拥有者为stu1所属组为admin
chown stu1:admin file1
chown -R stu1 dir  递归修改目录的拥有者为stu1

chgrp:只能修改文件的所属组
-R
chgrp admin file1
chgrp -R admin dir

ACL(访问控制策略)

ACL就是用来解决用户身份不足的问题

查看acl权限
getfacl  文件名

# 设定acl权限
setfacl  选项  文件名
  -m  设定ACL权限
  -x  删除指定的ACL权限
  -b  删除所有的ACL权限
  -d  设定默认ACL权限
  -k  删除默认ACL权限
  -R  递归设定ACL权限

# 查看分区ACL权限是否开启
(5).dupe2fs 命令是查询指定分区详细文件系统信息的命令
 dupe2fs -h /dev/sda51
   -h  仅显示超级块中信息,而不是磁盘块的详细信息

# 临时开启分区ACL权限
mount  -o  remount, acl  /
  - 重新挂载根分区,并挂载加入acl权限

# 永久开启分区ACL权限(不建议修改)
vi  /etc/fstab
#加入acl
然后修改UUID=c2ca6f57-b15c-43ea-bca0-f239083d8bd2  /  ext4  defalults  acl  1 1

# 重新挂载文件系统或重启系统,使修改生效
mount  -o  remount  /

 

权限管理