Linux使用==ll==命令列出列表的时候,前面总是有一堆drwxr-xr-x ,这些代表什么意思从来还没有去在意过,只是找到自己的目录然后一顿操作完事。但是这次在tomcat下部署项目的时候怎么都不能启动,后来找来运维人员一看是因为没有权限,他就告诉我这些都是什么意思,然后我也自己查了一下资料,这里就整理一下,也方便自己记忆。
首先,这些字母表示的是权限的意思
权限的计算从第二位字母开始,三个符号为一组合,其中-表示没有这个权限,那么先拿==drwxr-xr-x==简单解释一下:
- d:这一位表示文件类型。d是目录文件,l是链接文件,-是普通文件,p是管道
- rwx:这三位(2-4位)表示这个文件的属主拥有的权限,r是读,w是写,x是执行。这里表示这个属主同时拥有读、写、执行权限
- r-x:这三位(5-7位)表示和这个文件属主所在同一个组的用户所具有的权限。这里表示的是有读和执行权限,没有写权限
- r-x:这三位(8-10位)表示其他用户所具有的权限。这里表示的是有读和执行权限,没有写权限
其次,使用ls -l(或者ll)命令列出后每一行代表的含义
- 第1段: 文件属性字段:文件属性字段总共有10个字母组成,第一个字母表示文件类型,如果这个字母是一个减号”-”,则说明该文件是一个普通文件。字母”d”表示该文件是一个目录,字母”d”,是dirtectory(目录)的缩写。
注意,一个目录或者说一个文件夹是一个特殊文件,这个特殊文件存放的是其他文件和文件夹的相关信息。 - 第2段:文件硬链接数或目录子目录数
- 第3段:文件拥有者
- 第4段:文件拥有者所在的组
- 第5段:文件文件大小(以字节为单位)
- 第6段:文件创建月份
- 第7段:文件创建日期
- 第8段:文件创建时间
- 第9段:文件名 (如果是一个符号链接,那么会有一个 “->”箭头符号,后面根一个它指向的文件)
可以拿下面这个比对一下:
drwxr-xr-x 1 62323 197609 0 4月 21 14:16 bin/
drwxr-xr-x 1 62323 197609 0 4月 21 14:16 cmd/
drwxr-xr-x 1 62323 197609 0 4月 21 14:16 dev/
drwxr-xr-x 1 62323 197609 0 4月 21 14:16 etc/
-rwxr-xr-x 1 62323 197609 149784 2月 26 19:48 git-bash.exe*
最后就是赋权时数字的含义
使用chmod赋权的时候,我们通常会这样写:
chmod 777 test.txt
那么上面的777 代表的含义是这样的:
- r:read 表示读权限 --数字4表示
- w:write 表示写权限 --数字2表示
- x:excute 表示执行权限 --数字1表示
- 第一个7:表示==属主==拥有==4+2+1==的权限也就是同时有==读,写,执行==权限
- 第二个7:表示==与属主同一个组的所有用户==拥有==4+2+1==的权限
- 第三个7:表示==其他用户==拥有==4+2+1==的权限
所以这里可以看出来这个777具有的威力(赋权一定要谨慎!)
再比如:rwxrwxr-- 774
表示此文件(文件夹)的拥有者和同组用户有读写及执行权限,其他用户组只有读权限。也就是前面三个表示所有者权限,中间三个表示同组用户权限,最后一组表示其他用户权限(不包括root)。
最后举个详解案例:
drwxr-xr-x 1 62323 197609 0 4月 21 14:16 bin/
其中:
- d:表示==bin==是目录
- rwx:表示==62323==属主拥有的权限是==可读(r),可写(w)和可执行(x)==
- r-x(5-7位):表示与==62323==这个属主在同一个组(==197609==)的用户的权限是==可读(r)和可执行(x)==
- r-x(8-10位):表示其他用户拥有的权限是==可读(r)和可执行(x)==
- 1:文件硬链接数或目录子目录数为 1
- 62323:表示我笔记本电脑的一个用户(是我的qq号的前几位)
- 197609:表示==62323==这个用户所属的组group
- 0:表示文件大小是==0字节==
- 4月:表示创建月份是==4月==
- 21:创建日期是==21日==
- 14:16:表示创建时间是下午的==14:16==
- bin/:表示的文件名称,这里指的是目录名称