目录
1.命令行
2.shell命令以及运行原理
Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。
从技术角度,Shell的最简单定义:命令行解释器(command Interpreter)主要包含:将使用者的命令翻译给核心(kernel)处理。同时将核心的处理结果翻译给使用者。
对比windows GUI,我们操作windows 不是直接操作windows内核,而是通过图形接口点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)。
shell 对于Linux有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。
上述的命令行就是一个外壳程序,用于用户和操作系统交互的媒介。
知识点1:
为什么要存在外壳程序?1.方便用户操作。
2.保护内核(如果用户输入什么非法命名,直接在外壳程序进行拦截,就没有访问到内核)。
3.Linux中的用户
Linux下有两种用户:超级用户(root)、普通用户。
超级用户:可以在Linux系统下做任何事情,不受限制。
普通用户:在Linux下做有限的事情。
超级用户的命令提示符是'#',普通用户的命令提示符是'$'。
命令:su [用户名]
功能:切换用户(仅仅切换用户,不切换工作目录)。
ps:可以使用sudo -i切换到超级用户,但是这个命名会切换工作目录到/root。
知识点1:
sudo:用于短暂的指令提权。
安装软件到系统中,需要root权限,其实只安装了一份,允许大家同时使用。
知识点2:
su命令无法切换到root,提示su: Authentication failure,怎么办?
需要先 sudo passwd root 一次,下次再su就OK了。
4.Linux权限管理
权限的本质是能或者不能做什么事情,权限的存在是为了控制用户的行为,防止错误的发生。权限首先限制的是访问者,权限要求目标具备对应的属性。权限 = 访问者 + 目标权限属性。Linux下一切皆文件,目标对象全是文件!
4.1文件访问者的分类
1.文件和文件目录的所有者:u -- User
2.文件和文件目录的所有者所在的组的用户 : g -- Group
3.其他用户:o --Other
4.2文件类型和访问权限(事物属性)
1.文件类型
知识点1:
Linux多用户之间的隔离:每个用户在/home目录下都有一个属于自己的家目录,每个人的家目录对other都没有权限,任何用户无法进入其他用户的家目录,所以实现了多用户之间的隔离。
4.3文件权限值的表示方式
1.字符表示方法
2. 8进制数值表示方法
4.4文件访问权限的相关设置方法
4.4.1chmod
功能:设置文件的访问权限。
格式:chmod [参数] 权限 文件名
常用选项:
R:递归修改目录文件的权限
说明:只有文件的拥有者和root才可以改变文件的权限。
1.chmod命令权限值的格式
a.用户表示符 +/-/=权限字符
+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
知识点1:
用户只能更改自己文件的权限。知识点2:某用户没有某一个文件相应的(r/w/x)权限系统会拒绝让该用户对该文件进行某一相应的操作。知识点3:用户访问者在确定身份时,只确定一次,顺序是:拥有者、所属组、other
上述例子 csq 作为xiaoc.txt该文件的拥有者以及所属组成员,但是该文件的拥有者没有w权限,csq用户不能对该文件进行写操作,因为当前csq已经被匹配成该文件的拥有者了,拥有者没有w权限,虽然csq也是该文件所属组的成员,但是身份确认只确认一次,确认为拥有者就不会再确认为所属组成员了。
知识点4:
root不受权限约束。知识点5:
可执行权限 != 文件可以执行
只有文件本身可执行并且拥有可执行权限才能执行。
4.4.2chown
功能:修改文件的拥有者
格式:chown [参数] 用户名 文件名
知识点1:
系统默认不允许我们把文件给别人,想给别人必须要高权限。(修改所属组也需要高权限)
知识点2:
chown 拥有者:所属组 文件名
上述命令可以同时修改一个文件的拥有者胡所属组。
4.4.3chgrp
功能:修改文件或目录的所属组
格式:chgrp [参数] 用户组名 文件名
常用选项:-R 递归修改文件或目录的所属组
4.4.4unask
功能:查看或修改文件掩码。新建普通文件默认权限=0666,新建目录默认权限=0777。
语法:unask 权限值
说明:将默认权限去掉(这里不是单独的减法,如果默认权限是555,权限掩码是002,默认权限本来就是没有w权限,所以这里权限掩码也没有起到作用,新建文件的权限还是555)权限掩码对应的权限后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002.
注:umask是内存级的,重启之后会根据系统的配置文件进行恢复。
知识点1:
凡是在umask中出现的权限,就是不希望在预设权限中出现的权限。
知识点2:
umask的意义:默认权限是OS自主决定的,无法在创建前进行修改 -- umask使新建文件的预设权限可配置,是可以灵活满足需要的一种表现。
4.4.5粘滞位
这里有一个需求,需要多用户对同一文件进行协作。所以现在不能把该文件放在某一用户的家目录下,必须放在共享目录下,在根目录下有一个tmp目录就是充当这个共享目录的。但是现在需求是只有拥有者能删除该目录下的自己创建的文件。但是tmp目录对于other的也有w权限,其他用户也能删除,所以为了解决该问题,引入了一个粘滞位的概念,给该共享目录加上一个粘滞位,就可以防止非拥有者删除对于的文件。
chmod +t /tmp //加上粘滞位
chmod -t /tmp //去掉粘滞位
特征:只能给需要共享的目录添加粘滞位。
当一个目录被设置为"粘滞位",则该目录下的文件只能由:
1.root删除。
2.该目录的所有者删除。
3.该文件的所有者删除。