朱琛的小屋

linux读书笔记(1)

这篇文章主要讲的是linux的文件和目录方面的。

1. 用户和用户组

每一个文件属于一个用户,而每一个用户会属于一个或多个用户组,而系统内会有多个用户组。有些文件用户组之间可以共享,而有些文件被设置成用户个人文件,即使是用户组内的其他用户也不能去读或写。这样的设置使linux下的多任务管理更加简单。
在我们的linux系统下,默认所有用户和root的相关信息都记录在了/etc/passwd里面。个人的密码记录在/etc/shadow里,而linux内所有的组名都记录在/etc/group内。

2. linux的文件属性和权限

linux下的文件构造可以通过ls -al查看,-a是指所有的文件(包括隐藏文件),-l是指文件信息会以列表格式展现出来。

1
2
3
4
5
6
7
8
9
10
11
12
13
~$ ls -al

drwxr-xr-x 32 zhuchen root 4096 414 18:04 .
drwxr-xr-x 5 root root 4096 316 10:50 ..
drwx------ 3 zhuchen root 4096 315 09:49 .adobe
-rw-r--r-- 1 zhuchen root 25283 717 2015 ascii_dora.png
-rw------- 1 zhuchen zhuchen 13641 414 17:19 .bash_history
-rw-r--r-- 1 zhuchen root 220 314 17:34 .bash_logout
-rw-r--r-- 1 zhuchen root 3771 314 17:34 .bashrc
drwxr-xr-x 20 zhuchen root 4096 330 15:16 .cache
drwx------ 26 zhuchen root 4096 47 18:17 .config
drwx------ 3 zhuchen root 4096 314 19:26 .dbus
drwxr-xr-x 2 zhuchen root 4096 323 15:29 Desktop

首先解读一下每列字段的意义。
第一列代表这个文件的类型和权限。具体含义我们后面再说。
第二列代表有多少文件名连接到此节点(i-node)。
第三列代表文件(目录)所有者(用户)的账号。
第四列代表文件(目录)所属的用户组。
第五列代表文件(目录)的大小,默认单位为B。
第六列代表文件(目录)的修改日期(未修改过则是创建日期)。
第七列代表文件(目录)的名字。

下面我们重点解读一下第一列字符串,文件权限和类型的含义。以drwxr-xr-x为例子。
第一个字符代表这个是目录,文件还是别的。

  • [d]:目录
  • [-]: 文件
  • [|]: 连接文件(linkfile)
  • [b]: 设备文件里可供存储的接口设备。
  • [c]:设备文件里的串行接口设备(键盘,鼠标)。

例子中的第一个字符是d,也就是文件。

后面的字符每三个一组总共三组。第一组为’文件所有者的权限’,第二组为’一个用户组内其他用户的权限’,第三组为’不同用户组的用户的权限’。
而每一组里有三个字符,第一个r代表可读,第二个w代表可写,第三个x代表可执行。这三个权限的位置不会改变,当没有这个权限的时候,该位置用-表示。
例子中的rwxr-xr-x分为三组:

  1. 第一组rwx说明文件所有者对该文件可读,可写,可执行。
  2. 第二组r-x说明同用户组内其他用户对该文件可读,不可写,可执行。
  3. 第三组r-x说明不同用户组的其他用户对该文件可读,不可写,可执行。

3. 改变文件的属性和权限

chgrp:改变文件用户组
chown:改变文件所有者
chmod:改变文件权限

linux每个文件的基本权限有九个,分别是owner,group,other三种身份各有自己的三个权限(rwx)。而这9个权限是三个一组的。其中,我们用数字来代表各个权限。r:4,w:2,x:1。我们这里拿rwxrw-r-x举例
owner = rwx = 4+2+1 = 7
group = rw- = 4+2+0 = 6
other = r-x = 4+0+1 = 5

所以我们可以看出,如果要是想将这个文件的权限改为-rw-r--r--,就可以用 chmod 644 filename

4.权限对于文件和目录的作用

文件:

r:可以读取文件的实际内容。
w:可以编辑,新增和修改内容,但是不能删除。
x:可以被系统执行的权限。
至于w权限为什么不可以删除该文件,是因为这里的rwx权限都是对于文件本身的内容来说的,而不是文件的存在。

目录:

r:可以读取该目录结构列表的权限。也就是可以用ls这个命令了。
w:表示你可以更改该目录结构的权限。即:

  • 新建新的文件和目录
  • 删除存在的文件和目录
  • 重命名存在的文件和目录
  • 转移存在的文件和目录

x:表示用户能否进入该目录成为工作目录的权限。所谓的工作目录就是你目前所做的目录。也就是你能用cd将转变目前的工作目录成该目录的权限。

朱琛 wechat
扫一扫,用手机看更方便~
坚持原创技术分享,您的支持将鼓励我继续创作!