什么是权限
在Linux下有两种用户,分别是超级用户(root)和普通用户。超级用户可以在Linux下做任何事情,几乎不受限制,而普通用户一般只能在自己的工作目录下(/home/xxx)工作,以及在系统上做有限的工作。
换句话来说,所有的权限的概念都是用来限制普通用户的,而超级用户几乎不受限制。
超级用户的命令提示符是"#"
普通用户的命令提示符事"$"
cpp
通过 su -用户名 可以进行用户之间的切换
注意:
1)从普通账号切换为root账号时,指令当中的root可省略,因为root账号只有一个。
2)该指令也可以从一个普通用户切换为另一个普通用户,输入待切换用户的账号密码即可。
3)切换用户后,若想切回上次的用户,可通过Ctrl+D实现
linux下文件属性--权限属性
文件类型
|--------|---------------------|
| 符号 | 文件类型 |
| d | 文件夹 |
| - | 普通文件 |
| l | 软链接(类似Windows的快捷方式) |
| b | 块设备文件(例如硬盘、光驱等) |
| p | 管道文件 |
| c | 字符设备文件(例如屏幕等串口设备) |
| s | 套接口文件 |
基本权限
|-------------------|--------------------------------------------|
| i.读(r/4) | Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限 |
| ii.写(w/2) | Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限 |
| iii.执行(x/1) | execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限 |
| iv."---"表示不具有该项权限 | |
linux下用户角色
文件访问者的分类(人)
文件和文件目录的所有者:u---User
文件和文件目录的所有者所在的组的用户:g---Group
其它用户:o---Others
1)对于某一文件而言,其拥有者、所属组和other就是由超级用户(root)和普通用户所扮演。
2)在Linux当中,所有用户都要隶属于某一个组,哪怕这个组只有你一个人(此时该组就以你的用户名为组名)。
3)除了所有者和组用户以外的用户都是others
linux下权限的操作
针对rwx--文件属性
字符选项的方式
若是具有可读属性,则第一个位置的字符为r;若是具有可写属性,则第二个位置的字符为w;
若是具有可执行属性,则第三个位置的字符为x。若某一位置为字符 - ,则说明不具有对应位置的属性
八进制方案
文件访问权限的相关设置方法
a)chmod
|----------|-------------------------|
| 功能 | 设置文件的访问权限 |
| 格式 | chmod [参数] 权限 文件名 |
| 常用选项 | R -> 递归修改目录文件的权限 |
| 说明 | 只有文件的拥有者和root才可以改变文件的权限 |
格式:
|--------|-----------------------|----------|-------------|
| 符号 | 功能 | 用户符号 | |
| + | 向权限范围增加权限代号所表示的权限 | u | 拥有者 |
| - | 向权限范围取消权限代号所表示的权限 | g | 拥有者同组用户 |
| = | 向权限范围赋予权限代号所表示的权限 | o | 其它用户 |
| | | a | 所有用户 |
1)加 rwx符号
bash
chmod u+w /home/abc.txt
chmod o-x /home/abc.txt
2)三位8进制数字
bash
chmod 664 /home/abc.txt
chmod 640 /home/abc.txt
b)chowm
|--------|----------------------|
| 功能 | 修改文件的拥有者 |
| 格式 | chown [参数] 用户名 文件名 |
实例:
bash
chown user1 f1
chown -R user1 filegroup1比
c)chgrp
|----------|-----------------------|
| 功能 | 修改文件或目录的所属组 |
| 格式 | chgrp [参数] 用户组名 文件名 |
| 常用选项 | -R 递归修改文件或目录的所属组 |
实例:
bash
sudo chgrp root data.txt
注意: 修改文件的所属组也需要进行权限提升。
umask--默认权限
功能:
1)查看或修改文件掩码
2)新建文件夹默认权限=0666
2)新建目录默认权限=0777
但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权是:mask&~umask
|--------|-----------------------------------------------------------|
| 格式 | umask 权限值 |
| 说明 | 将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002。 |
粘滞位
大家共享一个目录,通常是root的,开放了所有的权限
目录权限
可执行权限: 如果目录没有可执行权限, 则无法cd到目录中.
可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.
可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件.
所以==>
就是只要用户具有目录的写权限 , 用户就可以删除目录中的文件 , 而不论这个用户是否有这个文件的写权限.???这样好像不太安全的样子。所以我们设置出来粘滞位来解决这一问题
给目录设置粘滞位 -- chmod+t
添加粘滞位后,文件夹只能由以下三种人删除
(1)超级管理员删除 (2)该目录的所有者删除(3)该文件的所有者删除
注意: 虽然目录被加上了粘滞位,但如果用户有该目录的可写权限,则不影响其在该目录下创建文件