用户与用户组
众所周知, linux
是多用户多任务的操作系统, 那么linux
是如管理文件的呢? linux
是如何知道某个文件属于哪一个用户呢?
答案是用户组. 是的, linux
通过用户组进行区分. 通常linux
中有三类用户, 用户本身user
, 同一用户组group
的其他成员, 不属于用户组的其他人other
. 这三类用户也是文件的三种不同权限. 通过ls
命令可以查看文件的具体信息, 下面的示例我们查看/home
目录下所有文件的信息:
//当前用户为helloyong, linux起名为Deepin
helloyong@Deepin:~$ ls -al /
总用量 12
drwxr-xr-x 3 root root 4096 3月 30 17:44 .
drwxr-xr-x 25 root root 4096 4月 27 16:38 ..
drwxr-xr-x 56 helloyong helloyong 4096 5月 4 13:19 helloyong
//--------- ** ========= $$$$$$$$$ ---- ************* =========
//一 二 三 四 五 六 七
ls
是list
的意思, 后面的-al
为参数, ls -al /home
的意思是列出/home
目录下的所有文件信息. ls
命令我们稍后谈论. 我们的重点在文件权限.
从上面的代码可以看到形如drwxr-xr-x
的字符串, 这个字符串就是文件的权限信息. 我们先将返回的结果分成七列. 稍后再用.
文件权限
每个文件有三种用户权限, 这三个不同的用户对文件有不同的读, 写, 执行的权限. 即r
, w
, x
. linux
分别给r
, w
, x
赋予权重, 分别为4
, 2
, 1
.
例如, 权限为rwx
的权重为7
. 因为4+2+1=1
. r-x
的权重为5
, 因为4+1=5
. -
表示没有这个权限
为了说明取第三个文件helloyong
的权限
drwxr-xr-x #共十位
每个文件的权限信息都在第一个列, 这一列有10
个字符. 为了说明我们从1-10
对其编号, 并说明:
1
: 第一位为d
, 表示helloyong
是一个目录.
234
: 这三位为rwx
, 表示文件所有者user
拥有读, 写, 执行的权限, 可以简写为7
567
: 这三位是r-x
, 表示用户组group
的权限为读和执行. -表示没有相应权限, 可以简写为5
最后三位: r-x
, 表示用户组之外的用户即other
对文件的权限为读和执行, 可以简写为5
通常, 文件的信息模板如下:
1
: 即第一个字符, 这个字符表示文件是啥类型,
d
:directory
表示目录-
: 文件l
:linkfile
, 连接文件b
: 表示设备文件里面的可供存储的接口设备c
: 表示设备文件里面的串行端口设备. 如鼠标, 键盘等.
234
位: 表示的是文件所有者user
的权限567
位:表示除user
外的同用户组group
对文件的权限- 剩下三位: 表示
other
用户对文件的权限
文件的其他信息
上文提到了文件的权限, 可以看到权限后面还有一大串字符, 那么那一大串字符是啥呢?
还记得我们给ls
命令的返回值编号吗? 我们还是去helloyong
为例:
drwxr-xr-x 56 helloyong helloyong 4096 5月 4 13:19 helloyong
// 一 二 三 四 五 六 七
我们将其分为七列, 每一列代表一种信息.
- 第一列: 这一列是文件的权限信息
- 第二列: 表示文件的连接数, 即有多少个文件连接到这个节点
- 第三列: 这一列表示文件的所有者
user
- 第四列: 表示文件所有者所属的用户组
group
- 第五列: 表示文件的大小, 默认单位为字节
B
- 第六列: 显示文件最近的修改日期或文件创建日期
- 第七列: 为文件名