本文发布于782 天前,最后更新于779天前,其中的信息可能已经有所发展或是发生改变。
查看文件
直接使用ls
命令查看。
输出结果为code test.txt
。
但是,部分文件是隐藏文件,这时候就需要使用ls -a
命令查看。其中,以.开头的就代表是隐藏文件(夹)。
huii@HUII-PC:~$ ls -a
. .bash_logout .config .local .python_history .viminfo test.txt
.. .bashrc .dbus .motd_shown .ssh .vscode-server
.bash_history .cache .lesshst .profile .sudo_as_admin_successful code
可以使用ls -l
命令查看文件属性。
huii@HUII-PC:~$ ls -l
total 8
drwxr-xr-x 6 huii huii 4096 Feb 17 13:47 code
-rw-r--r-- 1 huii huii 256 Mar 7 10:36 test.txt
命令可以组合使用,如ls -al
,查看全部文件的属性。
huii@HUII-PC:~$ ls -al
total 72
drwxr-x--- 9 huii huii 4096 Mar 7 20:56 .
drwxr-xr-x 3 root root 4096 Feb 16 23:34 ..
-rw------- 1 huii huii 8264 Mar 11 23:57 .bash_history
-rw-r--r-- 1 huii huii 220 Feb 16 23:34 .bash_logout
-rw-r--r-- 1 huii huii 3866 Mar 1 14:06 .bashrc
drwxr-xr-x 4 huii huii 4096 Mar 1 13:51 .cache
drwx------ 6 huii huii 4096 Mar 5 11:25 .config
drwx------ 3 huii huii 4096 Mar 5 11:25 .dbus
-rw------- 1 huii huii 39 Mar 7 20:56 .lesshst
drwxr-xr-x 5 huii huii 4096 Mar 1 13:51 .local
-rw-r--r-- 1 huii huii 0 Mar 12 11:25 .motd_shown
-rw-r--r-- 1 huii huii 807 Feb 16 23:34 .profile
-rw------- 1 huii huii 0 Feb 17 00:17 .python_history
drwx------ 2 huii huii 4096 Feb 17 13:29 .ssh
-rw-r--r-- 1 huii huii 0 Feb 17 09:52 .sudo_as_admin_successful
-rw------- 1 huii huii 3585 Mar 1 13:27 .viminfo
drwxr-xr-x 5 huii huii 4096 Feb 17 09:47 .vscode-server
drwxr-xr-x 6 huii huii 4096 Feb 17 13:47 code
-rw-r--r-- 1 huii huii 256 Mar 7 10:36 test.txt
文件属性
以-rw-r--r-- 1 huii huii 256 Mar 7 10:36 test.txt
为例,文件属性可以分为以下几部分。
-rw-r--r--
。文件类型权限,该字段共有10位,其中第一位表示文件种类,2-4,5-7,8-10分别表示文件拥有者、用户组、非本人且非用户组对应的权限。1
。链接数,表示多少文件名链接到此节点。huii
。第一个表示文件/目录拥有者账号。huii
。第二个表示文件所属用户组。256
。表示文件容量大小,单位为Bytes。Mar 7 10:36
。最近修改时间。test.txt
。文件名。
文件类型权限
-rw-r--r--
文件种类
即文件类型权限中的第一位字符。
-
表示一般文件。d
表示目录。l
表示链接文件(link file)。b
表示设备文件里面的可供存储的周边设备。c
设备文件里面的串行端口设备。
文件权限
文件权限位于2-10位,每三个为一组,每组均为rwb
和-
的组合。
- r表示read,可读。
- w表示write,可写。
- x表示execute,可执行
rwb
的顺序是固定的,当有该权限的时候,出现对应的字母,否则用-
进行占位。
如:具有可读可执行权限,则表示为r-x
。
修改文件权限
进制转换
rwb
这三个权限都各只有两种状态,因此可以用三位二进制进行表示,可以从000至111分别表示---
至rwb
。其对应的十进制值如下。因此可以便捷地使用三个0-7的数字来分别表示对应的权限。
权限 | 二进制 | 十进制 |
---|---|---|
— | 000 | 0 |
–x | 001 | 1 |
-w- | 010 | 2 |
-wx | 011 | 3 |
r– | 100 | 4 |
r-x | 101 | 5 |
rw- | 110 | 6 |
rwb | 111 | 7 |
直接赋予权限
修改权限的语法为chmod [-R] xyz 文件或目录。
其中
- -R为可选项,表示对当前目录及目录下所有文件进行操作。
- xyz为三个数字,表示需要赋予的权限,如770表示所有者和群组有rwb权限,其他人则无。
huii@HUII-PC:~$ chmod 770 test.txt
huii@HUII-PC:~$ ls -l
total 8
drwxr-xr-x 6 huii huii 4096 Feb 17 13:47 code
-rwxrwx--- 1 huii huii 256 Mar 7 10:36 test.txt
增、删、改部分权限
权限对应到三种身份,可以使用四种符号进行表示,可组合使用。
- u。user,文件拥有者。
- g。group,用户组。
- o。other,其他用户。
- a。all,所有用户。
对应着三种操作。
- =。设置为某权限。
- +。添加某权限。
- -。移除某权限。
可操作的权限有三种,即rwx,可组合。
在-rwxrwx--- 1 huii huii 256 Mar 7 10:36 test.txt
基础上对权限进行处理。
将group和other的权限修改为wx
huii@HUII-PC:~$ chmod go=wx test.txt
huii@HUII-PC:~$ ls -l
total 8
drwxr-xr-x 6 huii huii 4096 Feb 17 13:47 code
-rwx-wx-wx 1 huii huii 256 Mar 7 10:36 test.txt
所有人去除w权限。
huii@HUII-PC:~$ chmod a-w test.txt
huii@HUII-PC:~$ ls -l
total 8
drwxr-xr-x 6 huii huii 4096 Feb 17 13:47 code
-r-x--x--x 1 huii huii 256 Mar 7 10:36 test.txt
other添加w权限。
huii@HUII-PC:~$ chmod o+w test.txt
huii@HUII-PC:~$ ls -l
total 8
drwxr-xr-x 6 huii huii 4096 Feb 17 13:47 code
-r-x--x-wx 1 huii huii 256 Mar 7 10:36 test.txt
目录/文件夹权限的含义
r
具有读取该目录结构列表的权限,相当于是箱子里的灯光。
w
具有改动目录结构的权限。
- 建立新的文件与目录;
- 删除已经存在的文件与目录(不论该文件的权限是什么 )
- 将已存在的文件或目录进行更名;
- 移动该目录内的文件、目录位置。
x
进入该目录的权限,相当于是打开箱子的钥匙。
因此,目录必须要有x权限,r或者w权限才有意义。
删除权限讨论
即使对该文件拥有完整的权限,也无法对该文件进行删除。rwx权限是针对文件内容而言,与文件名无关。
如果要删除文件,需要具有文件所属目录的wx
权限。
huii@HUII-PC:~$ mkdir test1#创建test1目录
huii@HUII-PC:~$ ls -l
total 12
drwxr-xr-x 6 huii huii 4096 Feb 17 13:47 code
-r-x--x-wx 1 huii huii 256 Mar 7 10:36 test.txt
drwxr-xr-x 2 huii huii 4096 Mar 12 13:05 test1
huii@HUII-PC:~$ cd test1/
huii@HUII-PC:~/test1$ touch t1#创建t1文件
huii@HUII-PC:~/test1$ cd ..
huii@HUII-PC:~$ chmod u=x test1/#只给test1目录x权限
huii@HUII-PC:~$ ls -l
total 12
drwxr-xr-x 6 huii huii 4096 Feb 17 13:47 code
-r-x--x-wx 1 huii huii 256 Mar 7 10:36 test.txt
d--xr-xr-x 2 huii huii 4096 Mar 12 13:05 test1
huii@HUII-PC:~$ cd test1/
huii@HUII-PC:~/test1$ ls#没有查看权限
ls: cannot open directory '.': Permission denied
huii@HUII-PC:~/test1$ rm t1#没有删除权限
rm: cannot remove 't1': Permission denied
huii@HUII-PC:~/test1$ cd ..
huii@HUII-PC:~$ chmod u=wx test1#给test1目录wx权限
huii@HUII-PC:~$ cd test1/
huii@HUII-PC:~/test1$ ls#没有查看权限
ls: cannot open directory '.': Permission denied
huii@HUII-PC:~/test1$ rm t1#有删除权限
huii@HUII-PC:~/test1$