系列教程--Linux基础--07--文件权限管理

本节概要

  Linux文件权限介绍

  文件权限介绍

  基本文件权限管理

环境准备

操作系统:Centos6.5、Centos7.2

一、文件权限介绍

  在Linux中一切皆文件,目录也是文件,每个文件具有可读、可写、可执行的权限。目录的可执行操作表示用户是否有权限进入该目录,文件可执行权限代表是否有权限运行改文件。每个文件都会从属于一个用户和用户组,每个文件对于文件属主、属组、以及其他的用户组具有特定的权限。

  命令ll即可查看到文件的具体权限:

  下面我们具体分析下Linux文件权限的构成:

  如上图,第一个字符表示文件的类型,后面的三个字符为一组rwx,分别代表文件属主、属组和其他用户对文件的权限。r代表可读(read),w代表可写(write),x代表可执行(execute),-代表无权限,同时r、w、x也分别对应一个数字,r对应4,w对应2,x对应1,这些数字在修改文件权限时经常使用。

  文件类型:主要为-和d,其中-代表普通文件,d代表为目录。另外还有c为字符设备文件,如猫等串口文件,b为块设备,比如硬盘、光驱等设备,s为数据接口文件,也叫套接口文件,

  属主权限:上图为可读、可写、可执行,7=4+2+1。

  数组权限:上图为可读、可写、可执行。7=4+2+1。

  其他用户权限:上图为无权限。0=0+0+0。

二、基本文件权限管理

1. chmod

  作用:更改文件权限。

  更改文件权限格式分为两种,一种是采用数字权限的方式,另一种是采用属主(u),属组(g),其他用户(o)进行操作。

  u+/-/=        文件属主owner      属主权限的加、减、赋值

  g+/-/=        文件属组group    属组权限的加、减、赋值

  o+/-/=        其他用户other    其他用户权限的加\减、赋值

  格式

  chmod [-R] xyz 文件、目录

  xyz: 对应用户吧的权限

  -R : 递归,即连同目内的文件一起修改权限

   举例-修改文件权限

   [root@localhost ~]# cp /etc/passwd .  #拷贝实验用的文件

   [root@localhost ~]# ll passwd         #查看文件详细信息

   -rw-r--r--. 1 root root 2050 Apr  1 00:33 passwd

   [root@localhost ~]# chmod u+x passwd

   [root@localhost ~]# ll passwd

   -rwxr--r--. 1 root root 2050 Apr  1 00:33 passwd

   [root@localhost ~]# chmod g+w passwd

   [root@localhost ~]# ll passwd

   -rwxrw-r--. 1 root root 2050 Apr  1 00:33 passwd

   [root@localhost ~]# chmod o=x passwd

   [root@localhost ~]# ll passwd

   -rwxrw---x. 1 root root 2050 Apr  1 00:33 passwd

   [root@localhost ~]# chmod a-x passwd

   [root@localhost ~]# ll passwd

   -rw-rw----. 1 root root 2050 Apr  1 00:33 passwd

   [root@localhost ~]# chmod a+wr passwd

   [root@localhost ~]# ll passwd

   -rw-rw-rw-. 1 root root 2050 Apr  1 00:33 passwd

  举例-修改目录权限:

  [root@localhost ~]# mkdir dir1

  [root@localhost ~]# ll

  total 4

  drwxr-xr-x. 2 root root    6 Apr  1 00:42 dir1

  -rw-rw-rw-. 1 root root 2050 Apr  1 00:33 passwd

  [root@localhost ~]# chmod u-x dir1

  [root@localhost ~]# ll -d dir1

  drw-r-xr-x. 2 root root 6 Apr  1 00:42 dir1

  [root@localhost ~]# chmod g-x dir1

  [root@localhost ~]# ll -d dir1

  drw-r--r-x. 2 root root 6 Apr  1 00:42 dir1

  [root@localhost ~]# chmod o-x dir1

  [root@localhost ~]# ll -d dir1

  drw-r--r--. 2 root root 6 Apr  1 00:42 dir1

  [root@localhost ~]# chmod a+x dir1

  [root@localhost ~]# ll -d dir1

  drwxr-xr-x. 2 root root 6 Apr  1 00:42 dir1

  使用数字修改权限:

  r:4,w:2,x:1

  [root@localhost ~]# ll -d dir1

  drwxr-xr-x. 2 root root 6 Apr  1 00:42 dir1

  [root@localhost ~]# chmod 655 dir1

  [root@localhost ~]# ll -d dir1

  drw-r-xr-x. 2 root root 6 Apr  1 00:42 dir1

  [root@localhost ~]# chmod 645 dir1

  [root@localhost ~]# ll -d dir1

  drw-r--r-x. 2 root root 6 Apr  1 00:42 dir1

2. chown

作用:修改文件属主、属组

格式:chown owner:group 文件名

  -R :递归修改,即目录内的文件一并修改。

举例:

[root@localhost ~]# useradd user1   #新建一个测试用户

[root@localhost ~]# ll

total 4

drw-r--r--. 2 root root    6 Apr  1 00:42 dir1

-rw-rw-rw-. 1 root root 2050 Apr  1 00:33 passwd

[root@localhost ~]# chown -R user1:user1 dir1

[root@localhost ~]# ll

total 4

drw-r--r--. 2 user1 user1    6 Apr  1 00:42 dir1

-rw-rw-rw-. 1 root  root  2050 Apr  1 00:33 passwd

[root@localhost ~]# chown :user1 passwd

[root@localhost ~]# ll

total 4

drw-r--r--. 2 user1 user1    6 Apr  1 00:42 dir1

-rw-rw-rw-. 1 root  user1 2050 Apr  1 00:33 passwd

[root@localhost ~]# chown user1 passwd

[root@localhost ~]# ll

total 4

drw-r--r--. 2 user1 user1    6 Apr  1 00:42 dir1

-rw-rw-rw-. 1 user1 user1 2050 Apr  1 00:33 passwd

  一个文件只有只读权限时文件的属主也可对文件进行写入操作,可以用vim打开后强制保存,也可用echo进行追加写入。

[root@localhost ~]# touch file1   #新建测试文件

[root@localhost ~]# ll file1

-rw-r--r--. 1 root root 0 Apr  1 01:10 file1

[root@localhost ~]# chmod u-w file1

[root@localhost ~]# ll file1

-r--r--r--. 1 root root 0 Apr  1 01:10 file1

[root@localhost ~]# vim file1

:wq   保存退出时会报异常:

需要 :wq! 强制保存退出

echo也可写入:

[root@localhost ~]# echo "this is file1" > file1

[root@localhost ~]# cat file1

this is file1

3. umask

作用:设置文件默认权限的补码(注意,不是文件的默认权限)

格式:umask 默认权限补码

默认文件权限对于系统用户和普通用户一般是不一样的:

[root@localhost ~]# umask  #查看管理员文件默认权限

0022

[root@localhost ~]# su - user1

[user1@localhost ~]$ umask  #查看普通用户文件默认权限

0002

    举例:

      修改文件默认权限补码:

        [root@localhost ~]# umask   #查看

0022

[root@localhost ~]# umask 0002  #修改

[root@localhost ~]# umask

0002

[root@localhost ~]# umask 0022

[root@localhost ~]# umask

0022

上面的过程是查看和修改文件的默认权限的补码,下面描述如何计算默认权限。

默认权限计算方法:666/777 & 默认文件权限补码的反码

其中,666代表文件,777代表目录,即计算文件和目录时此处不同。

以文件默认权限的计算为例:

正数的补码、反码和原码相同。

文件                 文件umask

6   6   6            0   0   2(普通用户)

110 110 110         000 000 010(原码)

                     000 000 010(原码的补码)

110 110 110    &   111 111 101(补码取反)

110 110 100

664(文件默认权限)

普通用户默认文件权限验证:

[root@localhost ~]# su - user1

Last login: Sun Apr  1 01:41:59 PDT 2018 on pts/0

[user1@localhost ~]$ touch file1

[user1@localhost ~]$ ll file1

-rw-rw-r--. 1 user1 user1 0 Apr  1 02:19 file1  #新建的文件默认权限默认664

三、扩展

  1. 文件file1只有只读权限,测试文件属主之外的用户是否可以进行数据的写入。
  2. 自行查阅资料,学习二进制中原码、补码、反码(部分企业笔试题中会涉及到这块的基础知识)。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值