【Linux】Linux权限详解

什么是权限?
  在多用户计算机系统的管理中,权限是指某个特定的用户具有特定的系统资源使用权力,像是文件夹,特定系统指令的使用或存储量的限制。通常,系统管理员,或者在网络中的网络管理员,对某个特定资源的使用分配给用户不同的权限,系统软件则自动地强制执行这些权限。
在Linux系统下
  Linux系统下有两种用户,即:超级用户(root)和普通用户。
  超级用户:可以在Linux系统下不受限制地做任何事情。
  普通用户:可以在Linux系统下做有限的事情。
这里写图片描述
  超级用户root切换到普通用户user,则使用su user;从普通用户切换到超级用户,则使用su root(root可以省略),并提示输入root用户的密码。同时可以看到,超级用户的命令提示符是“#”,而普通用户的命令提示符是“$”。
  创建一个新的用户:useradd,此时文件/etc/passwd会多出一行内容:
这里写图片描述
设置密码:passwd,只能由root设置:
这里写图片描述
删除用户:userdel,删除之后,文件/etc/passwd 中少了一行
这里写图片描述
Linux权限管理
  文件或目录的访问者包括以下三类:
(1)文件和目录的所有者:u—User;
(2)文件和目录的所有者所在组的用户:g—Group;
(3)其他用户:o—Others。
  每个文件和目录都有访问许可权限,用它来确定谁能通过哪种方式对文件和目录进行访问和操作。文件或目录的访问权限分为以下三种:
(1)读(Read):r,对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限。
(2)写(Write):w,对文件而言,具有修改文件内容的权限;对目录来说,具有删除或移动目录内文件的权限。
(3)执行(Execute):x,对文件而言,具有执行文件的权限;对目录来说,具有进入该目录的权限。
这里写图片描述
  下面对红色方框中每组内容做一解释:
(1)文件拥有者的权限:
这里写图片描述
其中,“-”表示不具有该项权限。
(2)文件拥有者所属组的同组成员的权限:
这里写图片描述
(3)其他用户的权限:
这里写图片描述
(4)文件类型:
这里写图片描述
说到文件类型,在Linux系统下,共有7种文件类型:
①“-”:普通文件,指普通意义上的文件,如数据文件,可执行文件。本质上就是存储普通数据,一般为字符串。
②“d”:目录文件,本质上存储了一张表。
③“p”:管道文件,下面举个例子:
  在一个终端中创建一个管道文件pipe.p,并向其中写入一个字符串,然后再打开一个终端,查看管道文件pipe.p中的内容:
这里写图片描述
④“l”:软链接文件,又叫符号链接文件。这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。软链接文件只是其源文件的一个标记,当删除了源文件后,链接文件不能独立存在,虽然仍保留文件名,但却不能查看软链接文件的内容了。
  创建一个软链接文件:ln -s 已有文件名 新文件名
这里写图片描述
当删除源文件src后,已不能查看软链接文件的内容:
这里写图片描述
⑤“c”:字符设备文件,它以特别文件方式在文件目录树中占据位置并拥有相应的结点。
⑥“b”:块设备文件。
⑦“s”:socket文件,即套接字文件。
如何表示文件的权限值?有两种方法:字符表示法和八进制数值表示法。
  字符表示法
这里写图片描述
  八进制数值表示法
这里写图片描述
【注】对于目录:
有无“r”权限决定是否可以进行ls操作;
有无“w”权限决定是否可以进行创建操作;
有无“x”权限决定是否可以进行cd操作。
文件访问权限的相关设置
(1)设置文件的访问权限:chmod [参数] 权限 文件名
【注】只有文件的拥有者和root才可修改文件的权限
格式①:“chmod 用户符号+/-/=权限字符 文件名”
用户符号:
u:拥有者
g:拥有者的同组用户
o:其他用户
a:所有用户
“+”:表示向权限范围增加权限代号所表示的权限;
“-”:表示向权限范围取消权限代号所表示的权限;
“=”:表示向权限范围赋予权限代号所表示的权限;
下面,首先创建了三个普通文件,可见每个文件对于其拥有者无任何权限,对拥有者同组用户以及其他用户都是只有可写的权限:
这里写图片描述
现在,可以进行如下操作:
对文件t1.txt的拥有者增加可读权限,对文件t2.txt的拥有者的同组用户取消可写权限,对文件t3.txt的其他用户赋予可执行权限:
这里写图片描述
这里写图片描述
格式②:使用三位八进制数字
对上面的普通文件t2.txt进行权限的修改:
这里写图片描述
“7”表示拥有者具有可读可写可执行的权限;“2”表示拥有者的同组用户具有可写权限;“4”表示其他用户具有可读权限。(这样的方式可以覆盖该文件之前的权限)
这里写图片描述
(2)修改文件的拥有者:chown [参数] 用户名 文件名
(3)修改文件或目录的所属组:chgrp [参数] 用户组名 文件名
(4)查看或修改文件掩码:umask 权限值
这里写图片描述
【注】
①新建目录默认权限=0777 - 权限掩码;
②超级用户root创建文件默认掩码值为0022。
关于粘滞位
举个例子来说明一下:
  张三和李四都具有对同一目录的读写权限。该目录中包含文件zhangsan.c,张三把文件设置为只有自己能读写,其他人都读写不了,但是李四仍然可以将目录中的文件zhangsan.c删除。
  为了解决这一问题,就需要为该目录设置粘滞位。设置之后,虽然李四还是具有对该目录的读写权限,但他只能删除或移动他自己的文件,而不能删除或移动其他用户的文件。
  在实际应用中,粘滞位一般用于/tmp目录,以防止普通用户删除或移动其他用户的文件。
  设置粘滞位:chmod +t 目录
  当一个目录被设置了粘滞位,则该目录下的文件只能由以下三种人删除(或移动):
(1)超级用户root;
(2)该目录的所有者;
(3)所操作文件的所有者。

猜你喜欢

转载自blog.csdn.net/Sunshine_R9H15Chen/article/details/81880481