Linux文件权限管理命令学习

你必须非常努力,才能看起来毫不费力!

微信搜索公众号[ 漫漫Coding路 ],一起From Zero To Hero !

前言

本篇文章主要讨论Linux中的文件权限管理命令,包括更改文件权限、文件所有者、文件所有组和默认权限,大家一起来学习吧!

chmod

ch删除文件恢复mod: change the permission mode of系统运维工作内容 a file

Linux/Unix 的文件调用centos7安装图形界面权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)。权限linux系统分为三种:可读、可写、可执行。可以通过更改不同用户的权限linux创建文件来保护文件。

命令格式

chmod [-cfvR] mode file复制代码

命令描述

谁可以更改文件权限:文件所有者或者root用户

选项

-c : 若该文件权限确实已经更改,才显示其更改动作-f : 若该文件权限无法被更改也不要显示错误讯息-v : 显示权限变更的详细资料-R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)复制代码

权限有两种方式可以设置:

1. [{ugoa}{+-=}{rwx}] [文件或目录]2. [mode=421] [文件或目录]复制代码
  1. 第一种通过对不同角色增加、减少或者设定权限,完成chmod

u:所有者 g:所属组 o:其他 a:所有角色

+:增加权限 -:减少权限 =:设定权限

r:读权限 w:写权限 x:执行权限

# 新建文件的权限为 rw-r--r--[root@VM-0-5-centos ~]# touch test.txt[root@VM-0-5-centos ~]# ls -l总用量 0-rw-r--r-- 1 root root 0 10月  9 01:00 test.txt# 所有者增加执行权限,所属组增加写权限[root@VM-0-5-centos ~]# chmod u+x,g+w test.txt# 查看权限[root@VM-0-5-centos ~]# ls -l总用量 0-rwxrw-r-- 1 root root 0 10月  9 01:00 test.txt复制代码

可以系统运维工资一般多少看出这种比较繁琐,需要对每个角色完成设定。

  1. 由于权限对应的是 r w x,对应 4 2 1,可以通过数字表示不同的系统运维包括哪些内容权限

即r - 4 ; w - 2 ; x - 1

那么 rwxrw-r-- 可以表示为 764

通过该方式,可以一次性对所有角色设置权限,比第一种要简centos7网络配置便先,但是要先centos安装将权限对应到具体的数系统运维工资一般多少值上

# 新建文件的权限为 rw-r--r--[root@VM-0-5-centos ~]# touch new.txt[root@VM-0-5-centos ~]# ls -l总用量 0-rw-r--r-- 1 root root 0 10月  9 01:09 new.txt# 设置文件权限为 764[root@VM-0-5-centos ~]# chmod 764 new.txt[root@VM-0-5-centos ~]# ls -l总用量 0-rwxrw-r-- 1 root root 0 10月  9 01:09 new.txt复制代码

文件目录权限总结

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

易混淆点

我们下面做个实验,使用root用户新建一个文件夹,给文件夹权限系统运维工程师面试问题及答案777,并在文件夹中新建一个文件。那么有系统运维面试题及答案个问题:非root用户是否可以删除该文linux系统安装件呢?可以思考下再看后面的内容。

[root@VM-0-5-centos ~]# cd /opt[root@VM-0-5-centos opt]# lsredis-6.2.4  redis-6.2.4.tar.gz  rh# 1. 新建文件夹和文件,并设置文件夹权限为777[root@VM-0-5-centos opt]# mkdir movie[root@VM-0-5-centos opt]# touch movie/list.txt[root@VM-0-5-centos opt]# lsmovie  redis-6.2.4  redis-6.2.4.tar.gz  rh[root@VM-0-5-centos opt]# chmod 777 movie/# 2. list.txt文件,只有所有者有写权限[root@VM-0-5-centos opt]# cd movie/[root@VM-0-5-centos movie]# ls -l总用量 0-rw-r--r-- 1 root root 0 10月  9 18:09 list.txt# 3. 新建用户,切换用户[root@VM-0-5-centos opt]# useradd user1[root@VM-0-5-centos opt]# su - user1[user1@VM-0-5-centos ~]$ cd /opt/movie# 4. 删除文件成功[user1@VM-0-5-centos movie]$ rm list.txtrm: remove write-protected regular empty file ‘list.txt’? y[user1@VM-0-5-centos movie]$ ls复制代码

从上面的实验可以看出,想要删除文件linux创建文件,不需要对文件有写权限,而是需要对文件夹有写权限。对于文件的写权限,只是可以修改文件删除文件夹需要管理员权限怎么办内容,而不是删除文件。而对目录的写权限,则可以删删除文件除目录中的文件。

chown

命令格式

chown [用户] [文件或目录]复制代码

命令描述

chown:change file ownership

作用:改变文件或目录的所有者

限制:改变文件的所有者,需要root权限才能执行

示例

# 1. 新建文件[root@VM-0-5-centos tmp]# touch a.txt# 2. 查看所有者为root[root@VM-0-5-centos tmp]# ls -ltotal 0-rw-r--r-- 1 root root 0 Oct  9 18:31 a.txt# 3. 改变所有者[root@VM-0-5-centos tmp]# chown user1 a.txt# 4. 所有者权限变为 user1[root@VM-0-5-centos tmp]# ls -ltotal 0-rw-r--r-- 1 user1 root 0 Oct  9 18:31 a.txt复制代码

chgrp

命令格式

chgrp [用户组] [文件或目录]复制代码

命令描述

chgrp:chancentos7ge file group ownerscentos7关闭防火墙hip

功能:改变文件或者目录的所属组

权限:允许普通用户改变文件所centos关机命令属的组,只要该用户是该组的系统运维面试题及答案一员

示例

# 1. 新建文件[root@VM-0-5-centos tmp]# touch b.txt[root@VM-0-5-centos tmp]# ls -ltotal 0-rw-r--r-- 1 root root 0 Oct  9 18:38 b.txt# 2. 添加一个组[root@VM-0-5-centos tmp]# groupadd stu# 3. 改变所属组[root@VM-0-5-centos tmp]# chgrp stu b.txt[root@VM-0-5-centos tmp]# ls -ltotal 0-rw-r--r-- 1 root stu  0 Oct  9 18:38 b.txt复制代码

umask

命令格式

umask [-S]复制代码

命令描述

  • 显示新建的文件或者目录的默认权限
  • 默认显示的权限是4位,第一位是特殊权限,暂不缺失文件权限需要关注;后三位需要与777异或后,才是默认权限。

注意:计算后的权限是文件夹的权限,对于文件要去掉执行文件权限权限,Linux中默认新建的文件都没有执行权限!!!!

示例

# 1. 第一位不需要关注,022异或777后,为755,即默认权限为 rwxr-xr-x[root@VM-0-5-centos tmp]# umask0022# 2. 新建文件夹,验证确实为 rwxr-xr-x[root@VM-0-5-centos tmp]# mkdir test[root@VM-0-5-centos tmp]# ls -ldrwxr-xr-x 2 root root 4096 Oct  9 18:52 test# 3. 新建文件,默认都去掉了执行权限,为 rw-r--r--[root@VM-0-5-centos tmp]# touch c.txt[root@VM-0-5-centos tmp]# ls -l-rw-r--r-- 1 root root    0 Oct  9 18:55 c.txtdrwxr-xr-x 2 root root 4096 Oct  9 18:52 test复制代码

选项

  • -S:以 rwx 的形式显示文件夹的默认权限,直接就是对文件权限解除应的文件夹权限,不需要再进行异或操作
[root@VM-0-5-centos tmp]# umask -Su=rwx,g=rx,o=rx复制代码

更改umask默认值

umask 权限值复制代码

通过上述命令可以更改新建文件夹和文件的默认权限,需要注意的是,删除文件快捷键该值与777异或后才是真正的权系统/运维限值。因此可以先将想要的权限值与777异或,得到的就是这里的权限值。

比如想要默认权限为700,linux常用命令700异或777为077,这里的权限值就为077。

不建议使用该命令修改默认权限值!!!

[root@VM-0-5-centos tmp]# umask 077[root@VM-0-5-centos tmp]# mkdir test3# 077 与 777 异或后为 700[root@VM-0-5-centos tmp]# ls -ldrwx------ 2 root root 4096 Oct  9 19:00 test3复制代码

总结

本文介绍了Linux文件权限管理命令:

  • chmod:更改文件权限
  • chown:更改文件所有者
  • chgrp:更改文件所有组
  • umask:查看和修改默认文件权限

更多

个人博客: lifelmy.github.io/

微信centos7网络配置公众号:漫漫Co修改文件权限ding路