Linux权限管理

Posted 山舟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux权限管理相关的知识,希望对你有一定的参考价值。


一、用户

(1)超级用户和普通用户

Linux下有两种用户:超级用户(root)和普通用户。
超级用户(root):可以在自己的Linux系统下做任何事情,几乎没有限制。
普通用户:在自己的主工作目录(home)下做自己的工作以及在系统上做有限的工作,并且在进行一些操作时会受到权限的限制。

Linux是多用户操作系统,指的是多普通用户,超级用户(root)一般只有一个。Linux中的权限是用来限制普通用户的,超级用户(root)几乎没有限制。

超级用户(root)的命令提示符是’#’,而普通用户的命令提示符是’$’。



(2)用户之间的切换

切换用户需要用su命令,从普通用户切换至root用户要用su - ,且这时会提示输入root的密码,之后可以退出root回到普通用户;从root用户切换至普通用户user需要用su user。


如果只有某几条命令需要提升权限才能执行,这时可在命令前加上sudo,这样可以使该条命令在执行时提高权限而其它命令不受影响。


二、权限管理

1.文件访问者

文件和文件目录的所有者:u(user)
文件和文件目录的所有者所在的组的用户:g(group)
其它用户:o(others)

有了文件所属组可以更灵活的进行权限配置,满足团队协作的要求。
例:A、B两人在同一小组,A写出的文件只想给同组的B读、写,而不想给其它小组的人读、写。如果没有所属组,只有所有者和其它用户,那么这一需求就无法满足。有了所属组后,A可将文件所有者和文件所属组的权限设置为读写,去掉其它用户的所有权限。这样A、B就可以对文件读写,而其它用户(这个小组以外的人)无权访问。

文件所属组可以让文件所有者更灵活地进行权限配置,满足团队协作的要求。


2.文件属性

当用ll指令显示一个目录时,该指令会显示出每个文件的详细信息。


先以lesson3目录为例大概看一下每一部分的含义。

下面详细介绍文件名之前部分的含义。


(1)常见的文件类型

第一个字符为-:普通文件,可执行程序,库
第一个字符为d:目录
第一个字符为c:字符文件(如显示器、键盘)
第一个字符为b:块设备(如磁盘)
第一个字符为l:链接文件
第一个字符为p:管道文件


(2)文件权限

文件权限有四种:w(写)、r(读)、x(执行)、-(无对应位置的权限)。

具有可执行权限不一定可执行。


表示方法

权限在表示时从左到右的三个字符依次表示有无读权限、有无写权限、有无执行权限,若有,用r、w、x表示,若无,用-表示。

具体可看下表:

Linux表示含义
无任何权限
–x只执行
-w-只写
-wx写、执行
r–只读
r-x读、执行
rw-读写
rwx读、写、执行

这样,上面图中各种用户对应的权限也很容易知道。


chmod 指令

功能:设置文件的访问权限
格式:chmod [用户] +/- [权限] [文件名称]
用户有三种:u(文件拥有者)、g(文件所属组)、o(其他人)
+表示给对应用户加上某种权限,-表示给对应用户去掉某种权限
权限有四种:r(读权限)、w(写权限)、x(执行权限)、-(无权限)


如果将三个位置看成三个比特位,有对应权限为1,无对应权限为0,则有如下列表。

Linux表示含义八进制数字
无任何权限0
–x只执行1
-w-只写2
-wx写、执行3
r–只读4
r-x读、执行5
rw-读写6
rwx读、写、执行7

这样chmod也可以如下使用:
语法:chmod xxx 文件名
每个x均为一个八进制数字,第一个x代表拥有者的权限对应的八进制数字,第二个x代表所属组的权限对应的八进制数字,第三个x代表其他人的权限对应的八进制数字。


3、chown、chgrp

这两个指令是用来更改一个文件或目录的所有者和所属组的,使用时要用sudo提升权限才能执行。


4、目录的权限

下面介绍针对目录的操作,它与对文件的操作很像,可类比学习。


5、umask

umask用来查看或修改文件掩码
新建文件夹默认权限=0666
新建目录默认权限=0777
(前面的0暂时不用管,只需看后三位)
但实际上创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask
mask & ~umask:若umask中第x位为0,则将mask中的第x位也设置为0;若umask中第x位为,则mask不受影响。


umask的值也可手动修改,修改后创建出来的文件、目录的权限都会因此受到影响。


感谢阅读,如有错误请批评指正

以上是关于Linux权限管理的主要内容,如果未能解决你的问题,请参考以下文章

Linux权限管理---特殊权限

[Linux之权限管理⽤户组管理]

Linux 权限管理命令

LINUX权限管理

linux用户及权限详解-用户组-用户管理-权限管理

Linux用户权限管理和组管理相关命令