`

linux权限与ll命令

 
阅读更多

转自:https://blog.csdn.net/LEON1741/article/details/82386520

https://www.cnblogs.com/songgj/p/8890710.html

 

一、ll命令

使用“ls -l”或者“ls -al”或者“ll”命令查看文件及目录详情时,shell中会显示出好几列的信息。下面对其中的每一列进行详细的分析:

 

1.文件类型

表示该文件的类型:

“-”表示普通文件;

“d”表示目录;

“l”表示链接文件;

“p”表示管理文件;

“b”表示块设备文件;

“c”表示字符设备文件;

“s”表示套接字文件;

 

2.文件基本权限

以back_init文件为例,其权限属性可分为三段:[rwx][rwx][r-x],其中:第一段表示文件所有者(u表示)的权限,第二段表示所属组(g表示)的权限,第三段表示其他人(o表示)的权限。权限详细解释见后面

 

另外,这里还有2个很特殊的属性,平时不怎么常见,这里也顺带解释一下: 

s或S(SUID,Set UID):可执行的文件搭配这个权限,便能得到特权,任意存取该文件的所有者能使用的全部系统资源。请注意具备SUID权限的文件,黑客经常利用这种权限,以SUID配上root帐号拥有者,无声无息地在系统中开扇后门,供日后进出使用。

t或T(Sticky):/tmp和 /var/tmp目录供所有用户暂时存取文件,亦即每位用户皆拥有完整的权限进入该目录,去浏览、删除和移动文件。

综合起来可得,对于back_init文件,其创建者/所有者具有可读可写可执行的权限,其创建者/所有者所在的组的其他用户具有可读可写可执行的权限,其他组的其他用户则具有可读可执行但不可写的权限。

 

3、目录/链接个数

对于目录文件,表示它的第一级子目录的个数。注意此处看到的值要减2才等于该目录下的子目录的实际个数。

比如这里的include目录下,其实是没有子目录的,所以应该是0,但是它这里却显示2,这是因为要加上.目录和..目录。在linux下,.目录表示当前目录,..目录表示上一级目录。

这也可以解释上图中第一行的.目录下的3和第二行..目录下的2。因为当前目录下有一个include目录,所以加上.目录和..目录这2个目录就等于3,所以第一行会显示3。

 

对于其他文件,表示指向它的链接文件的个数。

 

4、所有者及组

表示该文件的所有者(owner)及所属的组(group)。

 

5.文件大小


 如果是文件,则表示该文件的大小,单位为字节。 

如果是目录,则表示该目录符所占的大小,并不表示该目录下所有文件的大小。

 

6.修改日期

该文件最后修改的日期时间。

 

7.文件名称


文件名,无需多说。

 

二、文件基本权限

linux服务器上有严格的权限等级,如果权限过高导致误操作会增加服务器的风险。所以对于了解linux系统中的各种权限及要给用户,服务等分配合理的权限十分重要。现在以上面back_init文件([rwx][rwx][r-x])为例解释下linux系统文件的基本权限。

 

linux文件权限类型

linux文件有可读、可写、可执行三种权限类型,除了用字母简写表示外,还能用数字进行表示。比如上面back_init文件权限用数字表示就是774(每个数字表示一段权限的数字和)

权限 数字 意义
r 4 可读
w 2 可写
x 1 可执行

对于文件和目录来说,权限有不同作用

文件:

   r : 可以读取文件内容(比如命令 cat more head tail)。

   w : 可以编辑文件(比如命令 vim echo ),但是不能删除文件,因为文件名没有放在自己的文件空间,而是放在了上一级的目录空间下。

   x : 可以执行。

目录:

      r:可以查询目录下的文件(比如命令ls  ll)。

      w:具有修改目录结构的权限,比如新建文件和目录,删除此目录下文件和目录,重命名此目录下文件和目录,剪切和复制(比如命令cp mv touch rm)。

    x:目录有执行权限但是不能运行,可以进入目录(cd命令)。

     对文件来说最高权限是x,对于目录来说最高权限是w,一般给目录赋予权限0 ,5(rx),7(rxw),赋予4 ,1, 6都是没有意义的。对于文件能否删除,首先要对目录具有执行权限,同时对文件也具有执行权限。

 

修改文件权限

chmod用来变更文件或目录的权限,语法:chmod [u|g|o|a] [+|-|=][r|w|x] 文件名。例如:

 

chmod u+x,g-w,o=r a.txt b.txt
//表示给当前目录下 a.txt,b.txt两个文件做如下权限修改:拥有者添加执行权限,组减去写权限,其他人只分配读权限。另外上面语法中a表示所有人
 也可以用数字修改权限,例如:

 

 

chmod 775 a.txt
//表示赋予当前目录下的a.txt文件,拥有者、组成员读写执行权限,其他人读执行权限
 

 

chown用来修改文件或目录的所有者和所属用户组,例如:

 

chown test123:group123 a.txt
//表示当前目录下a.txt的所有者改为test123,所属用户组改为group123
 

 

默认权限

我们在linux系统中新建一个文件或者目录,那么这个文件或目录会有一个默认权限。默认权限是靠umask的值来定义的。那么什么是umask?umask如何发挥作用呢?

umask(权限掩码)用于指定当前用户在建立文件或目录时候的权限默认值。当新文件被创建时,其最初的权限由文件创建掩码决定。用户每次登录系统时,umask命令都被执行, 并自动设置掩码mode来限制新文件的权限。用户可以通过再次执行umask命令来改变默认值,比如 umask 0000,新的权限将会把旧的覆盖掉。不过这样只是临时生效,要永久修改就要修改环境变量配置文件/etc/profile中其中一段

if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
    umask 002
else
    umask 022
fi

我们可以执行umask命令来查看系统中文件默认权限。

 

[root@instance-w6b0iilx ~]# umask
0022
 

 

解释下0022

第一位0:文件特殊权限,022:文件默认权限。 

下面创建一个文件和一个目录。

 

[root@localhost tmp]# touch a.txt
[root@localhost tmp]# mkdir dir
[root@localhost tmp]# ll
总用量 54768
-rw-r--r--  1 root root        0 5月   5 14:31 a.txt
drwxr-xr-x  2 root root        6 5月   5 14:31 dir

 

我们看文件默认权限是644,而目录的权限是755,那么是如何依靠umask来设定权限的呢。

文件:

    1.文件默认不能建立为执行权限,必须手工赋予执行权限。所以文件的默认权限最大为666。这样能保护系统安全。

    2.默认权限要换算成对应的字母权限在相减而不是数字。

    3.建立文件或目录之后的默认权限,为666减去umask的值。

计算方式如下:

   1. 文件默认最大权限666,umask=022

      -rw-rw-rw-   减去  -----w--w-   等于 -rw-r--r--   (644)

  2. 文件默认最大权限666,umask=033

     -rw-rw-rw-   减去   -----wx-wx  等于 -rw-r--r--    (644)

 

目录:

    1.目录默认权限最大是777。

    2.目录默认权限换算成字符在相减。

    3.建立目录之后的默认权限,是777减去umask的值。

 

 

  • 大小: 184.2 KB
  • 大小: 180.6 KB
  • 大小: 183.1 KB
  • 大小: 183.6 KB
  • 大小: 184.5 KB
  • 大小: 184.4 KB
  • 大小: 185 KB
  • 大小: 186.6 KB
  • 大小: 168.5 KB
分享到:
评论

相关推荐

    解决 linux下输入 ll 显示未找到命令

    在Linux系统中,`ll`是一个非常常用的命令,它用于列出目录中文件的详细信息,包括权限、所有者、大小、日期等。然而,有时在新的或者未经配置的Linux环境中,当你尝试输入`ll`时可能会看到“未找到命令”的错误。这...

    linux中ll命令的详细解释.pdf

    【Linux中的ll命令详解】 在Linux操作系统中,`ll`命令是`ls -l`命令的一个别名,用于以长格式列出目录中的文件和子目录的详细信息。这个命令非常实用,因为它提供了丰富的文件属性信息,包括文件权限、所有者、组...

    Linux常用经典命令(面试宝典)

    下面是 Linux 中一些常用的命令,涵盖文件管理、目录管理、权限管理、进程管理、网络管理等方面。 文件管理命令 1. ll 命令:查看所有文件详细信息,包括隐藏文件。 2. ls 命令:列出所有文件,使用 -a 选项可以列...

    Linux常用命令详解.pdf

    ### Linux常用命令详解知识点 #### 一、命令格式与通配符 - **命令格式**: - **命令**:指定要执行的操作。 - **选项**:改变命令的行为方式,通常以`-`开头,多个选项可以用空格或直接连接的方式给出。 - **...

    linux入门命令(linux 基本命令)

    2. **查看文件属性**: 使用 `ll` 命令查看文件的详细信息,包括权限、所有者、大小等。 3. **移动以及重命名文件**: 使用 `mv` 命令移动或重命名文件。 4. **删除文件**: 使用 `rm` 命令删除文件或目录。对于目录,...

    linux中ls和ll命令的区别

    ll命令是ls的升级版,具体升级了什么呢?我们可以通过alias ll命令来看一下输出: alias ll='ls -alF' 这也就代表着我们执行ll时,本质上执行的是ls -alF命令。 而对于ls -alF中的-alF,代表如下含义: -a 列出目录...

    嵌入式Linux实验一Linux常用命令.pdf

    本文将详细介绍 Linux 常用命令,包括文件与目录相关命令、磁盘管理与维护命令、系统管理与设置命令、网络相关命令和压缩备份命令。 一、文件与目录相关命令 1. ll 命令:用于显示文件和目录的详细信息。 2. cd ...

    linux命令.txt

    ### Linux命令解析与详解 #### 引言 在IT领域,尤其是系统管理和开发环境中,Linux作为一款开源且功能强大的操作系统,其重要性不言而喻。掌握Linux命令是每个技术工作者的基本技能之一,它能够帮助用户高效地进行...

    linux系列之常用运维命令整理笔录.docx

    Linux 系统运维命令大全 Linux 系统是一种广泛使用的操作系统,具有强大的功能和灵活的配置。在 Linux 系统中,正确地使用运维命令是非常重要的。本文档将整理一些常用的 Linux 运维命令,包括系统监控、文件操作、...

    Linux基础命令及其解释--基础篇

    `alias` 可以创建快捷命令,如 `alias ll='ls -l'` 创建 "ll" 命令来执行 "ls -l"。 以上就是一些Linux基础命令的介绍,它们构成了Linux系统操作的基础,熟练掌握这些命令能大大提高你在Linux环境中的工作效率。...

    linux基本操作命令

    #### 模式切换命令与快捷键 在Linux环境中,用户可以在图形界面和字符控制台之间进行切换,这对于管理和操作服务器尤其重要。以下是一些常用的模式切换命令: 1. **注销**: 使用`Ctrl+Alt+Backspace`组合键,但...

    Linux命令ls详解

    ### Linux命令ls详解 #### ls命令简介 `ls`(list)是最基本的目录处理命令之一,也是学习Linux操作系统中最常用的命令。其英文原意为“列表”或“清单”,用于展示当前工作目录下的文件及目录,或者指定路径中的...

    Linux常用基本命令

    以上是Linux中常用的文件与磁盘管理命令的基本用法和示例,通过这些命令可以高效地管理和操作文件系统。在实际工作中,掌握这些基础命令是非常重要的,它们能够帮助用户更好地利用Linux系统提供的强大功能。

    linux常用命令大全

    - `ls -l` 或 `ll`:列出当前目录下文件的详细信息,如文件权限、所有者、大小、修改时间等。 - `pwd`:显示当前工作目录的完整路径。 - `cd ..`:返回当前目录的上一级目录。 - `cd -`:返回上一次所在的目录。...

    基于Linux操作系统文件权限的设置

    本文着重从文件权限配置的角度探讨了Linux操作系统中文件安全的问题,并强调了开发人员在编程过程中需要注意文件权限的设定,以防文件与数据遭受破坏。通过一个简单的实例说明了该问题并提出了相应的解决方案。 ###...

    Linux实验命令

    - `ll`:显示详细文件信息,包括权限、大小、日期等。 - `touch`:创建新文件或更新文件的时间戳。 - `cp`:复制文件或目录。 - `mv`:移动或重命名文件或目录。 - `mkdir`:创建新目录。 - `rmdir` 或 `rm -r...

    Linux常用命令大全

    ### Linux常用命令详解 #### 一、`ls` 命令:查看当前目录文件信息 - **功能**:列出当前目录下的所有文件及其基本信息。 - **常用选项**: - `ls -l`:以长格式显示文件详情,包括权限、链接数、拥有者、大小、...

Global site tag (gtag.js) - Google Analytics