Linux下有两种用户
超级用户(root)、普通用户:
- 超级用户:可以再linux系统下做任何事情,不受限制
- 普通用户:在linux下做有限的事情。
- 超级用户的命令提示符是"#",普通用户的命令提示符是"$"
**命令:**su [用户名]
**功能:**切换用户。例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的口令
如何 让普通用户也能使用不属于他的权限呢?这就要看sudo指令了!!!!
**现在有一个场景:**安装一个软件需要root权限,但是仅root安装其实就安装了一份;如果其他用户也想安装呢?
sudo指令
sudo就是进行短暂的提权的;
**格式:**sudo 指令
可以让 普通用户也能使用超级用户的权利
若使用时出现这种问题
解决办法:
什么是权限
- 能 或者 不能做什么
- 权限可以控制用户的行为,能预防错误的事件发生;
如何理解
- 权限 = 角色 + 目标属性
- 权限首先就是 角色的权限
- 权限的前提是 权限对应的目标 具有 能完成 某种行为的属性
角色分类
- 拥有者
- 所属组
- other
拥有者 所属组 other 到底是什么?
拥有者: 就是具体的人; **所属组:**就是具体的人的角色
**other:**就是 除 拥有者 所属组 之外的;
为什么文件属性中 不显示 other
只要不是 拥有者 所属组 就是 other; 只需对比一下即可,不用记录;
什么是所属组?为什么要存在所属组
如果要精细的权限划分,那么就得有更精细的身份角色;
李四手里有一个code.c 项目,要给老板开启权限。
Linux多用户之间是怎么相互"隔离"的?
除了,超级用户root,其他普通用户都没有进入其他用户目录的权限;
那么如果,不同用户要同时修改一个文件呢?那就得看文件的权限了,这也和三个组别相关;
文件权限
文件类型:(目前还是以 d - 文件类型为主的)
- d:文件夹(目录)
- -:普通文件
- l:软链接(类似Windows的快捷方式)
- b:块设备文件(例如硬盘、光驱等)
- p:管道文件
- c:字符设备文件(例如屏幕等串口设备)
- s:套接口文件
基本权限理解:
- 读(r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
- 写(w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
- 执行(x/1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
- "---"表示不具有该项权限
权限的修改
chmod
**功能:**设置文件的访问权限
**格式:**chmod [参数] 权限 文件名
常用选项:
- R -> 递归修改目录文件的权限
- 说明:只有文件的拥有者和root才可以改变文件的权限
chmod命令权限值的格式:( 用户表示符+/-=权限字符)
- +:向权限范围增加权限代号所表示的权限
- -:向权限范围取消权限代号所表示的权限
- =:向权限范围赋予权限代号所表示的权限
用户符号:
- u:拥有者
- g:拥有者同组用
- o:其它用户
- a:所有用户
chmod八进制改变权限
**格式:**chmod 数数数 文件
注意部分:
- 能改任何人的权限吗? 只有文件的拥有者和root才可以改变文件的权限
- 没有权限会怎么样? 系统会拒绝我们的访问。
- 确定信息时,系统会先确定的用户是什么?拥有者,所属组,other?
比如root 他是所属组还是 拥有者?
在Centos下,系统是按照拥有者,所属组,other 的顺序来的;
而且用户角色的确定,只会确定一次;
- root用户的权限? root是权限,不受约束?
root就类似一个总管理者
- 如何理解可执行?
可执行权限 != 文件可以执行 (机会 != 能力)
- 权限的前提是 权限对应的目标 具有 能完成 某种行为的属性
- 文件 有可执行权限,但目录没有给你权限让你进入,
chgrp / chown
chown
- **功能:**修改文件的拥有者
- **格式:**chown [参数] 用户名 文件名
chgrp
- **功能:**修改文件或目录的所属组
- **格式:**chgrp [参数] 用户组名 文件名
系统默认我们不能把文件给别人
(这种要求是合理,不然乱给文件就乱了)
如果要给别人,必须提权,要么sudo 要么切换到 root
目录的权限理解
可以思考一下,rwx 对应目录来说是意味着什么?
- 如果要进入一个目录需要权限 x
- 如果权限没有r,就无法查看目录的文件
- 如果没有w,就无法在目录中创造文件
注意:
- 因此默认情况下,创建一个目录。rwx权限都要有
- 且一个文件是否能被删除,与文件内容本身无关,与目录的w 相关
文件权限缺省问题
一般来说:
- 普通文件的起始权限是 666,默认是不带执行权限的;
- 目录文件的起始权限是 777,默认是什么权限都有的;
但为什么:
这是因为系统默认有一个权限掩码的概念
最终的起始权限 = 起始权限 & (~umask)
不想让起始有什么权限 就在umask 设置什么权限;经过这个转换就可以实现
**查看系统的 权限掩码:**umask
**修改:**umask 数数数
umask的目的是什么
凡是出现在umask的权限,都不应该在最终权限中出现;
为什么要有umask
- 默认权限是 是OS决定,我们无法在创建文件前修改;umask是系统配置的,可自我调节,是灵活满足我们的需求的一种表现;
- 特殊情况下,配置umask,可以让我们修改文件的默认权限,让我们的是可控的