• linux如何修改权限详解


    前言

    今日,同事问我,服务器上拷贝过来的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

  • 相关阅读:
    BZOJ 3295 【CQOI2011】 动态逆序对
    POJ 3714 Raid
    树状数组区间修改加区间查询
    codevs 2606 约数和问题
    UOJ #150 【NOIP2015】 运输计划
    分享知识-快乐自己:IDEA 导入(web)项目并部署到 Tomcat
    分享知识-快乐自己:配置(各种)环境变量
    分享知识-快乐自己:什么是MVC
    分享知识-快乐自己:SpringBoot 使用注解API的方式定义启动端口号
    分享知识-快乐自己:Oracle中定义及使用同义词
  • 原文地址:https://www.cnblogs.com/jichi/p/11186974.html
Copyright © 2020-2023  润新知