linux篇【2】:shell命令初步认识,Linux权限

目录

shell命令以及运行原理

1.shell外壳用途:

2.shell外壳形式:

3.外壳存在的最大意义:

shell和bash区别?

Linux权限————————————————————————

一.Linux中的具体用户的分类

 1.Linux下有两种用户:超级用户(root)、普通用户。

2.命令:su [用户名]

(1)

(2)小建议:

二.Linux中文件相关的权限概念

1.Linux系统不是以文件名后缀 区分文件类型的,而是通过 ll 显示的第一个字符区分文件类型的!

2.文件类型

(1)例1: -:普通文件   d:目录文件

三.Linux权限管理

1.文件访问者的分类(人)

2.Linux系统中,文件的权限属性,分:

3.文件权限值的表示方法

 文件信息的内容介绍

4.文件访问权限的相关设置方法

chmod

(1)例1:chmod u-r myfile.txt 删除权限操作

(2)例2:各种增加删除,部分增加删除权限的操作 chmod u+rx myfile.txt 

(3)例3:去掉权限

(4)例4:-a(all)或 chmod -r test.c 去掉全部读权限

 5.文件权限值的表示方法

(1)字符表示方法

 (2)权限的8进制表示

8进制数值表示方法

8进制数值表示方法 使用的例子:

6.更改文件的拥有者和所属组

(1)例1 :普通用户用sudo更改文件的拥有者(chown-更改文件的拥有者)

(2)同时改拥有者和所属组

​编辑

(3)例2:root超级用户随心所欲更改文件的拥有者

(4)root改所属组——chgrp-更改所属组    

7.目录的权限

1.如果我想进入一个目录,需要什么权限? (面试题)

2.linux下一切皆文件,目录也是文件

3.小疑问

8.umask-权限掩码

1.权限掩码:

2.规则:

3.使用示例:

4.umask可以被修改

 四.粘滞位 chmod +t 文件


shell命令以及运行原理

Linux 严格意义上说的是一个操作系统,我们称之为 核心( kernel ,但我们一般用户,不能直接使用 kernel
而是通过 kernel 外壳 程序,也就是所谓的 shell ,来与 kernel 沟通。如何理解?为什么不能直接使用 kernel
从技术角度, Shell 的最简单定义:命令行解释器( command Interpreter )主要包含:
将使用者的命令翻译给核心( kernel )处理。
同时,将核心的处理结果翻译给使用者。
对比 windows GUI ,我们操作 windows 不是直接操作 windows 内核,而是通过图形接口,点击,从而完成我们的操作(比如进入D 盘的操作,我们通常是双击 D 盘盘符 . 或者运行起来一个应用程序)。
shell 对于 Linux ,有相同的作用,主要是对我们的指令进行解析,解析指令给 Linux 内核。反馈结果在通过内核运行出结果,通过shell 解析给用户。
帮助理解:如果说你是一个闷骚且害羞的程序员(用户),那 shell 就像王婆,操作系统内核就是你们村头漂亮的且有让你心动的小花(内核)。你看上了小花,但是不好意思直接表白,那就让你家人找王婆帮你提亲,所有的事情你都直接跟王婆沟通,由王婆转达你的意思给小花,王婆对应我们常使用的 bash

1.shell外壳用途:

将使用者的命令翻译给核心(kernel) 处理。同时,将核心的处理结果翻译给使用者。
 
传递用户指令,交给OS操作系统,OS执行完毕,结果交给shell,shell再 交给用户命令行解释器!

2.shell外壳形式:

Linux中,外壳就是命令行解释器
windows下,外壳指的就是图形化界面
 

3.外壳存在的最大意义:

shell降低操作OS的成本(降低找女朋友的成本)
(次要的意义:外壳保护OS系统)
我们centos7常用的命令行解释器(shell),叫做bash

shell和bash区别?

shell——媒婆(统称)
bash——王婆(具体的版本种类)

Linux权限————————————————————————

一.Linux中的具体用户的分类

 1.Linux下有两种用户:超级用户(root)、普通用户。

超级用户:可以再 linux 系统下做任何事情,不受限制
普通用户:在 linux 下做有限的事情。
超级用户的命令提示符是 “#” ,普通用户的命令提示符是 “$”

2.命令su [用户名]

功能 :切换用户。
 

(1)

退出:热键ctrl+d或exit可切换回原来的用户

(2)小建议:

root 和 linux 下任何一个用户,都要设置密码!记住:不要把root密码和普通用户的密码设置
成为一样的(建议)

二.Linux中文件相关的权限概念

1.Linux系统不是以文件名后缀 区分文件类型的,而是通过 ll 显示的第一个字符区分文件类型的!

2.文件类型

-:普通文件,文本,源代码,可执行程序,第三方动静态库等
d:目录文件
l: 链接文件
p:管道文件
b:块设备文件,磁盘
c:字符设备文件
 
终端(物理,显示器,抽象xhell )
mv test. c test. txt 把 test. c 改名 test.txt 后 gcc不认识这个文件,Linux系统不是以文件名后缀 区分文件类型, 那为什么这个就“区分”了呢?
答:linux不是以文件名后缀 区分文件类型 ,不代表gcc这种编译器不做要求, gcc ≠ linux,gcc是Linux上面使用的一个编译器工具/软件,是软件自己的特殊需求导致

(1)例1: -:普通文件   d:目录文件

 (2)例2:l: 链接文件  p:管道文件   b:块设备文件,磁盘

三.Linux权限管理

(1)什么是权限?:1.约束人的(对人进行分类)   2.需要对应的事物具有特定的属性
一>Linux上,对文件的权限_:这个文件谁能”访问“,这个文件谁不能”访问“。对应的文件应该具的
某种属性:r,w,执行x(这些属性只是约束普通用户的,对root超级用户不起任何约束

(2)权限=人+事物属性
所以权限的概念以及操作,都是围绕着人和文件属性展开的!

1.文件访问者的分类(人)

1.文件的拥有者,owner
2. 文件的所属组,grouper
3.文件的其他用户,other
 

2.Linux系统中,文件的权限属性,分:

1. r
2. w
3. x(可执行)

i. 读( r/4 ): Read 对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
ii. 写( w/2 ): Write 对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
iii. 执行( x/1 ): execute 对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
iv.“—” 表示不具有该项权限

3.文件权限值的表示方法

顺序:r w x :可读 可写 可执行

不可读,不可写,不可执行 就分别用 - 替代

例如-wx就是不可读,但可写可执行

 文件信息的内容介绍

rwx三个三个为一组,顺序不可变

 

文件类型:

-:普通文件,文本,源代码,可执行程序,第三方动静态库等
d:目录文件
l: 链接文件
p:管道文件
b:块设备文件,磁盘
c:字符设备文件

4.文件访问权限的相关设置方法

chmod

功能: 设置文件的访问权限
格式: chmod [ 参数 ] 权限 文件名
用户表示符+/-=权限字符
+:        向权限范围增加权限代号所表示的权限        
-:        向权限范围取消权限代号所表示的权限
=:        向权限范围赋予权限代号所表示的权限
用户符号:  
        u:拥有者(us)
        g:所属组(group)
        o:其它用户(other)
        a:所有用户(all)        r 可读权限        w 可写权限        x 可执行权限

(1)例1:chmod u-r myfile.txt 删除权限操作

(2)例2:各种增加删除,部分增加删除权限的操作 chmod u+rx myfile.txt 

在信息里面可以看到

(3)例3:去掉权限

(4)例4:-a(all)或 chmod -r test.c 去掉全部读权限

chmod a=r myfile.txt 统一改变所有人都成为只读权限

 chmod -r test.c 去掉全部读权限

 5.文件权限值的表示方法

(1)字符表示方法

 (2)权限的8进制表示

可读,可写,可执行 三种权限 r,w,x分为有或无两态 例如:读权限“有”是“r”,“无”是“-”。

用8进制表示有为1,无为0。r w x ——>1 1 1 ——>八进制 ——> 7 ,例如:owner ——> 5 ——>
101 ——>r - x 。有 拥有者,所属组,其他 三个人,需要3个八进制位来表示

八进制看做成为2进制,对应上我们的权限。

范围:八进制 ——> [000, 111] ——> [0-7]

8进制数值表示方法

8进制数值表示方法 使用的例子:

chomd 777 myfile.txt :将权限改为777,7——>(转为8进制)111——>代表 r w x(可读,可写,可执行权限)——>777: 拥有者(可读,可写,可执行),所属组(可读,可写,可执行), 其他(可读,可写,可执行)——> rwxrwxrwx

6.更改文件的拥有者和所属组

1.当你想给别人东西的时候,要不要经过别人的同意呢? ?

答:需要。但是可以拿超级用户权限强权给文件。
2.文件的创建者和文件的拥有者一定是同一个人吗?
答:通常是,但不一定(农民工建房是创建者但不是拥有者)

(1)例1 :普通用户用sudo更改文件的拥有者(chown-更改文件的拥有者)

sudo:提升权限:以root的身份去运行程序chown !(相当于拿root权限强压着给别人,即用root强压着更改文件拥有者)
我们现在的系统执行sudo会报错,学完vim即可解决(信任列表配置文件)

(2)同时改拥有者和所属组

(3)例2:root超级用户随心所欲更改文件的拥有者

 不用加sudo即可更改拥有者(拿root权限强压着给别人,即用root强压着更改文件拥有者)

(4)root改所属组——chgrp-更改所属组    

7.目录的权限

1.如果我想进入一个目录,需要什么权限? (面试题)

——答:x权限

(2)如果目录只没有r权限,允许进入,允许在该目录下创建(写入)一个文件,但不允许查看
(3)如果目录只没有w权限,允许进入,允许在该目录下查看文件列表,但是不允许创建文件
(4)如果同时没有r w权限,允许进入,但是不允许创建和查看目录下的文件列表(注意:不是文件内容! ! !文件的内容,是否可以查看,由文件自己的权限决定! ! ) 

2.linux下一切皆文件,目录也是文件


文件(目录)= 内容+属性
属性:drw-rwxr-x 2 whb whb 4096 Jun 30 19:30 dir 这些都是文件或者目录的属性
目录的内容:目录里面保存的是部分文件的 “属性”
                                                              包括文件名等等

3.小疑问

(1)
目录没有r权限不能查看文件列表,但是如果我知道目录下一个文件的文件名而且这个文件有 r 权限的话,就可以读这个文件吗?
答:原则上是读不到的。你想访问文件,前提是不是你得先找到它? ? Linux中我们是如何找到这个文件的呢?通过路径! 路径是在文件的内容里面的,目录没有r权限,不能看目录的内容,也就找不到文件的路径。所以就算目录里的文件有r权限也无法查看。
特殊情况:

下面的例子我们发现目录dir没有r权限,确实无法访问文件列表,但是我们记住了hello.txt这个名字以后,直接cat  hello.txt 竟然能打印出来,原因是:

文件名和id之间是有对应的映射关系的,有可能被系统缓存了

8.umask-权限掩码

权限掩码的作用:是根据用户的需求屏蔽掉不希望给别人的权限,比如默认umask=0002,就是希望把other的写权限屏蔽掉

为何我们创建目录的默认权限是这个样子的: 775,为何我们创建的普通文件的默认权限是 664  (不同系统可能有差异)
 

1.权限掩码:

umask=0002(第一个0类似于16进制的0x,是一个标识)后面的002是8进制。

2.规则:

①默认目录的起始权限: 777
②默认普通文件的权限: 666 

③默认权限!= 最终权限           

凡是在权限掩码中出现的权限都不应该在最终权限中出现! 即:

最终权限=默认权限 &(~umask)

3.使用示例:

umask=002转成二进制:000 000 010,取反:~umask:111 111 101

已知默认目录的起始权限: 777:二进制:111 111 111

111 111 111——目录默认权限

111 111 101——~umask

相与&:111 111 101  ——>775

已知默认文件的起始权限: 666:二进制:110 110 110

110 110 110——文件默认权限

111 111 101——~umask

相与&:110 110 100  ——>664

4.umask可以被修改

umask=000时(十进制),所有的目录和文件权限都是默认权限777或666

umask=777时(十进制),所有的目录和文件权限都是无任何权限:--- --- ---

 四.粘滞位 chmod +t 文件

操作:chmod +t 文件

当一个目录被设置为 " 粘滞位 "( chmod +t), 则该目录下的文件只能由
一、超级管理员删除
二、该目录的所有者删除
三、该文件的所有者删除、

Linux下可以存在一些目录,拥有者和所属组是root,其他人允许以other的身份
在该目录下进行文件的创建,读取,删除,修改等!
 

在一个共享目录下,你不让我写,不让我读,,但防不住我删除!(即:共享目录下,other用户可以设置自己的权限不让别人读写,但是别人能随意删你的文件)

如果我还想在共享目录下,形成临时文件,但是,不允许除了我之外的人删除!
——需要给共享的<目录>加上粘滞位! x变成t

 这样,在共享目录下,other就不能互删文件了,但是root和文件拥有者还是可以删这个文件的。

  • 19
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 20
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值