目录
1、shell命令以及运行原理
Linux严格意义上来说是一个操作系统,我们称之为核心(kernel),但是我们用户一般不能直接使用kernel,而是通过kernel的外壳,也就是所谓的shell,来与kernel沟通,那么为什么不直接使用kernel呢?
从技术角度,shell的最简单定义:命令行解释器主要包括:
把使用者的命令传给kernel;
将kernel处理后的结果返回给使用者;
对比windows GUI ,我们并不是直接操作windows系统,而是通过图形接口,点击,从而完成我们的操作,shell对于linux也有相同的作用,shell解析指令给linux内核,计算结果通过shell传给用户;
2、Linux权限的概念
权限的本质是什么?
权限和人有关
权限和事物属性有关;
权限=人+事物属性;
Linux下有两种用户:超级用户(root)和普通用户;
超级用户可以在linux下做任何事情,不受限制,
普通用户在linux下做有限的事情;
root创建普通用户
root用户可以创建普通用户;
1. adduser+要创建的用户名
2.passwd+创建的用户名
3.设置密码
4.再次输入密码
注意: adduer 和用户名之间用空格隔开, passwd和用户名之间也是一样,用空格隔开;
输入密码时没有回显,不要设置的太简单,用数字加字母的方法比较安全,有可能密码太简单创建不成功;
root切到普通用户
命令: su 用户名
注意:root的命令提示符是#结尾;普通用户的命令提示符用$结尾;
我们还可以从普通用户切换到root用户,要输入root用户的密码;
或者我们可以直接输入 su 然后回车,输入密码,就可以切换成root用户了;
3、Linux权限管理
1.文件访问者的分类
Linux中有三种角色:拥有者,所属组,other
linux具有组的概念,主要是在多人合作的时候有更好的权限管理;
比如用root用户创建一个文件,他的拥有者就是root,他默认的所属组就是root;而其他用户对这个文件的权限也不一样,可以更好的进行权限管理;
2.linux中文件的权限
文件的类型: -:普通文件 d:目录文件
文件的属性权限:
一般有三种,r是读权限,w是写权限,x是可执行权限;
每三个字母分别对应拥有者,所属组,other对该文件的权限;
那么如何修改权限呢?
第一种,修改权限的属性;
使用chmod命令可以修改文件角色对于文件的属性;
chmod u+-rwx,g+-rwx,o+-rwx,a+-rwx 文件名
u表示user,拥有者,g表示group,所属组,o表示other,其他,a表示all,所有;
而对于root用户,不受文件属性的限制,
对于root用户来说,即使是文件不让读写操作,root还是可以进行读写的,所以root用户的权限很高的;
chmod还可以用八进制修改文件的权限
我们把r w x 看做1,- 看做0 ,那么rwx rwx rwx 就可以写成111 111 111,换算成八进制就是777
所以,也可以这样修改;
权限存在的意义:保证普通用户文件的一般安全性;
当文件的拥有者和所属组的名字都是同一个用户,文件优先匹配拥有者,即对用户的身份只识别一次,
第二种,修改文件的拥有者;
但是修改文件的拥有者权限比较高,普通用户无法修改,所以先切换到root用户,再修改文件的拥有者;
chown 用户名 文件名 ——————————可以修改文件的拥有者
chgrp 用户名 文件名——————————可以修改文件的所属组
chown 用户名:所属组 文件名————————可以修改文件的拥有者和所属组
文件类型
-:表示普通文件
d:表示目录文件
b:表示块设备文件(如硬盘,光驱等)
c:字符设备文件
p:管道文件
l:是链接文件
我们最常接触的就是普通文件和目录文件了;
linux不以文件后缀作为区分文件的类型,但是并不代表linux里的工具不需要(比如,gcc);
所以我们在linux上的文件名可以使用文件后缀,也符合我们对文件的认知;
如何理解可执行权限和可执行?
可执行=可执行权限+可执行文件;
对于目录中的r w x的理解
目录r的权限,可以查看目录中文件的信息;
目录w的权限,可以修改,新建,删除目录中的文件;
目录x的权限,进入一个目录需要x的权限;
linux创建文件的时候有默认权限
创建的普通文件:起始权限是:0666(0表示八进制),去掉x的;
创建的目录文件:起始权限是:0777,包含x的;
但是我们看到的普通文件属性却是664;
这是因为linux中有个默认权限掩码umask ,一般默认是002(不同的服务器上也可能不一样);
文件的最终属性权限=起始权限&(~umask);
umask是可以修改的,如果想改变文件创建时的属性,可以修改umask;
4、问答
Q:为什么普通用户可以删除其他普通用户(包括root用户)的文件?
A:只要在我这个目录中,我有目录w的权限,就可以删除目录中的文件,和文件本身没有什么关系;
Q:如果想在linux下,由多个用户建立一个共享文件,大家都可以访问,怎么办?
A:在非用户目录下创建文件;