1.文件的相关内容
我在用root执行 ls -al 与用普通用户执行后发现显示的文件不一样,通过一番折腾(一开始迷糊了到处搜没搜到,冷静下来才想起来可以用 pwd 查看当前路径)才发现用 su – 切换用户后对应的路径也变化了,虽然都是 ~ ,普通用户(就拿为自己的为例)~ 默认 /home/zjw ,root用户为 /root
drwxr-xr-x 20 root root 4096 6月 11 01:17 ..
第一个字符代表了这个文件的类型: d 为目录; – 为文件; | 为链接文件; b 为设备文件里的可供存储的周边设备; c 为设备文件里的串行端口设备如键盘鼠标等
后面的字符三个一组,分别为 文件拥有者读写执行、加入此用户组账号读写执行、非本人且没有加入本用户组的其他帐号读写执行
20表示有20个文件名链接到此节点
第一个 root 表示这个目录的拥有者;第二个 root 表示这个目录的所属用户组
4096为这个目录的容量大小,默认单位 Bytes (通过帮助得知可以用 -h 将大小改为 human-readable ,即单位自动切换成 K、M 等等
后面的为创建日期或修改日期,太过久远不会详细显示
2.文件属性修改
更改用户组名
chgrp [-R] 组名 文件名
-R 作用为递归
chown [-R] .组名 文件名
更改文件拥有者名
chown [-R] 用户名 文件名
两个名称同时修改
chown [-R] 用户名:组名 文件名
同时修改两个名称也可以用 . 相连,考虑到用户名或者组名中可能存在 . 所以用 : 间隔
如果想知道自己电脑里面有哪些用户名及组名,可到 /etc/passwd 中查看用户名称, /etc/group 中查看用户组名
更改文件权限1 利用数字修改
chmod [-R] 分数 文件名
r:4 w:2 x:1
更改文件权限2 利用符号修改
u g o a 分别表示 user group other all , + – = 分别表示 加入 移除 设置
1 root@zjw-Lenovo-Legion-Y7000P-2020H:~# ls -l 2 2 ---xrw-rw- 1 root root 0 6月 23 15:36 2
若想将文件 2 权限改为 -rwxrwxrwx 即执行 chmod a=rwx 或者分开 chmod u=rwx,g=rwx,o=rwx + – 同理
相比较下来,个人更倾向于利用数字更改
利用 cp 命令将文件复制给文件,或将多个文件复制到目录中
cp 源文件 目标文件
虽然 cp 命令会将执行者的属性与权限都复制给目标,但是经过测试我发现只有用户所有权限、用户组与其他人的读与执行权限会复制给目标,换句话说,如果源文件权限为 777 ,则目标文件权限为 755
3.目录与文件的权限
文件的读取,即读取实际内容
文件能否执行,与 x 有关,与文件名无关
文件中的 w 权限,只能具有写入、编辑、新增、修改文件内容权限,不具备删除文件本身的权限
目录的读取,即可以查询目录中的文件名数据
目录的可写入权限即对目录中的文件的操作(非文件内部数据)
目录的可执行,即能否进入该目录 !注意!:能否查看目录内容由 r 决定,能否进入目录由 x 决定
1 drwxr-x--x 2 root root 4096 6月 23 20:04 1 2 drwxr-xr-- 2 root root 4096 6月 23 20:04 2
分别建立两个目录,给予其他用户一个 r ,另一个 x
1 zjw@zjw-Lenovo-Legion-Y7000P-2020H:~$ cd ./1 2 zjw@zjw-Lenovo-Legion-Y7000P-2020H:~/1$ ls 3 ls: cannot open directory '.': Permission denied
只有执行权限的1目录可进入,却无法查询目录内容
1 zjw@zjw-Lenovo-Legion-Y7000P-2020H:~$ cd ./2 2 bash: cd: ./2: Permission denied 3 zjw@zjw-Lenovo-Legion-Y7000P-2020H:~$ ls -l ./2 4 ls: cannot access './2/file': Permission denied 5 total 0 6 -????????? ? ? ? ? ? file
只有读取权限的2目录无法进入,也只能获取目录内的文件名列表
!若目录仅有 x 权限,则在此目录中使用 tab 无法自动补齐
4.文件种类
纯文本常规文件、二进制常规文件、数据文件
目录
链接文件
区块设备文件、字符设备文件
数据接口文件
数据输送文件
一个文件能否被执行,只与文件属性有关,与文件名无关
5.FHS标准
代表性目录:
可分享 | 不可分享 | |
不变 | /usr(软件存放处) | /etc(配置文件) |
/opt(第三方辅助软件) | /boot(启动与内核文件) | |
可变动 | /var/mail(用户邮箱) | /var/run(程序相关) |
/var/spool/news(新闻组) |
/var/lock(程序相关) |
可分享,即能够分享给网络上其他主机或其他系统挂载用的目录
不可分享
不变,即数据跟随着发行版不会经常变动
可变动,经常修改的数据
FHS针对目录树架构仅给出的三个目录的定义
/(根目录):与启动系统有关 注意:/ 表示的是根目录,有 root 的意思,而 /root 表示的是系统管理员的身份
/usr:与软件安装/执行有关
/var:与系统运行过程有关
/ 下的目录
FHS要求必须存在的目录 | |
/bin | 放置单人维护模式下还能够使用的命令,其中的命令可以被 root 与一般账号所使用,如:cat、chmod… |
/boot | 主要放置启动时会使用到的文件,包括Linux内核文件、启动选项等。Linux内核常用文件名为:vmlinuz |
/dev | 任何设备与接口设备都是以文件形式存在于这个目录中,只要读写某个文件,就等于读写某个设备 |
/etc |
系统主要的配置文件几乎都在这个目录中,FHS建议不要放置可执行文件 /etc/opt(必要):这个目录放置第三方辅助软件 /opt 的相关配置文件 /etc/X11(建议):与 X Window 有关的各种配置文件都在这 /etc/sgml(建议):与SGML格式有关的各项配置文件 /etc/xml(建议):与XML格式有关的各项配置文件 |
/lib |
放置在启动时会用到的函数库,以及在 /bin 或 /sbin 下面的命令会调用的函数库 /lib/modules(必要):这个目录放置可抽换式的内核相关模块(驱动程序) |
/media | 放置可删除设备如软盘、光盘、DVD等设备 |
/mnt | 暂时用于挂载某些额外的设备 |
/opt | 放置第三方辅助软件(非原本发行版提供的独立软件) |
/run | 放置启动后所产生的各项信息 |
/sbin | 放置只有 root 才能够使用的启动过程中所需要的命令 |
/srv | 放置网络服务启动后所需要的数据目录 |
/tmp | 暂时放置文件的地方,任何人都能够存取,但是重要目录不要放置在这 |
/usr | |
/var | |
FHS建议可以存在的目录 | |
/home | 系统默认的用户家目录 |
/lib<qual> | 存放与/lib 不同格式的二进制函数库 |
/root | 系统管理员家目录 |
/usr 下的目录
FHS要求必须存在的目录 | |
/usr/bin/ | 所有一般用户能够使用的命令存放于此 |
/usr/lib/ | 基本上与/lib功能相同 |
/usr/local/ | 系统管理员在本机安装自己下载的软件,建议安装到此处 |
/usr/sbin/ | 非系统正常运行所需要的系统命令,功能与/sbin差不多 |
/usr/share/ | 主要放置只读数据文件,包括共享文件 |
FHS建议可以存在的目录 | |
/usr/games/ | 与游戏相关的数据放置处 |
/usr/include/ | c/c++等程序语言的头文件与包含文件放置处 |
/usr/libexec/ | 某些不被一般用户常用的执行文件或脚本等 |
/usr/lib<qual> | 与 /lib<qual>/ 功能相同 |
/usr/src/ | 一般源代码建议放置于此内核源码建议放置在 /usr/src/Linux/ 目录下 |
/var 下的目录
FHS要求必须要存在的目录 | |
/var/cache/ | 应用程序本身运行过程中会产生的一些缓存 |
/var/lib/ | 程序本身执行的过程中,需要使用到的数据文件放置的目录,各自的软件有各自的目录 |
/var/lock/ | 某些设备或是文件资源一次只能被一个应用程序所使用,因此就得将该设备上锁,以确保该设备只会给单一软件使用 |
/var/log/ | 非常重要,放置日志文件的目录 |
/var/mail/ | 放置个人电子邮箱的目录 |
/var/run/ | 某些程序或服务启动后,会将它们的PID放置在这个目录下,与/run相同 |
/var/spool/ | 通常放置队列数据,如 收到的新邮件会放置在 /var/spool/mail 中,用户收下后该封信原则上会被删除 |
以上目录信息会在后续逐渐理解
第五章总结:文件的属性及权限一定要熟记,如何修改权限;FHS标准中定义的目录占了比较大的篇幅,但是暂作了解;根路径与相对路径。
原创文章,作者:端木书台,如若转载,请注明出处:https://blog.ytso.com/tech/aiops/270286.html