Linux权限之基础权限

介绍

Linux是多用户的操作系统,允许多个用户同时登录和工作,Linux权限是操作系统用来限制不同用户对资源的访问机制。这里暂且将Linux的权限分为三类:

  • 基本权限:给文件和目录的所属者、所属组、其他用户分配的读、写、执行的权限
  • ACL权限:ACL权限可以针对单一用户或者用户组设定权限,是基本权限之外更细化的权限设定,弥补了基本权限设定不能满足的一些场景
  • 特殊权限:除了读写执行权限的另一种特殊权限

基本权限

权限位介绍,使用ls -l命令查看时,长格式显示出来的第一列就是文件的权限,例如:

复制代码
root@master-01:~# ls -l
total 583436
drwxr-xr-x 2 root root        4096 Feb 24 12:10 airflow-offline
-rw-r--r-- 1 root root           0 Feb 24 17:07 _binary.tar.enc
-rw-r--r-- 1 root root        3195 Feb 28 17:13 biz_config_meta
drwxr-xr-x 2 root root        4096 Mar  3 16:11 clickhouse
drwxr-xr-x 2 root root        4096 Mar 24 15:50 clickhouse-metrics
-rw-r--r-- 1 root root      235913 Mar  3 16:10 clickhouse-operator-install-bundle.yaml
drwxr-xr-x 2 root root        4096 Feb 28 16:21 cm
drwxr-xr-x 2 root root        4096 Mar 10 11:54 conf
drwxr-xr-x 2 root root        4096 Mar 17 11:32 cronlog
-rw-r--r-- 1 root root         613 Feb 24 17:10 delivery_decrept.sh

第一列的权限位drwxr-xr-x,含义如图所示:

rwx代表的含义:

  • r:表示read,是否可以查看文件的内容
  • w:表示write,写,是否可以写入、修改文件的内容
  • x:表示exec,可执行,一般是给命令或者系统脚本使用,运行命令

权限与数字之间进行转换

字母权限 数字权限
r 4
w 2
x 1
- 0

修改文件权限 chmod

  • chmod语法格式:chmod [参数] 权限模式 文件或目录

  • 参数说明:

    • -R:递归设置权限,也就是给予目录中的所有文件喝子目录设定权限
    • --reference=参考文件或目录:使用文件或参考目录的权限来设置目标文件或目录的权限

权限设置方式

在设置权限方式之前需要了解一个文件的权限包含哪些主体,用户身份、赋予方式和权限这三个主体缺一不可

  • 用户身份:

    • u:user代表拥有者
    • g:group代表用户组
    • o:other代表其它用户
    • a:all代表所有用户
  • 赋予方式:

    • +:加入权限
    • -:去掉权限
    • =:设置权限、修改权限
  • 权限:

    • r:read,读取权限
    • w:write写入权限
    • x:exec可执行权限

案例集合

  • 一、创建test.log文件,并赋予所有类型用户读写执行权限

    root@iv-ydpkgu0jcwwh2yox8410:~/data# touch test.log
    root@iv-ydpkgu0jcwwh2yox8410:~/data# ll
    total 0
    -rw-r--r-- 1 root root 0 Mar 31 14:39 test.log
    root@iv-ydpkgu0jcwwh2yox8410:~/data# chmod 777 test.log
    root@iv-ydpkgu0jcwwh2yox8410:~/data# ll
    total 0
    -rwxrwxrwx 1 root root 0 Mar 31 14:39 test.log
    root@iv-ydpkgu0jcwwh2yox8410:~/data#

  • 二、使所有用户没有写的权限

    root@iv-ydpkgu0jcwwh2yox8410:~/data# chmod a-w test.log
    root@iv-ydpkgu0jcwwh2yox8410:~/data# ll
    total 0
    -r-xr-xr-x 1 root root 0 Mar 31 14:39 test.log
    root@iv-ydpkgu0jcwwh2yox8410:~/data#

修改文件拥有者 chown

chown命令用来修改文件或目录所有者和所属用户组

  • 语法:chown [选项] 所有者[.所属组] 文件或目录名称
  • 参数说明:
    • -R:递归设置权限,也就是给予目录中的所有文件喝子目录设定权限
    • --reference=参考文件或目录:使用文件或参考目录的权限来设置目标文件或目录的权限

注意:普通用户不能修改文件的所属者和所属组,哪怕这个文件是自己的也不行,普通用户只能修改自己的文件权限

修改test.log文件的拥有者为root

复制代码
chown root.root test1.txt