初识Linux系统编程(伍)-----权限的魅力(附面试常见问题,千字精品)

目录

 1.什么是权限?

1.1用户的划分

 1.2权限的提升

1.3权限的定义

1.4Linux下的权限----文件权限 

1.5查看文件权限 

Linux文件类型:

2.如何操作权限?

2.1设置文件属性----chmod

 2.2 设置文件所属角色----chown

2.3设置文件所属组---chgrp 

2.4以八进制修改文件属性

3.为什么要存在权限? 

 4.大厂面试题---umask


本篇将围绕权限三问进行详细介绍,带你一睹Linux下权限的魅力。

1.什么是权限? 

2.如何操作权限?

3.为什么要存在权限? 


 1.什么是权限?

1.1用户的划分

在介绍权限这个概念之前,我们首先需要对Linux下用户概念进行一定的了解。

在Linux 下有两种用户:超级用户( root )、普通用户。
超级用户:可以在linux系统下做任何事情,不受限制
普通用户:在linux下做有限的事情
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”
命令 su [ 用户名 ]
功能 :切换用户
例如,要从 root 用户切换到普通用户 user ,则使用 su user 。 要从普通用户 user 切换到 root 用户则使用 su root( root 可以省略),此时系统会提示输入 root 用户的口令。
演示

 注意:我这里是将第二个用户起名为user,不是说su 后一定跟user


 1.2权限的提升

既然Linux下有权限的划分,那当我们想保持自身身份但又想以较高权限执行时该怎么办呢?

我们可以使用sudo来进行短暂提权,当sudo在第一次使用过后,在10-15分钟之内(时间长短并不固定)将不用再输入密码。

但是有的小伙伴可能会存在某些疑问,为什么提权的时候要输入自己当前用户的密码?

这其实是对你身份的一种验证,确保你是系统信任的用户,否则将会拒绝你的请求。所以在使用sudo的前提是,你已被添加进入/etc/sudoers中。


1.3权限的定义

权限:一件事情是否允许被谁做

权限有两个关键词------谁与做,对于谁:权限是约束人的(一个或者某些群体);对于做:目标对象有没有对应的属性或义务(如在电影网站做oj题)  


1.4Linux下的权限----文件权限 

在Linux下,我们更多所谈到的权限是文件权限。

那么什么是文件权限?

文件权限=人(角色)+ 属性(读,写,执行)

人的三种身份:拥有者(owner)所属组(grouper)其他人(other)

属性的三种类型:读操作(r)写操作(w)执行操作(x)


1.5查看文件权限 

对文件采用ll指令

第一个root是拥有者,root是拥有者的姓名

第二个root是所属组,root是所属组的名字

左边十个字符:

(1)   -  代表文件类型

(2-4)   rw-  代表拥有者权限

(5-7)   r--   代表所属组权限

(8-10)   r--   代表其他人权限


!!!Linux区分文件类型与后缀没有关系!!!

!!!gcc等编译工具可能对后缀有要求!!  !

通过ll显示的众多属性列中的第一列的第一个字符区分文件类型

Linux文件类型:

-:普通文件(源代码,库文件,可执行程序,文档压缩包等)

d:目录文件

c:字符设备文件(键盘,显示屏等)

b:块设备

l:链接文件(快捷方式)

p:管道文件

s:socket文件


以拥有者权限(三三为一组)为例:

rwx分别代表读写执行权限,有相应权限则为对应字符,无则以-来代替。


2.如何操作权限?

2.1设置文件属性----chmod

语法:chmod ugo +- rwx方案

chmod a+- rwx方案(对所有角色进行相同操作)

演示:

操作权限:root或文件拥有者


如果某种文件权限对于拥有者不放开,但对于所属组放开,而你作为拥有者且属于所属组能不能访问?

答案是不可以,只有当你不符合拥有者条件时才会去匹配你是否属于所属组。


 2.2 设置文件所属角色----chown

语法:chown 用户 文件

演示:


注意:chown  用户 : 所属组  文件       可以一并更改所属组


2.3设置文件所属组---chgrp 

语法: chgrp 所属组 文件

演示:

  

2.4以八进制修改文件属性

rwx  有是1,无是0  故rwx对应111  八进制为7

故rwxrwxrwx对应777

演示:


3.为什么要存在权限? 

便于系统进行安全管理


这里穿插一个小指令----file   查看文件类型

 

 4.大厂面试题---umask

1.为什么我们创建的目录或者普通文件,默认权限是我们所看到的样子?

Linux下规定:

目录文件起始权限为777

普通文件起始权限为666

在起始权限之外,还有一个umask-----权限掩码

在这四个数字中,只关注后三位,第一位0可以认为其代表8进制

系统会默认配置好umask

权限掩码:凡是在umask中出现的权限,必须在起始权限中去掉


--------------------              最终权限=起始权限&(~umask)           ------------------

例如:

test.txt  起始权限 666  即110-110-110

umask  022 即  000-010-010

~umask   111-101-101

test.txt&(~umask)    110-100-100  644 即rw-r--r--

但是我们可以有更简单的记忆方法:

那就是回归权限掩码本身(凡是在umask中出现的权限,必须在起始权限中去掉),那么对于原本是0的不用更改,原本是1的,如果对应是1则置为0.

更通俗的来说就是:对起始权限中1做按位异或,对0做按位与

2.如果我们进入一个目录,需要什么权限? 

对于目录来说:

r权限:不能进行ls ll等读操作

w权限:不能进行touch mkdir等写操作

x权限:不能进行cd等执行操作

因此,目录默认权限777,一般都要包含上述操作

文件默认权限666,因为大部分文件不能执行,你需要自己加上即可。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值