三、权限
3. Linux权限管理
修改文件的拥有者和所属组
在上一节我们讲到如何更改文件的访问权限,那我们需要更改文件的拥有者和所属组,应该怎么做?
chown 命令可以更改文件的拥有者,但是需要 root权限 。
chgrp 命令可以更改文件的所属组,也需要 root权限 。
4. 文件的类型
Linux的文件类型不通过后缀区分!(不代表Linux不使用后缀) 。
文件属性的前十个字符里,后9个字符代表文件的访问者权限,而第一个字符则代表文件的类型。
-:普通文件(文本、源代码、图片、视频、库、可执行等)
d:目录文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如键盘,显示器等串口设备)
s:套接口文件
由上可知:Linux下一切皆文件 。
知识点:由于Linux不通过后缀识别文件类型,所以我们的文件名后缀就可以随便取了吗?当然不是!Linux不通过后缀识别文件类型,不代表Linux之上的工具(比如 gcc 编译工具)不通过后缀识别文件类型。使用 gcc 是必然不可能编译 .txt 文件的。所以 虽然Linux不通过文件后缀识别文件类型,但是我们依旧推荐使用通过文件后缀区分文件 。因为工具需要,人也需要。
我们可以通过 file 指令来查看文件类型。
5. 权限掩码
我们想要进入一个目录,需要什么权限?
root 不受以上权限的限制 。
为什么我们创建的普通文件的默认权限不是777,而是664;为什么我们创建的目录文件的默认权限不是777,而是775;这涉及到了 权限掩码 (umask)。每个文件的创建,默认的权限是 从 起始权限 中,去除权限掩码中出现的权限 。(起始权限 & (~umask)= 最终权限(默认))
我们可以使用 umask 来查看我们机器的权限掩码。
0002 就是 002 ,转换成权限二进制就是 000 000 010 。注意(大部分普通文件都不具有可执行的功能,所以 普通文件的起始权限是666 ,而 目录文件的起始权限是777 )。666 即是 110 110 110 ,去除权限掩码值可得到 110 110 100 ,即 664 ,而 777 去除权限掩码则可得到 775 。
umask 指令可以查看权限掩码,也可以更改权限掩码。
知识点:一个文件能否被删除,并不取决于文件本身,取决于文件所在的目录,拥有者是否具有 w 权限 。
但是如果新建了一个共享目录,两个 other 想在里面交流,所以这个共享目录的 other 必须具有 w 权限,但是这样容易被其他陌生人任意删除里面的文件,怎么办?Linux于是给 other 新增了一个位:粘滞位 t 。
那么这个粘滞位 t 具有什么意义?粘滞位就是:在原本 x 的权限下,进一步对目录的权限进行特殊限定:该目录里面的文件,只有root和拥有者有权利进行删除,其他人一概不能删除 。
带有粘滞位的目录想要删除里面的文件:
超级管理员(root)可以删除 。
该目录的所有者可以删除 。
要删除的文件的所有者可以删除。
四、Linux环境基础开发工具
1. yum
Linux中我们也要进行工具/指令/程序的安装/检查/卸载等,都需要 yum 的软件。yum是我们Linux预装的一个指令,可以搜索、下载、安装对应的软件,就相当于Linux的应用商店。
yum 工具的使用
我们可以下载一个 lrzsz 的工具,它可以实现我们Windous机器和Linux机器通过XShell进行传输文件。rz 命令可以Windows传Linux,sz 命令可以Linux传Windows。Windows传Linux也可以直接拖拽。
yum list 可以显示所有可以下载的软件包。
install 就是下载并安装的意思。
remove 就是卸载的意思。-y 选项可以加在 install ,也可以加在 remove ,意思是后面的一切不再询问,全部同意。
注意:yum 下载安装或删除需要 root 权限 。
一个好玩的工具:sl
yum install -y sl 需要root权限,或者 sudo yum install -y sl 进行提权。
界面会跑出一个火车。
如果上面的 sl 工具没有找到,需要安装扩展 yum 源:yum install -y epel-release 。