chmod命令用来变更文件或目录的权限。在UNIX系统家族里,文件或目录权限的控制分别以读取、写入、执行3种一般权限来区分,另有3种特殊权限可供运用。用户可以使用chmod指令去变更文件与目录的权限,设置方式采用文字或数字代号皆可。符号连接的权限无法变更,如果用户对符号连接修改权限,其改变会作用在被连接的原始文件。

权限范围的表示法如下:

  • u:user,文件或目录的拥有者
  • g:group,文件或目录的所属群组
  • o:other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围
  • a:all,全部的用户,包含拥有者,所属群组以及其他用户
  • r:read,读取权限,数字代号为“4”
  • w:write,写入权限,数字代号为“2”
  • x:执行或切换权限,数字代号为“1”
  • -:不具有任何权限,数字代号为“0”
  • s:特殊功能说明:变更文件或目录的权限

语法

chmod (选项) (参数)

选项

-c或——changes:效果类似“-v”参数,但仅回报更改的部分;
-f或--quiet或——silent:不显示错误信息;
-R或——recursive:递归处理,将指令目录下的所有文件及子目录一并处理;
-v或——verbose:显示指令执行过程;
--reference=<参考文件或目录>:把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同;
<权限范围>+<权限设置>:开启权限范围的文件或目录的该选项权限设置;
<权限范围>-<权限设置>:关闭权限范围的文件或目录的该选项权限设置;
<权限范围>=<权限设置>:指定权限范围的文件或目录的该选项权限设置;

参数

权限模式:指定文件的权限模式;
文件:要改变权限的文件。

实例

Linux用 户分为:拥有者、组群(Group)、其他(other),Linux系统中,预设的情況下,系统中所有的帐号与一般身份使用者,以及root的相关信 息, 都是记录在/etc/passwd文件中。每个人的密码则是记录在/etc/shadow文件下。 此外,所有的组群名称记录在/etc/group內!

linux文件的用户权限的分析图

例如:rwxrw-r--

r=可读    //值为4

w=可写    //值为2

x=可执行    //值为1

-=无权限    值为0

命令执行:

[root@localhost ~]# touch test.txt
[root@localhost ~]# ll
total
-rw-------. root root Apr : anaconda-ks.cfg
-rw-r--r--. root root Jun : test.txt

我们可以看到新建的test.txt文档具有的权限:rw-r--r--,对应的值为644。

[root@localhost ~]# chmod u=rwx,g=rw,o=r test.txt
[root@localhost ~]# ll
total
-rw-------. root root Apr : anaconda-ks.cfg
-rwxrw-r--. root root Jun : test.txt

现在的权限为rwxrw-r--,权限值为764.

[root@localhost ~]# chmod u-x,g+x-w,o+x test.txt
[root@localhost ~]# ll
total
-rw-------. root root Apr : anaconda-ks.cfg
-rw-r-xr-x. root root Jun : test.txt

现在的权限是rw-r-xr-x,权限值为655.

[root@localhost ~]# chmod a=r test.txt
[root@localhost ~]# ll test.txt
-r--r--r--. root root Jun : test.txt

现在的权限是r--r--r--,权限值为444.

[root@localhost ~]# chmod a+x test.txt
[root@localhost ~]# ll test.txt
-r-xr-xr-x. root root Jun : test.txt

现在的权限是r-xr-xr-x,权限值为555.

[root@localhost ~]# chmod  test.txt
[root@localhost ~]# ll test.txt
-r--r-----. root root Jun : test.txt

通过值更改权限后,同样根据值的换算得到文件权限:r--r-----,值为440

[root@localhost ~]# chmod  test.txt
[root@localhost ~]# ll test.txt
-rwxrwxrwx. root root Jun : test.txt

上面是777权限。rwxrwxrwx.

递归参数

[root@localhost ~]# ls -l
total
-rw-------. root root Apr : anaconda-ks.cfg
drwxr-xr-x. root root Jun : test
[root@localhost ~]# ls -l test
total
-r--r--r--. root root Jun : test1
--w--w--w-. root root Jun : test2
---x--x--x. root root Jun : test3

当前test目录为731权限,test目录下的test1为444权限,test2为222权限,test3为111权限。现在进行递归权限管理:

[root@localhost ~]# chmod -R  test
[root@localhost ~]# ls -l
total
-rw-------. root root Apr : anaconda-ks.cfg
drwxrwxrwx. root root Jun : test
-rwxrwxrwx. root root Jun : test.txt
[root@localhost ~]# ls -l test
total
-rwxrwxrwx. root root Jun : test1
-rwxrwxrwx. root root Jun : test2
-rwxrwxrwx. root root Jun : test3

通过执行chmod -R 777 test命令,test目录的权限以及其下的所有文件全部递归调整权限为777。

Linux基本命令-chmod的更多相关文章

  1. Linux常用基本命令(chmod)

    chmod命令用来改变文件或者目录的权限,只有文件的属主和超级用户才能够执行这个命令 格式: chmod [option] [mode] [file] >常用参数选项 -R : 递归修改目录以及 ...

  2. linux 基本命令 [转]

    linux 基本命令 1.ls  (list 显示当前目录下文件和目录 ls -l 详细显示 =ll ) [root@linux ~]# ls [-aAdfFhilRS] 目录名称 [root@lin ...

  3. 剑指Offer——知识点储备--Linux基本命令+Makefile

    剑指Offer--知识点储备–Linux基本命令 1.linux下查看进程占用cpu的情况(top): 格式 top [-] [d delay] [q] [c] [S] [s] [i] [n] 主要参 ...

  4. Linux学习总结(9)——Linux 新手必知必会的 10 条 Linux 基本命令

    Linux 对我们的生活产生了巨大的冲击.至少你的安卓手机使用的就是 Linux 核心.尽管如此,在第一次开始使用 Linux 时你还是会感到难以下手.因为在 Linux 中,通常需要使用终端命令来取 ...

  5. linux 基本命令 1

      Linux基本命令(一) 目标 熟练使用 Linux常用的命令 ls  查看文件 clear   清空 cd pwd mkdir touch rm cp mv tree chmod find gr ...

  6. 【Linux基础总结】Linux基本命令

    Linux基本命令 Linux系统下的文件类型.权限.所属用户与组 文件类型 - (文件) d(目录) ->类似windows系统下的文件夹 l (链接) ->类似windows系统下的快 ...

  7. Linux基本命令及编程环境实验

    目录 一.Linux基本命令详细汇总 1.目录及文件相关命令 2.系统信息查询 3.文件操作(统计.过滤.搜索.权限) 4.其他命令 二.Linux终端上vi命令编程 1.进入vi命令模式 2.vi编 ...

  8. Linux基本命令(一)

    Linux基本命令 编辑器 vim编译器 Gnu工具链-gcc调试器 GDB操作系统是用C来写的 系统编程 (核心骨架 80%) 文件I/O 文件系统 进程{ 进程控制原语.进程间通信.进程间关系 信 ...

  9. 2 、Linux基本命令-ls-pwd-cd-date-hwclock

    Linux基本命令: 1.ls-查看目录下的文档 语法: ls 目录 注: .当前目录  ..上级目录 如:ls /etc/ 相关参数: -l  显示详细信息 ls /etc/ -l -a 显示隐藏的 ...

随机推荐

  1. FCKEDITOR在.NET中的使用

    FCKEDITOR在.NET中的使用 FCKeditor介绍 FCKeditor是一个功能强大支持所见即所得功能的文本编辑器,可以为用户提供微软office软件一样的在线文档编辑服务.它不需要安装任何 ...

  2. Oracle 表的导入与导出

    周末任务:将一个表从一个库导到另一个库大致思路:用expdp 将表从一个实例导出 ,再用impdp将导出的 .dmp文件导入到另一个实例1.在实例 orcl 中准备一个用于导出的表: 进入实例为orc ...

  3. python3 爬虫利用Requests 实现下载进度条

    一.编写代码 from datetime import datetime,date,timedelta from contextlib import closing import urllib,url ...

  4. Netty自定义数据包协议

    粘包和分包出现的原因是:没有一个稳定数据结构 解决办法: 分割符 长度 + 数据 * <pre> * 数据包格式 * +——----——+——-----——+——----——+——---- ...

  5. java--demo之猜拳游戏

    版本1:人机大战  基础随机出    用户键盘录入 package com.hainiu.demo; import java.util.Scanner; /* * 人机大战石头剪刀布 */ publi ...

  6. java虚拟机栈(关于java虚拟机内存的那些事)

    <深入理解 java 虚拟机> 读书扩展 作者:淮左白衣 写于 2018年4月13日16:26:51 目录 文章目录 java虚拟机栈是什么 特点 栈帧 局部变量表 什么时候抛出 `Sta ...

  7. 解决 pycharm [Errno 11001] getaddrinfo failed 错误提示!

    我看网上很多问题对这个问题的解决方法也是一只半解的,可能产生问题的原因不一样吧,今天我说下我的经验 解决办法: 原因就是你的本地dns解析的host文件,里面的的解析地址被注释了! 打开本地的hous ...

  8. docker&git&gitlab-安装/部署/新建

    --安装gcc yum -y install gcc --安装g++ yum -y install gcc-c++ --安装编译所需的包 yum -y install curl-devel expat ...

  9. 2019版UI学习路线(含大纲+视频+工具+网盘+面试题)

    2019最新UI设计师教程(学习路线+课程大纲+视频教程+面试题+学习工具) 什么是全链路UI设计 UI设计师是随着网络而兴起的新兴设计行业,从事对软件的人机交互.操作逻辑.界面美观的整体设计工作.涉 ...

  10. sublime text 2 + Dev-C++/MinGW 组合配置更方便快捷的 C/C++ 编译环境

    首先看一下配置后的效果: 1.直接在底部文本框中显示运行结果(不需要从键盘输入的时候使用): 2.在cmd中运行结果(需要从键盘输入的时候使用): 快捷键说明: 运行: 在底部文本栏显示结果:Ctrl ...