Skip to content

文件权限命令

Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。在Linux中我们可以使用ll或者ls-l命令来显示一个文件的属性以及文件所属的用户和组。

1. 文件权限

下图从左到右的10个字符表示权限信息
文件权限图 如果没有权限,就会出现减号[-]而已。从左至右用0-9这些数字来表示:

  1. 0首位表示类型
  2. 在Linux中第一个字符代表这个文件是目录、文件或链接文件等
    • -代表文件
    • d代表目录
    • l链接文档(linkfile)
  3. 第1-3位确定属主(该文件的所有者)拥有该文件的权限。---User
  4. 第4-6位确定属组(所有者的同组用户)拥有该文件的权限,---Group
  5. 第7-9位确定其他用户拥有该文件的权限---Other

2. rwx在文件和目录作用

  1. 作用到文件:
    [r]代表可读(read):可以读取,查看
    [w]代表可写(write):可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件.
    [x]代表可执行(execute):可以被系统执行
  2. 作用到目录:
    [r]代表可读(read):可以读取,ls查看目录内容
    [w]代表可写(write):可以修改,目录内创建+删除+重命名目录
    [x]代表可执行(execute):可以进入该目录
    Alt text

提示

其中图片中的链接数:
(1)如果查看到是文件:链接数指的是硬链接个数。 (2)如果查看的是文件夹:链接数指的是子文件夹个数。

3. chmod改变权限

第一种方式: chmod[{+-=}{rwx}]文件或目录
提示 u:所有者g:所有组o:其他人a:所有人(u、g、o的总和)
第二种方式: chmod[mode=421][文件或目录]
提示:r=4w=2x=1 rwx=4+2+1=7

sh
##  修改文件使其所属主用户具有执行权限
[root@hadoop100 jack]# cp /root/anaconda-ks.cfg /home/jack/
[root@hadoop100 jack]# ll
总用量 4
-rw-------. 1 root root 1350 1月  13 06:47 anaconda-ks.cfg
[root@hadoop100 jack]# chmod g+r anaconda-ks.cfg 
[root@hadoop100 jack]# ll
总用量 4
-rw-r-----. 1 root root 1350 1月  13 06:47 anaconda-ks.cfg
[root@hadoop100 jack]# chmod u+x,o+r anaconda-ks.cfg 
[root@hadoop100 jack]# ll
总用量 4
-rwxr--r--. 1 root root 1350 1月  13 06:47 anaconda-ks.cfg
[root@hadoop100 jack]# chmod 777 anaconda-ks.cfg 
[root@hadoop100 jack]# ll
总用量 4
-rwxrwxrwx. 1 root root 1350 1月  13 06:47 anaconda-ks.cfg
# 修改整个文件夹里面的所有文件的所有者、所属组、其他用户都具有可读可写可执行权限。
[root@hadoop100 ~]# chmod-R 777  xiyou/

4. chown改变所有者

语法:chown [选项] [最终用户] [文件或目录] ( 功能描述:改变文件或者目录的所有者)
选项说明: -R: 递归操作

sh
## 递归改变文件所有者和所有组
[root@hadoop100 ~]# chown -R jack:jack xiyou/

5. chgrp 改变所属组

基本语法

chgrp [最终用户组] [文件或目录] (功能描述:改变文件或者目录的所属组)

sh
## 修改文件的所属组
[root@hadoop100 ~]# chgrp root houge.txt