文章目录
一、用户
(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的值也可手动修改,修改后创建出来的文件、目录的权限都会因此受到影响。