关于linux中的目录配置标准以及文件基本信息

时间:2022-03-28 21:53:38

关于Linux中的目录配置标准

在查看docker、k8的运行日志,修改相关的运行记录的时候,学长总是能很快地找到目录,这个多多少少和Linux的FHS(File Hierarchy Standard)有关,有必要把常见的集中再整理整理。具体的规范有很多,先整理一点出来,一点点再添加。具体可以参考鸟叔的p152页。

查询日志

/var 目录通常存放常态性变动的文件,包括缓存,登录文件以及某些软件运行的时候所产生的文件,或者Mysql的数据文件等等。

  • 比如k8s的相关日志信息都存储在/var/log/upstart文件夹下。
  • 比如docker的 container 相关的信息都存储在 /var/lib 上

查询配置文件

系统的主要配置文件一般都放在这个文件夹中,不建议在这个文件夹中放可执行的文件。

  • 比如/etc/init.d/中存放着所有的服务的默认的启动脚本。

二进制文件

系统中存放二进制文件的目录比较多,但是 /bin 目录中存放的是单用户维护模式下还能够被操作的命令,在/bin目录下的命令可以被root与一般用户所使用,比如cat,bash,chown,chomod之类的命令。另外一个是/opt/bin 目录,这个目录中通常存放的是第三方软件(非distribution所提供的)所放置的目录。

关于文件权限

文件权限和用户权限的问题在平时操作中也是经常遇到的,比如有时候权限管理混乱,go get 的时候就总是permission denied,或者有的时候没有读写权限之类的,再好好整理一下。

其是这个问题主要是 ls -l 的时候,把所有的信息都解释清楚。
这里还要多说一点就是在使用linux命令的时候要学会使用man来查看,比如ls命令可以按照修改日期排序输出,可以按照文件大写排序输出等等

关于用户组与用户

通过用户组与用户的概念可以实现文件的隔离与共享。

用户的概念很好理解,就是不同的使用os的用户。用户组的概念是在用户的基础上的第二层抽象,一个用户可以分别属于多个用户组,一个用户组中可以有多个用户,不同用户组的文件是彼此隔离开的,同一个用户组内的成员可以共享这个用户组内的文件。

linux所有用户组的信息都存储在/etc/group中,通过groups命令就可以查看当前用户所支持的用户组。

/etc/group 文件中存储的内容是用户组的相关信息。/etc/group的文件内容格式: 组名:密码保存位置:组ID:组成员。以root用户组为例,即组名是root,密码保存位置为/etc/shadow,root组的GID为0,组下面的用户是root用户。

/etc/passwd的文件内容格式:注册名:口令:用户标识号:组标识号:用户名:用户主目录:命令解释程序 。以root用户为例。root是用户注册名,X表示密码保存在/etc/shadow,用户ID为0,所在用户组ID为0,用户名是root,home目录为/root,解释程序/bin/bash。

文件的权限

文件的具体权限一共有9种,owner,group以及others各有三种,分别是read,write以及execute权限。具体的信息通过权限字符串 -rwxrwxrwx来标记,可以通过三个二进制换算成10禁止的数字来表明文件的权限,具体的表述可以参考鸟叔p141,p146。

修改命令

chown -R 账号名称 dirname/filename 这个命令可以递归地修改文件或文件目录下的文件的所属用户。
chgrp -R 用户组名称 文件或目录 这个命令可以用来改变所属的用户组
chmod 可以用来改变文件的具体的读写权限。