Linux基础权限
- shell的概念
- Linux基础权限
- Linux的两种用户
- Linux的权限管理
- 权限认知
- 权限设置
- 权限掩码
- 粘滞位
shell的概念
(shell)命令行解释器 的存在意义:
- 将用户的命令翻译给操作系统,然后返回OS的结果给用户;
- 保护OS,拦截用户的非法请求。
概念的区分:
命令行解释器 相当于 Windows的图形化界面,
Shell 是解释器的统称,bash/sh 都是具体的解释器。
Linux基础权限
Linux的两种用户
Linux下有两种用户: 超级用户 ( root) 、普通用户。
超级用户: 可以在 Linux系统下做任何事情,基本不受限制。
普通用户: 只能在Linux下做有限的事情。
超级用户的命令提示符是“#”, 普通用户的命令提示符是“$”。
账户切换:
su/su - 登录root <—> eixt/ ctrl+d 退出su的登录
su 直接切换用户并保持原shell环境,而 su - 则是完全模拟一个新的登录会话。
对单独一条命令进行提权:sudo + 命令 - - - - 以root身份执行这条命令(要输入普通用户的密码,但该用户需要被root加入信任白名单中)
Linux的权限管理
权限认知
文件权限身份:
- 文件和文件目录的所有者: u — User
- 文件和文件目录的拥有者所属组的用户: g — Group
- 其它用户: o — Others
文件类型和访问权限:
-
访问权限:
-
文件类型:
文件权限及值的表示:
- 读 ( r ):read 具有读取该文件内容 和 浏览该目录信息的权限;
- 写( w ):write 具有修改文件内容 和 删除/移动目录内文件的权限;
- 执行( x ):execute 具有执行文件 和 进入目录的权限;
- “一” :表示不具有该项权限。
权限设置
chmod指令:
功能:设置文件的访问权限。
语法:chmod [选项] 权限 文件名
常用选项;
-R 递归修改目录文件的权限
说明: 只有文件的拥有者和 root才可以改变文件的权限
chmod命令权限值的格式:
①用户表示符+/-=权限字符
+:向权限范围增加指定权限
-:向权限范围删除指定权限
=:向权限范围赋予指定权限(赋予=>赋的权限覆盖原来的权限)
用户符号:
u: 拥有者
g: 所属组
o: 其它用户
a: 所有用户
实例:
chmod u+w /home/abc.txt
chmod o-x /home/abc.txt
chmod a=x /home/abc.txt
②三位8进制数字
实例:
chmo d 664 /home/abc.txt (三个数字分别指代u、g、o)
chmo d 640 /home/abc.txt
chown指令:
功能:修改文件的拥有者
语法:chown [参数] 用户名 文件名
实例:
chown user1 file1 //把f文件ile1的所有者给user1
chown -R user1 filegroup
chown cxt:cxt test.txt //同时修改所有者和所属组
chgrp指令:
功能:修改文件或目录的所属组
语法:chgrp [参数] 用户组名 文件名
常用选项: -R 递归修改文件或目录的所属组
说明:chown/chgrp 要具有root权限(或用sudo提权)才能使用成功。
权限掩码
权限掩码:凡是在权限掩码中出现的权限,不会出现在最终的文件权限中。
文件创建后呈现出的权限是 默认权限和权限掩码复合计算后得出的。
系统默认给普通文件的起始权限是666,默认给目录文件的起始权限是777。
umask:
功能:查看或修改文件掩码
语法:umask 权限值
说明:将现有的存取权限减去权限掩码后, 即可产生建立文件时预设权限。超级用户默认掩码值为0022, 普通用户默认为0002。
umask 有4个数字,其实是三个八进制数,第一个0代表数是八进制。
最终权限的计算方法是:默认权限的二进制数 按位与(按位取反 umask的二进制数)
最终权限 = 起始权限&(~umask)
实例:
umask //查看
umask 044 //设置
粘滞位
粘滞位出现的缘由:
在Linux中一个文件能否被删除,不由文件本身决定,而是由这个文件所处的目录决定。
对于一个具有w权限的共享目录,你的文件却可以被其他共享用户删除,但去掉目录的w权限,目录内任何人包括拥有者都无法创建文件了。
面对这个不合理的现象,出现了粘滞位。
粘滞位:
给目录设置,一般是共享目录,共享成员只能对目录中的文件进行权限允许的操作,且只有文件拥有者或root能删除目录内的文件。
语法:chmod +t 目录名
实例:
chmod +t /home/