重要的几个热键
[tab]按键:他具有命令补全功能,可以避免输错指令或文件路径等等
[Ctrl]-c按键:停止正在运行的程序
[Ctrl]-d按键:键盘输入结束
[Ctrl]-a按键:移动到行首
[Ctrl]-e按键:移动到行尾
用户与用户组
对于linux目录和文件权限来说有三个重要概念:文件拥有者、用户组、其他人.
- 文件拥有者
就是创建文件的用户,在默认情况下,文件拥有者对这个文件有最高的管理权限. - 用户组
一个用户可以属于一个主组和多个附加组.对于文件和目录,可以为用户组设置访问权限.加入该用户组的所有用户将继承该组的访问权限,从而可以根据组的权限执行相应的操作(如读取、写入或执行). - 其他人
既不是文件的拥有者,也不属于文件或目录的所属组的用户,被称为其他人 - 对于这三个概念,我将用一个实际的例子说明
假设镇子上的一块土地是由龙家的老大龙傲天(文件拥有者)所开垦的,龙傲天拥有这块土地的所有权,因此他对这块土地有最高的管理权限.他可以决定谁可以耕种这块土地.由于龙傲天拥有这块地的最高管理权限,所以他可以让龙家(用户组)耕种这块地的权限,因此,只要是龙家人,就可以对这块地进行耕种或建房.
这天来了一个镇子上的居民(其他人)想耕地,但是他既没有龙家老大赋予的耕地权限,同时也不属于龙家人,所以他对这块地没有耕种的权限,甚至连走近看一看(读权限)都不被允许.
镇长作为这个小镇最高的管理员(root用户),对小镇的所有资源有绝对的控制权.然而,龙家老大因为不满现状,心生不轨,盯上了叶家叶辰的土地.可因为他并不是那块土地的主人(文件所有者),也不属于叶家(用户组),他就想通过市长来实现他的计划.
镇长得知了他想要通过不正当手段获取叶家的地,他对于龙傲天的做法非常失望.不仅拒绝了龙傲天的请求,还对他的行为作出了严厉的处罚.作为小镇的最高管理者,他在广播中宣布了对龙傲天的处罚:镇上的所有居民可以自由的使用龙傲天这块地.
相信你明白了root用户在linux中的位置,以及777权限(在后续会提到)的危害,如果你不想你的目录或文件被其他人随意的访问和修改,请务必设置合理的权限.
Linux 文件权限概念
我们已经大致了解了用户和用户组的概念,接下来,我们就要来讲一讲文件和目录权限的基本概念以及设置.
Linux 文件属性
第一个字符代表这个目录、文件或者链接文件等:
- 为[d]则是目录
- 为[-]则是文件
- 为[I]则是链接文件
- 为[b]则是块设备文件,例如硬盘、U盘
- 为[c]则是串行端口设备
目录与文件的权限意义
接下来,我们要开始学习目录和文件的权限意义,为学习chmod打下基础.
现在我们已经了解了Linux系统中文件和目录的三种身份(拥有者、用户组、其他人),以及每种身份各自拥有的三种权限:rwx.那么,这些文件权限对文件和目录的访问和操作会产生什么具体效果呢?接下来,我将详细说明:
r(read)权限:
对于文件:可以读取文件实际的内容
对于目录:只能读取目录的的列表,不能进入目录里边读取文件和目录(x权限)
x(execute)权限:
对于文件:在Linux系统中,文件的可执行性与扩展名无关,只取决于是否赋予了x权限.只要二进制文件或Shell脚本有x权限,它们就可以被执行.
对于目录:目录的x权限意味着用户可以进入该目录
w(write)权限:
对于文件:可以编辑、添加和修改文件内容。如果只有w权限,而没有x权限,则无法删除文件(删除需要目录的w+x权限).
对于目录:当目录拥有w权限,就意味着可以删除或修改子目录和文件,但前提是你得有权限进入目录(x权限),才进入该目录下执行相应的操作
这些权限需要多实践才能明白
修改文件属性与权限
chgrp:修改文件所属组
chown:修改文件所有者
chmod:修改文件权限
- chgrp
➜ ~ chgrp users dd #把dd的所属组修改名为users的组
# 参数
-R:进行递归修改,意思是连同目录下的所有子目录及子目录下的所有内容和文件,修改为指定组
- chown
➜ ~ chown users dd #更改dd的所有者为users
➜ ~ chown users:users dd #更改dd的所有组和所有者为users
例子:cp会复制执行者的所有属性和权限.假如我复制了profile这个文件给bin用户,因为cp会复制执行者的权限所以bin用户无权使用,这个时候chown的作用就显现出来了.
# -R参数含义同上
- chmod
chmod权限设置有两种,分别可以使用数字或符号进行权限修改.
对于数字修改权限
linux文件基本权限就有9个,分别是所有者、所属组、其他人.三种身份各有自己的rwx(读、写、执行)权限。以下的每三组数字都代表一种身份.
r:4
w:2
x:1
举例来说这个文件权限:-rw-rwx-r--
# 就相当于
拥有者:= rw = 4+2+0 = 6
所属组:= rwx = 4+2+1 = 7
其他人:= r = 4+0+0 = 4
➜ ~ chmod 777 wget-log #指定权限的时候,必须三种身份都指定
# -R参数不在过多赘述
对于符号修改权限
我们先了解一下三种身份的缩写:u、g、o来代表三种身份的权限.此外a代表all亦即全部身份.可以使用下边的方法给目录或文件设置权限:
u(所属者) +(加入) r(读权限)
g(所属组) -(移除) w(写权限)
o(其他人) =(重置) x(执行权限)
a(全部)
根据-rwxr-xr-x这个权限你也来动手实践一下吧
➜ ~ chmod u=rwx,go=rx winds #只要你明白上边的数字赋值,相信你很快就能上手符号修改权限
# 在权限设置中相当于重置.例如,如果文件的你用 u=r,那么所所有者 (u) 原本有读写权限 (rw),但有者的权限将被重置为只有读权限 (r),写权限将被移除