转自: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的值。
相关推荐
在Linux系统中,`ll`是一个非常常用的命令,它用于列出目录中文件的详细信息,包括权限、所有者、大小、日期等。然而,有时在新的或者未经配置的Linux环境中,当你尝试输入`ll`时可能会看到“未找到命令”的错误。这...
【Linux中的ll命令详解】 在Linux操作系统中,`ll`命令是`ls -l`命令的一个别名,用于以长格式列出目录中的文件和子目录的详细信息。这个命令非常实用,因为它提供了丰富的文件属性信息,包括文件权限、所有者、组...
下面是 Linux 中一些常用的命令,涵盖文件管理、目录管理、权限管理、进程管理、网络管理等方面。 文件管理命令 1. ll 命令:查看所有文件详细信息,包括隐藏文件。 2. ls 命令:列出所有文件,使用 -a 选项可以列...
### Linux常用命令详解知识点 #### 一、命令格式与通配符 - **命令格式**: - **命令**:指定要执行的操作。 - **选项**:改变命令的行为方式,通常以`-`开头,多个选项可以用空格或直接连接的方式给出。 - **...
2. **查看文件属性**: 使用 `ll` 命令查看文件的详细信息,包括权限、所有者、大小等。 3. **移动以及重命名文件**: 使用 `mv` 命令移动或重命名文件。 4. **删除文件**: 使用 `rm` 命令删除文件或目录。对于目录,...
ll命令是ls的升级版,具体升级了什么呢?我们可以通过alias ll命令来看一下输出: alias ll='ls -alF' 这也就代表着我们执行ll时,本质上执行的是ls -alF命令。 而对于ls -alF中的-alF,代表如下含义: -a 列出目录...
本文将详细介绍 Linux 常用命令,包括文件与目录相关命令、磁盘管理与维护命令、系统管理与设置命令、网络相关命令和压缩备份命令。 一、文件与目录相关命令 1. ll 命令:用于显示文件和目录的详细信息。 2. cd ...
### Linux命令解析与详解 #### 引言 在IT领域,尤其是系统管理和开发环境中,Linux作为一款开源且功能强大的操作系统,其重要性不言而喻。掌握Linux命令是每个技术工作者的基本技能之一,它能够帮助用户高效地进行...
Linux 系统运维命令大全 Linux 系统是一种广泛使用的操作系统,具有强大的功能和灵活的配置。在 Linux 系统中,正确地使用运维命令是非常重要的。本文档将整理一些常用的 Linux 运维命令,包括系统监控、文件操作、...
`alias` 可以创建快捷命令,如 `alias ll='ls -l'` 创建 "ll" 命令来执行 "ls -l"。 以上就是一些Linux基础命令的介绍,它们构成了Linux系统操作的基础,熟练掌握这些命令能大大提高你在Linux环境中的工作效率。...
#### 模式切换命令与快捷键 在Linux环境中,用户可以在图形界面和字符控制台之间进行切换,这对于管理和操作服务器尤其重要。以下是一些常用的模式切换命令: 1. **注销**: 使用`Ctrl+Alt+Backspace`组合键,但...
### Linux命令ls详解 #### ls命令简介 `ls`(list)是最基本的目录处理命令之一,也是学习Linux操作系统中最常用的命令。其英文原意为“列表”或“清单”,用于展示当前工作目录下的文件及目录,或者指定路径中的...
以上是Linux中常用的文件与磁盘管理命令的基本用法和示例,通过这些命令可以高效地管理和操作文件系统。在实际工作中,掌握这些基础命令是非常重要的,它们能够帮助用户更好地利用Linux系统提供的强大功能。
- `ls -l` 或 `ll`:列出当前目录下文件的详细信息,如文件权限、所有者、大小、修改时间等。 - `pwd`:显示当前工作目录的完整路径。 - `cd ..`:返回当前目录的上一级目录。 - `cd -`:返回上一次所在的目录。...
16. **管道符**:`|`用于将前一个命令的输出作为后一个命令的输入,如`ll | grep '^5' a.c`会筛选出以数字5开头的行。 以上只涉及了部分基础且常用的Linux命令,实际上Linux命令众多,涵盖了文件管理、进程控制、...
本文着重从文件权限配置的角度探讨了Linux操作系统中文件安全的问题,并强调了开发人员在编程过程中需要注意文件权限的设定,以防文件与数据遭受破坏。通过一个简单的实例说明了该问题并提出了相应的解决方案。 ###...
- `ll`:显示详细文件信息,包括权限、大小、日期等。 - `touch`:创建新文件或更新文件的时间戳。 - `cp`:复制文件或目录。 - `mv`:移动或重命名文件或目录。 - `mkdir`:创建新目录。 - `rmdir` 或 `rm -r...