linux是多人多任务操作系统,任何一个文件都具有用户(User)、所属群组(Group)、其他人(Others)三张身份的个别权限。但是注意,root账号权限最高,不受约束。一个用户,可以归属多个群组。

linux中,账号都记录在 /etc/passwd 文件内,账号密码保存在/etc/shadow,所有用户组名记录在/etc/group,这三个文件不能随意删除。

1 文件权限

1.1 文件属性

ls 查看文件(list)
ls -al 列出所有文件以及详细权限和属性
image.png
具体字段含义

1.1.1 文件类型与权限(第一栏)

image.png
第一个字符代表文件类型,比如是目录(d)、文件(-)、链接文件(l)等等,上图第一个为-,表示为文件
后续字符以三个为一组,均为 r(可读read)w(可写,write) x(可执行excute),或 - (代表没有对应权限)
第一组(rw-)为 文件拥有者 可具备的权限,可读可写,但不可执行
第二组 (r—)为 加入此用户组之账号的权限
第三组 (r—) 为 非本人且没有加入本用户组的其他账号的权限

1.1.2 多少文件链接到此节点(第二栏)

1.1.3 文件(目录)的拥有者(第三栏)

上图结尾root账号

1.1.4 文件(目录)所属用户组(第四栏)

上图皆为root组,一个用户可以加入多个用户组中,假如账号student1加入到root用户组,那他对上图.autorelabel文件有什么权限呢,对应到第一栏第二组(r—)表示仅仅拥有可读权限。

1.1.5 文件大小(第五栏)

1.1.6 文件创建日期或最近修改日期(第六栏)

时间太长,则只会显示年份,较近则显示详细时间,ls -l —full-time 则可显示完整时间

1.1.7 文件名(第七栏)

如果前面带有. 则表示为隐藏文件,ls不显示隐藏文件,ls -a则显示隐藏文件

1.2 修改文件属性和权限

1.2.1 chgrp 修改文件所属用户组(change+group)

chgrp groupname [-R] dirname/filename
用户组必须在 /etc/group已经存在, -R用在目录上,表示递归,里面所有的子文件都改变。
image.png

1.2.2 chown 修改文件拥有者(change+owner)

chown user [-R] dirname/filename
chown user:group [-R] dirname/filename (同时修改拥有者和用户组)
image.png

1.2.3 chmod 修改文件权限(change+modify)

文件的基本权限有9个(三组),既ls -al显示的第一栏, 权限设置有两种方式
image.png
数字方式:
权限会对应数字: r:4, w:2, x:1
每种身份(owner、group、others)各自的三个权限(r、w、x)数字需要累加,
比如上面就是(4+2+0=6)(4+0+0=4) (4+0+0=4) 644
改成rwxrwx—-,也就是(4+2+1=7)(4+2+1=7) (0+0+0=0) 770
image.png
符号方式:




chmod
u (User) +(增加权限) r


文件或目录
g (Group) -(减少权限) w
o (Others) =(设置权限) x
a (all)

比如:
设置
chmod u=rwx,g=rx,o=rw dirname/filename
增加
chomd a+w dirname/filename (给所有人可写入的权限)

1.3 权限对文件和目录的意义

对于文件,rwx权限只针对文件内容本身,读取/修改/执行文件,但是不能删除文件
对于目录,r 读取目录下的文件名,w 改变目录下的文件(包括删除文件),x 进入目录的权限(cd进去)

2 linux文件种类和扩展

2.1 任何设备在linux下都是文件

类型

ls -l第一栏显示
常规文件 纯文本ASCII/二进制文件binary
/数据文件data
-
目录 目录directory d
链接文件 link,类似window桌面快捷方式 l(L小写)
设备与设备文件 device,常见于/dev目录下 b(区块设备文件)
c(字符设备文件)
数据接口文件 sockets,网络数据交换,常见于/run或/tmp s
数据输送文件 FIFO(first-in-first-out),pipe p(管道pipe)

2.2 文件扩展

linux的文件是没有所谓的扩展名,文件能否执行 跟 是否有文件x(可执行)权限决定的。(不同于window上面的.exe等等由扩展名决定)
但是能否执行成功,是由文件数据内容决定的,比如对a.txt纯文本有x权限,但是纯文本并不能执行。
linux系统上文件扩展名 只是 用来表示文件种类,常用的扩展名:

.sh 脚本或批处理文件 因为批处理文件使用shell写成
Z、.tar、tar.gz 、.zip 、 .tgz 经过打包过的压缩文件 压缩软件gunzip/tar/…….
.html .php

3 目录配置

按标准FHS配置,定义了 :
/ (根目录,启动有关)
/usr (unix software resource,与软件安装执行有关)
/var (variable, 与系统运行过程有关)

必须存在的目录:
/bin /boot /dev /etc /lib /media /mnt ….
建议存在的目录:
/home /lib /root

4 目录树

绝对路径:/root/b 从根目录(/)开始
相对路径:./home/abc 或 ../../home/abc 以当前所在位置的相对位置.
( . 代表当前的目录,也可以用./ )
( .. 代表上一层目录,也可以用../ )