本文主要写了Linux用户和文件权限的相关知识内容比较杂,这些并不需要完全记住,在往后的学习中会经常跟这些打交道,时间久了自然会记住的哦!
Linux用户
在Linux中的用户分为两类:
- root,超级管理员
- 非root用户,普通用户
普通用户切换成root,需要输入root的密码,root账号变成普通,不需要认证,普通用户变成另一个普通用户,需要对方的密码。进行用户身份切换需要用su
指令,从root切换到普通用户需要输入su 用户名
,从普通用户切换到root只需输入su -
或者su
回车之后输入root
密码即可。
su -
和su
两条指令的区别在于:
su -
命令是以root
身份重新登录一次su
命令只是简单的身份更换一下
文件权限
在Linux中,与文件相关信息有三种角色:拥有者、所属组、other,其英文简称分别为:u、g、o
文件权限属性有三种:
r
:读权限w
:写权限x
:可执行权限
通过ls
可以查看的文件属性信息,其具体含义如下
每一行就是一个文件的相关信息,每一行开始有10个字符,先不管第一个字符,后面九个字符三三为一组,分别对应拥有者、所属组、other权限,如下图:
对于一个目录而言
-
x
权限决定是否可以进入目录 -
r
权限决定能否对文件属性信息进行查看 -
w
权限决定能否在该目录下进行新建和删除文件 -
一般共享目录的other用户还有一个特殊的权限
t
,又叫粘滞位,起作用就是给目录中的other设置的一个权限位,具有x权限的意义,同时也进一步对目录权限进行特殊限定:该目录里面的文件,只有root或者文件的拥有者有权利进行删除!其他人一概不允许
文件权限的修改
更改文件的权限可以使用chmod
指令
语法:chmod [u/g/o] [+/-] 文件名
仅看语法感觉比较难理解,这里举两个例子:
-
对test文件的拥有者删除读权限:
chmod u-r test
-
对tmp文件的所属组删除写权限:
chmod g-w tmp
增加之后可以看出来其对应的权限位置,
r
和w
变成了-
,如下图:
文件权限的数字修改方式
一个文件拥有者、所属组、other的权限三三为一组,每一组有三个字符,这三个字符可以看成二进制数,如果三个字符中有**-
**则该位算作0,否则为1,比如-wx
为011
就是3,rwx
为111
就是7。那么我们就可以用三个八进制数字来表示,拥有者所属组和other的权限的情况,例如:
-
将test文件的权限改为
rwxrwxrwx
,指令如下:chmod 777 test
-
将test文件的权限改为
rwxrwxr-x
指令为:chmod 775 test
chown指令
功能:更改文件的拥有者、所属组指令
语法:chown 用户名 文件名
举例:
将test的拥有者改为root用户:
sudo chown root test
更改文件所属组的指令与上述指令类似,只需要把chown
更改为chgrp
即可。
文件类型
每一个文件属性信息的第一个字符表示文件类型,例如下图中这三个文件的属性都是**d
**,表示这三个文件都是文件夹。
在Linux中,文件的类型不通过后缀区分,但是不代表Linux不使用后缀
文件类型字符表示 | 类型含义 |
---|---|
- | 表示普通文件,文本、源代码、图片、视频、库、可执行等 |
d | 目录文件 |
b | block,块设备文件 |
c | char,字符设备文件 |
| | 链接文件 |
p | 管道文件 |
s | socket文件 |
在今后学习中,前两种文件类型遇到的会比较多。
举例:
-
b
,为块设备文件,例如查看自己服务器磁盘设备文件,块设备文件主要特点就是支持随机访问 -
c
:为字符设备文件,例如键盘显示器,一般在服务器/dev
目录下有很多字符设备文件例如,当我们利用终端写指令时,打开的终端也是一个字符设备文件,可以通过一个终端向另一个终端写内容
-
l
:链接文件,类似于Windows中的快捷方式
后面几种文件类型,相对不太常见这里就不展开了
权限掩码
新建的文件,普通文件默认的权限是664、起始权限为666,目录文件默认权限是775,起始权限为777,这种中间涉及到一个umask
权限掩码
umask我们不看第一位0,默认权限可以通过起始权限跟umask按位取反后,再相与得到,即:
起始权限 & (~umask) = 默认权限
默认的权限掩码umask可以通过umask [四位掩码]
指令来进行更改,例如:
umask 0003
就是把权限掩码更改成0003