前言

今日,同事问我,服务器上拷贝过来的tomcat,怎么执行不了./startup.sh。于是,我一想,那肯定是没有权限的问题了。于是使用chmod命令更改了权限后,就可以执行了。项目正常启动。我想这个问题应该很多人都会遇到,遂写下了这篇文章。详细的介绍一下。linux 的文件权限。本文由权限开始,会扩展到一些其他的点。

1、ls和ls -a和ls -l和ls -al的区别

看到这的读者会问了,不是讲权限吗,怎么讲起了区别。首先通过这几个命令,了解一下区别,也可以了解到如何看一个文件的权限问题。

  • ls:显示没有隐藏的文件和文件夹
  • ls -a:显示当前目录下的所有文件和文件夹,包括隐藏的文件
  • ls -l:显示没有隐藏的文件和文件夹的详细信息
  • ls -al:显示当前目录下的所有文件和文件夹的详细信息

2、文件详细信息详解

我们随便进入一个文件夹,执行ls -l。

  • 第1列:代表文件的类型。我们常见的是d和-。d代表是目录文件。-代表是普通文件。其他不常见的有。l代表链接文件,b代表块设备。c代表字符设备文件。
  • 第2-10列:代表该文件的权限。三个为一组。第一组代表文件所有者的权限,第二组代表同用户组的权限,第三组代表其他用户非本用户组的权限。
    每组权限中的rwx,分别代表读,写,可执行的意思。
  • 第11列数字,图中的1,5,3,2这列,代表有多少文件名连接到此节点。
    每个文件都会将它的权限与属性记录到文件系统的i-node中,不过我们使用的目录树却是使用文件名来记录,因此每个文件名就会连接到一个i-node,这个属性记录的就是有多少不同的文件名连接到相同的一个i-node号码。
  • 第12列的root:所属者用户名
  • 第13列的root:所属用户组
  • 第14列:容量大小,默认为B
  • 后面为创建或修改日期,最后为文件名。

3、文件权限介绍

每一文件或目录的访问权限都有三组,每组用三位表示,分别为文件属主的读、写和执行权限;与属主同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限。
如之前的图所示,-代表空许可,r代表只读,w代表只写,x代表可执行。

4、chmod命令重写权限

该命令用于改变文件或目录的访问权限。
该命令有两种写法:1、包含字母和操作符的方式。2、包含数字的设定方式。

4.1、文字设定法

4.1.1、命令

chmod [who] [+ | - | =] [mode] 文件名

4.1.2、命令中各选项的含义
  • 操作对象who可是下述字母中的任一个或者它们的组合:
    u 表示“用户(user)”,即文件或目录的所有者。  
    g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。  
    o 表示“其他(others)用户”。  
    a 表示“所有(all)用户”。它是系统默认值。  
  • 操作符号可以是:
    +添加某个权限。
    -取消某个权限。  
    =赋予给定权限并取消其他所有权限(如果有的话)。  
  • 设置mode所表示的权限可用下述字母的任意组合:  
    r 可读。  
    w 可写。  
    x 可执行。  
    u 与文件属主拥有一样的权限。
    g 与和文件属主同组的用户拥有一样的权限。
    o 与其他用户拥有一样的权限。
  • 文件名:以空格分开的要改变权限的文件列表,支持通配符。

在一个命令行中可给出多个权限方式,其间用逗号隔开。
例如:chmod g+r,o+r example
使同组和其他用户对文件example 有读权限。
例如:chmod u+x startup.sh
给当前用户增加对startup.sh的执行权限。

4.2、数字设定法

4.2.1、命令

chmod [mode] 文件名

4.2.2、概述

我们将之前的rwx用数字进行替代。
0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限。
数字之和,即为该文件的权限。
使用文字的方式,有三组文字,数字即为3组数字之和。

4.2.3、例子

1、chmod 644 a.txt
文件属主具有读,写权限,因为6=4+2。
文件组具有读权限。
其他用户具有读权限。

5、chgrp命令

5.1、概述

改变文件或目录所属的组

5.2、命令

chgrp [选项] group filename

- R 递归式地改变指定目录及其下的所有子目录和文件的属组。
group为用户组id或者为/etc/group中用户的用户组名。如果用户不是文件的属主或者超级用户,则不能改变。

5.3、例子

chgrp - R jichi /etc
将etc及etc下所有文件和目录的属组都改为jichi。

6、chown命令

6.1、概述

更改某个文件或目录的属主和属组。

6.2、命令

chown [选项] 用户或组 文件  
- R 递归式地改变指定目录及其下的所有子目录和文件的拥有者。  
- v 显示chown命令所做的工作。  

6.3、例子

把文件a.txt的所有者改为jichi。
chown jichi a.txt  
把目录/b及其下的所有文件和子目录的属主改成jichi,属组改成jingdian。
chown - R jichi.jingdian /b

linux如何修改权限详解的更多相关文章

  1. Linux 用户及权限详解

    Linux 用户及权限详解 用户 , 组 ,权限 安全上下文(secure context): 权限: r,w,x 文件: r : 可读,可以使用类似cat 等命令查看文件内容. w : 可写,可以编 ...

  2. linux初级学习笔记六:linux用户及权限详解!(视频序号:03_4)

    本节学习的命令:/etc/passwd,/etc/shadow,/etc/group文件详解 本节学习的技能: 安全上下文 文件与目录的权限管理 影子命令 用户,用户组类别详解 /etc/passwd ...

  3. linux用户和权限详解

    1.用户组说明 在使用useradd命令创建用户的时侯可以用-g 和-G 指定用户所属组和附属组.基本组:如果没有指定用户组,创建用户的时候系统会默认同时创建一个和这个用户名同名的组,这个组就是基本组 ...

  4. linux: 用户组, 文件权限详解

    一.用户组 linux中每个用户必须属于一个组,不能独立于组外. 每个文件有所有者.所在组.其他组的概念 --所有者 一般为文件的创建者,谁创建了该文件,就天然的成为该文件的所有者 用ls ‐ahl命 ...

  5. Linux 文件特殊权限详解[suid/sgid/t]

    setuid(suid): 针对命令和二进制程序的,当普通用户执行某个(passwd)命令的时候,可以拥有这个命令对应用户的权限, 即让普通用户可以以root用户的角色执行程序或命令. setgid( ...

  6. Linux文件夹权限详解

    - 第一个字符代表文件(-).目录(d),链接(l) - 其余字符每3个一组(rwx),读(r).写(w).执行(x) - 第一组rwx:文件所有者的权限是读.写和执行 - 第二组rw-:与文件所有者 ...

  7. Linux学习之ACL权限详解(十)

    Linux系统ACL权限详解 目录 ACL权限简介与开启 查看与设定ACL权限 最大有效权限与删除ACL权限 默认ACL权限和递归ACL权限 ACL权限简介与开启权限 ACL权限简介 用户权限管理始终 ...

  8. Linux 用户和用户组详解

    用户分类 超级用户:UID范围 0 root用户:uid=0(root) gid=0(root) groups=0(root) 普通用户:由管理员创建,UID范围(500-65535) --> ...

  9. Linux权限详解 命令之 chmod:修改权限

    权限简介 Linux系统上对文件的权限有着严格的控制,用于如果相对某个文件执行某种操作,必须具有对应的权限方可执行成功. Linux下文件的权限类型一般包括读,写,执行.对应字母为 r.w.x. Li ...

随机推荐

  1. pytorch中的nn.CrossEntropyLoss()

    nn.CrossEntropyLoss()这个损失函数和我们普通说的交叉熵还是有些区别 x是模型生成的结果,class是对应的label 具体代码可参见如下 import torch import t ...

  2. Redux Class(immutable Record)引入的必要性 && Navigation引入方式

    我的意见 和大家讨论一下几个问题 1. 项目里面没有用class规定的请求数据结构,调试数据的时候无法从前端获取请求的数据格式,要看后端接口,增加了调试的难度.我们以前会用immutable Reco ...

  3. angularjs $scope与this的区别,controller as vm有何含义?

     壹 ❀ 引 初学angularjs的同学对于$scope一定不会陌生,scope(作用域)是将view(视图)与model(模板)关联起来的桥梁,通过controller(控制器)对于model的数 ...

  4. filter,map,reduce三个数组高阶函数的使用

    filter ,map ,reduce三个高阶函数的使用 普通方法解决数据问题 const nums1= [10,20,111,222,444,40,50] // 需求1.取出小于100的数字 // ...

  5. 用二进制写程序,提升装 X 境界

    用二进制来写程序这么反人类的事情,的确是很装的事情,但是它不但是一件很装的事情,也是掌握底层知识的基础能力之一.听我慢慢道来. 程序设计语言有高级语言和低级语言之分,尤其是现在各种编程语言的不断发展, ...

  6. Python 爬虫从入门到进阶之路(一)

    通用爬虫和聚焦爬虫 根据使用场景,网络爬虫可分为 通用爬虫 和 聚焦爬虫 两种. 通用爬虫 通用网络爬虫 是 捜索引擎抓取系统(Baidu.Google.Yahoo等)的重要组成部分.主要目的是将互联 ...

  7. Windows系统调用中的系统服务表

    Windows内核分析索引目录:https://www.cnblogs.com/onetrainee/p/11675224.html Windows系统调用中的系统服务表 如果这部分不理解,可以查看  ...

  8. SpringCloud的入门学习之概念理解、Config配置中心

    1.SpringCloud Config分布式配置中心.分布式系统面临的配置问题. 答:微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务.由于每个 ...

  9. ASP.NET Core Web 应用程序系列(一)- 使用ASP.NET Core内置的IoC容器DI进行批量依赖注入(MVC当中应用)

    在正式进入主题之前我们来看下几个概念: 一.依赖倒置 依赖倒置是编程五大原则之一,即: 1.上层模块不应该依赖于下层模块,它们共同依赖于一个抽象. 2.抽象不能依赖于具体,具体依赖于抽象. 其中上层就 ...

  10. docker容器的学习笔记

    目录 Docker入门学习笔记(一) 1. 什么是Docker? 2. Docke的目标 3. Docker通常应用场景 4. Docker的基本组成 补:Docker容器相关技术简介 安装Docke ...