专栏:Linux
个人主页:HaiFan.
本章为大家带来用户的权限的讲解
用户的权限
- Linux权限的概念
- 权限的三类对象
- 权限的三种类型
- 权限设置chmod/chown/chgrp
- 更改权限chmod
- chown
- chgrp
- umask
- 目录的权限
- 粘滞位
Linux权限的概念
Linux下有两种用户:超级用户(root),普通用户
- root:可以在linux下做任何事情,不受任何限制。
- 普通用户:在Linux下做有限的事情。
在Linux中,输入指令的时候,前面都有一个符号(#or$),前者是root的命令提示符,后者是普通用户的提示符。
可以通过su [用户名]来切换用户(切换为root用户的时候可以直接su -或者su root(root可以省略)),此时系统会进入root用户的口令。
直接su的话呢,在进入超级用户pwd后和进入root之前是一样的
su -的话,进入rootpwd后,是不同的
权限的三类对象
- 属主:u(user)
- 属组:g(group)
- 其他人:o(other)
- 特殊对象:所有人:a(u+g+o) a->(ALL:全部)
权限的三种类型
- 读:r = 4 — read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
- 写:w = 2 — write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
- 执行:x = 1 — execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
- -表示不具有该项权限
1.cpp文件中,第一位是一个 -,它代表的意思是普通文件。
- d:文件夹
- -:普通文件
- l:软连接(类似于windows中的快捷方式)
- b:块设备文件(如硬盘,光驱等)
- p:管道设备
- c:字符设备文件
- s:套接口文件
-后跟的有rw-rw-r–,这个可以三三分开,前三位代表文件所有者的权限,中三位代表文件所属用户组的权限,后三位代表其他用户权限。
权限只有两种情况,有或者无,有的话该位置就用r/w/x字母表示,无的话就用-表示
1表示的是连接数
后面的两个sxk,第一个表示所属用户,第二个表示所属用户组
在后面的112就是文件大小
然后就是文件最新修改日期和文件名称
权限设置chmod/chown/chgrp
更改权限chmod
功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名
选项:
- R-> 递归修改目录文件的权限
- 说明:只有文件的拥有者和roor才可以改变用户的权限
用户表示符+/-=权限字符
- +:向权限范围增加权限代号所表示的权限—假如该文件的拥有者权限是rw-,在使用chmod u+=x之后,拥有者权限会变成rwx
- -:向权限范围取消权限代号所表示的权限—道理同上
- =:向权限范围赋予权限代号所表示的权限 – 假如该文件的拥有者权限是rw-,在使用chmod u+=x之后,拥有者权限会变成–x
用户符号:
- u:拥有者
- g:拥有者同组用
- o:其它用户
- a:所有用户 — 比如 chmod 664 文件名字 可以将文件的拥有者权限,所属组权限,其他人权限改为rw-rw-r–
chown
功能:更改文件的拥有者
格式:chown [参数] 用户名 文件名
chgrp
功能:修改文件或目录的所属组
格式:chgrp [参数] 用户组名 文件名
- -R 递归修改文件或目录所属组
umask
umask
功能:
查看或修改文件掩码
新建文件夹默认权限=0666
新建目录默认权限=0777
但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask
格式: umask 权限值
说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用
户默认为0002。
实例:
# umask 755
# umask //查看
# umask 044//设置
目录的权限
- x:如果目录没有可执行权限,则无法cd到目录中
- r:如果目录没有可读权限,则无法用ls等命令查看目录中的文件内容
- w:如果目录没有可写权限,则我发在目录中创建文件,也无法在目录中删除文件
那么,如果另一个用户也可以看到我的这个目录,只要有w权限,另一个用户就可以删除掉我的这个目录。
我先创建了一个目录,然后给这个目录的ugo权限都为7,然后使用另一个用户(A)进入我创建的这个目录one,并进去,ll之后可以看到我创建的two文件,A可以删除two文件。
B创建的文件凭什么被你A给删了。
对于这一问题,Linux引入了粘滞位这一概念。
粘滞位
chmod +t 目录/文件 #加上粘滞位
在我想用另一个用户去删除我创建的文件的时候,我先添加了粘滞位,将o的x权限变成了t,另一个用户在删除我的文件的时候,就会出现 Permission denied—没有权限
当一个目录被设置为粘滞位,则该目录下的文件只能由
- root删除
- 该目录的所有者删除
- 该文件的所有者删除