目录
1.用户
root:超级用户,在Linux中不受限制
普通用户:在Linux受限
命令: su (用户名),能够切换用户,需要输入用户密码。 sudo ... ,以root身份执行操作。
2.权限管理
1.访问者分类
文件和目录所有者:u - user
文件和文件目录的所有者所在的组的用户:g -- group
其他用户: o --- others
2.文件类型和权限
输入ll查看当前文件的详细信息。可以看到有test目录和copy.c文件的详细信息。
我们可以看到最左边有如下这样十个字符。
第一位表示文件类型。图中-表示普通文件,即copy.c是一个普通文件,d表示目录,即test是一个目录。
d:文件夹
-:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件
知道了第一位的含义后,看接下来9位,其中每三位表示一个访问者的权限,从左到右分别是拥有者user、同组用户group、其他人others。
每一个访问者中的三位从左到右表示,读、写、执行三种权限。当该位是 - 时,表示没有相应权限,否则就是有相应权限。如上图的user是rw-表示有读权限和写权限,第三位是-,则没有执行权限。同时也可以用8进制表示权限,0表示没有权限,1表示有权限。rw-二进制110,就表示位8进制6。
3.权限设置
1.chmod
chmod (参数) 权限 文件名
chmod o+w test //可将test的others的写权限加上
chmod 777 test //2进制为1全可将test三个访问权限都设置上
2.chown
chown (参数)用户名 文件名
修改文件的拥有者。
3.chgrp
chgrp (参数) 组名 文件名
修改文件的所属组。
4.umask
查看文件掩码。文件掩码中值为1,则默认权限中该位必须为0.
如假设默认权限为0666,二进制为110110110,文件掩码为0002 ,二进制位000000010。文件掩码中的第二位为1,则默认权限的第二位为0,那么其二进制为110110100。
新建文件夹默认权限=0666。新建目录默认权限=0777。超级用户默认掩码值为0022,普通用户默认为0002
4.粘滞位
1.目录权限
可执行权限: 如果目录没有可执行权限, 则无法cd到目录中 可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.
可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件
2.粘滞位
以上可知由于只要在目录中拥有写权限,就可以删除目录中的文件,那么由于一些原因我们想要别人有写权限,又不想让别人能够删除我们的文件,我们就可以把文件的other第三位执行位的权限字符为t,则others的权限为rwt,那么others能够在该目录中创建和删除自己的文件,但是不能删除其他拥有者的文件,即在该目录下,只能创建删除自己的文件。
chmod +t 目录,设置粘滞位。该目录中的文件只能由超级用户、文件拥有者、目录拥有者删除。