Linux新手笔记之Linux文件和目录

1.使用者与群组
每个文件都有相当多的属性,比较重要的有下面三个:文件的拥有者,群组和其他。
在Linux系统中,预设情况下/etc/passwd中有系统账号和一般使用者还有root的相关资料;
/etc/shadow记录个人的密码;
/etc/group记录所有群组的名称。

2.Linux文件权限概念

2.1Linu文件属性
Linux新手笔记之Linux文件和目录
第一栏:关于权限
第一个字母:
当为d时表示这是目录
当为-时表示这是文件
当为l时表示为链接文件
当为b时表示可随机存取装置(可存储设备)
当为c时表示一次性读取装置(如键盘,鼠标)
后面分别是文件拥有者,文件所在群组,和其他三个不同群体的可读(r),可写(w),可执行(x)权限。

第二栏:表示有多少文件名链接到此节点
每个文件都会将它的权限与属性记录到文件系统的i-node节点中

第三栏:文件拥有者账号

第四栏:文件所属群组

第五栏:文件大小(bytes)

第六栏:文件创建的日期或最近修改的日期

第七栏:文件名

2.2如何修改文件属性和权限
chgrp:改变文件所属群组,要改变的群组名必须在/etc/group中
Linux新手笔记之Linux文件和目录

chown:改变文件拥有者:使用者必须是已经存在于系统的账号,在/etc/passwd中有记录
Linux新手笔记之Linux文件和目录

chmod:改变文件权限
r:4 w:2 x:1
Linux新手笔记之Linux文件和目录

2.3Linux文件种类
正规文件(regular file):ASCII, 二进制文件(binary)和数据文件(data)
目录
链接文件
设备与装置:区块设备, 字符设备
资料接送文件(sockets)
资料输送文件(FIFO)

关于文件名长度限制:
單一檔案或目錄的最大容許檔名為 255bytes,以一個 ASCII 英文佔用一個 bytes 來說,則大約可達 255 個字元長度。若是以每個中文字佔用 2bytes 來說, 最大檔名就是大約在 128 個中文字之譜

3.Linux目录配置

3.1Linux目录配置的依据:FHS
根目录(/)的意义与内容
Linux新手笔记之Linux文件和目录
Linux新手笔记之Linux文件和目录
Linux新手笔记之Linux文件和目录
Linux新手笔记之Linux文件和目录
Linux新手笔记之Linux文件和目录
Linux新手笔记之Linux文件和目录
Linux新手笔记之Linux文件和目录
Linux新手笔记之Linux文件和目录
Linux新手笔记之Linux文件和目录
Linux新手笔记之Linux文件和目录
Linux新手笔记之Linux文件和目录
Linux新手笔记之Linux文件和目录
Linux新手笔记之Linux文件和目录
Linux新手笔记之Linux文件和目录
Linux新手笔记之Linux文件和目录
Linux新手笔记之Linux文件和目录
Linux新手笔记之Linux文件和目录
Linux新手笔记之Linux文件和目录
/usr的意义与内容
usr是Unix Software Resource的缩写
Linux新手笔记之Linux文件和目录
Linux新手笔记之Linux文件和目录
Linux新手笔记之Linux文件和目录
Linux新手笔记之Linux文件和目录
Linux新手笔记之Linux文件和目录
Linux新手笔记之Linux文件和目录

/var的意义与内容
如果/usr时安装时会占用较大的磁盘空间,那么/var就是在系统开始运行以后才会渐渐占用系统目录。因为/var目录主要针对经常变动的档案,包括缓存,登录文件,以及某些软件运行过程中会产生的文件,像程序文件(lock file, run file),或者MySQL资料库文件等等。
Linux新手笔记之Linux文件和目录
Linux新手笔记之Linux文件和目录
Linux新手笔记之Linux文件和目录

4.目录与路径
4.1相对路径和绝对路径
4.2目录的相关操作
. 代表此目录
.. 代表上一层目录
- 代表前一个工作目录
~ 代表使用者家目录
~account 代表account这个使用者的家目录
根目录的上一层和根目录是同一个目录
cd : 变换目录 change directory
pwd : 显示当前目录 Print Work Directory
mkdir : 创建一个新目录
-P:依序建立多个目录 -m : 预设权限
rmdir : 删除一个空目录

4.3 关于$PATH

4.4 文件和目录管理指令
ls:
cp:
rm:
mv:

4.5文件内容查询指令
cat:
tac:
nl:
more:
less:
head:
tail:
od:显示二进制文件内容
touch:创建新文件或修改文件时间
关于文件时间的描述:
Linux新手笔记之Linux文件和目录

5 文件和目录的预设权限和隐藏权限
5.1文件预设权限:umask
umask:指定使用者在创建文件或目录时的权限预设值
Linux新手笔记之Linux文件和目录
Linux新手笔记之Linux文件和目录
5.2 文件的隐藏属性
chattr 指令在Ext2/Ext3/Ext4的Linux系统上有效,设置文件隐藏属性
+i 可以让一个文档无法被改动只有root才能设定此类属性。
+a 设定后文件只能增加内容,不能被删除和修改
lsattr 显示文件隐藏属性

5.3文件特殊权限(s & t)
Set UID
当 s的标志出现在文件所有者x权限的位置时,此时被称为set UID,简称为SUID.
SUID的权限对文件的限制和 功能有:
SUID仅对二进制程序有效
执行者对该程序要有x的权限
执行过程中执行者账户临时获得该程序的所有者权限。
不能用在脚本和目录上

Set GID
当s出现在文件群组的x权限位置
SGID仅对二进制程序有效
执行者对该程序要有x的权限
执行者执行过程中获得该程序的群组权限
当一个目录设定了SGID权限,它将有如下功能:
Linux新手笔记之Linux文件和目录

Sticky Bit
这个Sticky Bit,SBIT 目前只针对目录有效,对于文件已经没有效果了。
Linux新手笔记之Linux文件和目录
Linux新手笔记之Linux文件和目录
Linux新手笔记之Linux文件和目录
Linux新手笔记之Linux文件和目录

  1. 查看文档类型:file
    file

  2. 文件和目录的查找指令
    which:根据PATH环境变量所规定的路径去寻找
    whereis:在一些特定的目录中寻找
    locate/updatedb:
    Linux新手笔记之Linux文件和目录
    find:

8 权限和指令之间的关系
8.1让使用者能进入某一目录成为工作目录的基本权限
目录:至少具有x权限
额外需求:若使用者想在这个目录内查阅文件名,要对目录有r的权限
8.2使用者在目录内读取文件的权限
目录:至少具有x权限
文件:至少具有r权限
8.3使用者修改某个文件的权限
目录:至少具有x的权限
文件:至少有r,w权限
8.4使用者创建一个文件的权限
目录:具有w,x权限
8.5使用者进入某个目录并在该目录下执行某个指令的权限
目录:至少x的权限
文件:至少x的权限