【Linux】Linux的目录结构

文章目录

  • Linux目录结构
    • 1、常见目录说明
    • 2、路径
    • 3、查看目录下的文件
    • 4、家目录的概念
      • (1)用户管理
          • 添加新用户
          • 切换用户
          • 修改用户密码
          • 删除用户
      • (2)用户信息
      • (3)修改用户信息


Linux目录结构

我们都知道Windows操作系统下的目录结构是使用统一的磁盘管理(盘符),例如C盘、D盘、E盘等。而Linux操作系统下的目录结构并没有盘符,所有的文件都是从根目录开始存储(/),也是我们常说的树状目录结构。如图所示:
【Linux】Linux的目录结构_第1张图片

1、常见目录说明

/bin 存放常用命令
/boot 系统内核及启动有关的文件
/dev 存放设备文件 广义上的文件,键盘鼠标都可以抽象为文件然后获取消息。
/etc 存放系统配置文件 系统的运行相关的属性 参数等
/proc 这个目录是一个虚拟的目录,进程在内存中的信息映射成文件,到这个目录下。它是系统内存的映射,通过访问文件的形式访问内存信息。我们可以通过直接访问这个目录来获取系统信息。这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件
/mnt 临时挂载点,系统提供这个目录是让用户临时挂载别的文件系统。
/lib 存放库文件 某个命令的实现
/tmp 存放各种临时文件,是所有用户均可访问的地点
/usr 存放系统应用程序及文档,用户安装的软件,或者运行时不经常改变的文件
/var 存放系统运行中常改变的文件, 如系统日志
我们
/home 所有普通用户的家目录
/root 管理员用户的家目录 :权限更高

  • 什么是家目录?
    多用户的系统 让不同的用户和谐的使用计算机
    在家目录下面创建一个和用户同名的文件夹,不同的用户不能访问别人目录下的文件。

2、路径

  • 当前路径:即用户当前所处路径,pwd显示当前路径
  • 绝对路径:从根目录开始指定的位置,第一个字符是“/”
  • 相对路径:从当前工作目录开始的指定位置,第一个字符只要不是“/”

路径切换

  • pwd:显示当前目录的绝对路径
  • cd [相对路径或绝对路径]:切换目录
    • cd -:切换到上一次到达的位置
    • cd ~:切换的用户的家目录
    • cd ..:返回上一级目录

3、查看目录下的文件

  • ls [路径]:显示指定路径下的内容(不加路径默认显示当前目录的内容)
    • ls -a:显示所有的文件(包括隐藏文件(文件名是以“.”开头的文件)
    • ls -i:显示文件的inode节点号
    • ls -l:显示文件更多的属性信息
    • ls-a: 显示所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出)
    • ls-l :除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
    • ls-r: 将文件以相反次序显示(原定依英文字母次序)
    • ls-t :将文件依建立时间之先后次序列出
    • ls-A :同 -a ,但不列出 “.” (目前目录) 及 “…” (父目录)
    • ls-F :在列出的文件名称后加一符号;例如可执行档则加 " * ", 目录则加 " / "
    • ls-R :若目录下有文件,则以下之文件亦皆依序列出
      【Linux】Linux的目录结构_第2张图片

4、家目录的概念

创建一个普通用户之后,所有普通用户都在”/home”下以该用户的用户名创建了一个目录,该目录就是此用户的家目录。
例如

  • stu 用户的家目录就是 : /home/stu
  • teacher 用户的家目录就是 : /home/teacher

每个用户只能在自己的家目录下创建文件、修改文件等。

管理员的家目录/root

(1)用户管理

添加新用户

添加新的用户账号使用useradd命令,其语法如下:

useradd 选项 用户名

创建新用户需要管理员身份,创建新用户成功后,会在/home 下生成该用户的家目录。

参数说明:

  • 选项
    • -c comment 指定一段注释性描述。
    • -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
    • -g 用户组 指定用户所属的用户组。
    • -G 用户组,用户组 指定用户所属的附加组。
    • -s Shell文件 指定用户的登录Shell。
    • -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
    • -m 自动传创建家目录。
  • 用户名
    • 指定新账号的登录名。
切换用户
  • 从user用户切换到root用户:sudo su 然后输入root的密码就进入了root用户权限
  • 切换到普通用户: su username 切换用户
修改用户密码
passwd 选项 用户名

选项:

  • -l 锁定口令,即禁用账号
  • -u 口令解锁
  • -d 使账号无口令
  • -f 强迫用户下次登录时修改口令

普通用户修改自己的口令时,passwd命令会先询问原口令,验证后再要求用户输入两遍新口令,如果两次输入的口令一致,则将这个口令指定给用户;而超级用户为用户指定口令时,就不需要知道原口令。

删除用户
userdel 选项 用户名
  • userdel 删除用户时,首先确保该用户没有登录
  • userdel 默认仅删除用户,不会删除家目录及家目录中的文件,若想删除用户的同时移除家目录, 那么使用 userdel -r username

(2)用户信息

用户配置文件: /etc/passwd/etc/shadow/etc/group/etc/gshadow

/etc/passwd 存储用户基本信息
在这里插入图片描述

用户名:口令:用户标识号:组标识号:注释性描述:主目录:命令解释程序
  • 用户名
    "用户名"是代表用户账号的字符串。
     
    通常长度不超过8个字符,并且由大小写字母和/或数字组成。登录名中不能有冒号 (: ),因为冒号在这里是分隔符。
     
    为了兼容起见,登录名中最好不要包含点字符(.),并且不使用连字符(-)和加号(+)打头

  • 口令
    “口令”一些系统中,存放着加密后的用户口令字。
     
    虽然这个字段存放的只是用户口令的加密串,不是明文,但是由于/etc/passwd文件对所有用户都可读,所以这仍是一个安全隐患。因此,现在许多Linux 系统(如SVR4)都使用了shadow技术,把真正的加密后的用户口令字存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一个特殊的字符,例如“x”或者“*”,如果是 “*” 的话,那么就表示该账号被查封了,系统不允许持有该账号的用户登录。

  • 用户标识号
    “用户标识号”是一个整数,系统内部用它来标识用户。
     
    一般情况下它与用户名是一一对应的。如果几个用户名对应的用户标识号是一样的,系统内部将把它们视为同一个用户,但是它们可以有不同的口令、不同的主目录以及不同的登录Shell等。
     
    通常用户标识号的取值范围是0~65 535。0是超级用户root的标识号,1~99由系统保留,作为管理账号,普通用户的标识号从100开始。在Linux系统中,这个界限是500。

  • 组标识号
    “组标识号”字段记录的是用户所属的用户组。
     
    它对应着/etc/group文件中的一条记录。

  • 注释性描述
    “注释性描述”字段记录着用户的一些个人情况。
     
    0: 代表超级用户。
    1-499: 代表系统用户。(伪用户)
    500 ~ 65535 : 普通用户(我们使用的是从1000开始的)

  • 主目录
    “主目录”,也就是用户的起始工作目录。
     
    它是用户在登录到系统之后所处的目录。在大多数系统中,各用户的主目录都被组织在同一个特定的目录下,而用户主目录的名称就是该用户的登录名。各用户对自己的主目录有读、写、执行(搜索)权限,其他用户对此目录的访问权限则根据具体情况设置。

  • 命令解释程序(Shell)
    Shell是当用户登录系统时运行的程序名称,通常是一个Shell程序的全 路径名,如/bin/bash

 

 

/etc/group 存储用户组的信息
在这里插入图片描述

组名:口令:组标识号:组内用户列表
  • "组名"是用户组的名称,由字母或数字构成。与/etc/passwd中的登录名一样,组名不应重复。
  • "口令"字段存放的是用户组加密后的口令字。一般Linux 系统的用户组都没有口令,即这个字段一般为空,或者是*。
  • "组标识号"与用户标识号类似,也是一个整数,被系统内部用来标识组。
  • "组内用户列表"是属于这个组的所有用户的列表/b],不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。

 

 

/etc/shadow 存储用户的密码
【Linux】Linux的目录结构_第3张图片

登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:账号失效时间:标志
  • "登录名"是与/etc/passwd文件中的登录名相一致的用户账号。
  • "口令"字段存放的是加密后的用户口令字,长度为13个字符。如果为空,则对应用户没有口令,登录时不需要口令;如果含有不属于集合 { ./0-9A-Za-z }中的字符,则对应的用户不能登录。
  • "最后一次修改时间"表示的是从某个时刻起,到用户最后一次修改口令时的天数。时间起点对不同的系统可能不一样。例如在SCO Linux 中,这个时间起点是1970年1月1日。通过date -d "1970-01-01 15775 days"命令,即可将其换算为我们习惯的系统日期。
  • "最小时间间隔"指的是两次修改口令之间所需的最小天数。
  • "最大时间间隔"指的是口令保持有效的最大天数。
  • "警告时间"字段表示的是从系统开始警告用户到用户密码正式失效之间的天数。
  • "不活动时间"表示的是用户没有登录活动但账号仍能保持有效的最大天数。
  • "失效时间"字段给出的是一个绝对的天数,如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号,也就不能再用来登录了。

盐加密:目前 Linux 的密码采用的是 SHA512 散列加密算法,原来采用的是 MD5 或 DES 加密算法。SHA512 散列加密算法的加密等级更高,也更加安全。

(3)修改用户信息

  • 修改用户说明,修改用户副组
    【Linux】Linux的目录结构_第4张图片
  • 修改用户状态
    【Linux】Linux的目录结构_第5张图片
    【Linux】Linux的目录结构_第6张图片

你可能感兴趣的:(Linux,linux)