Linux简介(2)--Linux目录结构

目录结构

  • 其实在Linux操作系统中所说的目录就和我们平时所用的文件夹时一回事。也就是说目录其实就是 文件夹。
  • Linux的起始目录就是“ / ”,也就是根目录。
  • Linux系统的目录结构是一颗倒状树。
    在这里插入图片描述

常见目录

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

路径

当前路径

  • 即用户当前所处的路径。用pwd命令可以查看当前路径。“ . ”也代表当前路径
    在这里插入图片描述

绝对路径和相对路径

绝对路径

  • 绝对路径是从系统根目录(“ / ”)开始到指定位置的路径,例如:/home/zhaolei/java/jdk1.8/bin
    在这里插入图片描述

相对路径

  • 相对路径会把当前所处的目录当作相对的位置。是从当前目录开始到指定位置的相对路径。
  • 例如:./bin代表切换到当前目录的bin目录下
    在这里插入图片描述

路径切换

cd

  • 后面添加相对路径或者 绝对路径。
  • 后面添加 … 退回到上机目录,一个点表示当前目录,两个点表示上一级目录。
  • 加 - 表示跳到之前所在的目录,即退回上一步。
  • 加 ~ 表示跳到自己的home目录下。

查看目录下文件

ls 查看当前目录下的文件

  • -a 显示所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出)
  • -l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
  • -r 将文件以相反次序显示(原定依英文字母次序)
  • -t 将文件依建立时间之先后次序列出
  • -A 同 -a ,但不列出 “.” (目前目录) 及 “…” (父目录)
  • -F 在列出的文件名称后加一符号;例如可执行档则加 “*”, 目录则加 “/”
  • -R 若目录下有文件,则以下之文件亦皆依序列出
    使用ls命令时也可以简写,如 ls -a 可以写成 la,ls -l 可以写成ll,以此类推。
    在这里插入图片描述在这里插入图片描述

家目录的概念

  • 在Linux系统下创建一个普通用户之后,所有的普通用户都会在“ /home ”下以该用户的用户名创建一个目录,该目录就是此用户的家目录。
  • 例如:zhaolei的家目录就是:/home/zhaolei ,而user1的家目录就是:/home/user1 。管理员的家目录为 /root 。
    在这里插入图片描述

用户管理

添加新用户

  • 添加新用户(创建新用户需要管理员身份,创建后,会在/home下生成该用户的家目录。)命令:useradd newname
  • -u 指定用户的uid 0 : root 用户 uid Linux上 唯一确定用户的标识 尽量不要用。
  • -g 执行新用户的主组(初始组)
    默认就是本身。
  • -G 设置附加组 如果指定多个附加组可以用逗号隔开 。
  • -d :设置家目录 (一般不用)
  • -c 备注
  • -s 指定命令解释器
  • -m 自动创建家目录
    一般情况下,我们使用 : useradd -c " " -G -m 用户名来创建一个新用户。
    在这里插入图片描述

切换用户

  • 从普通用户切换到root用户:sudo su 随后输入root的密码就进入了root用户权限
  • 切换到普通用户:su username 切换用户

修改用户密码

一般情况下,我们设计密码需要谨记这三个原则

  • 1 容易记
  • 2 复杂
  • 3 便于经常更换
    我们可以使用 passwd username 命令来修改密码
    在这里插入图片描述

删除用户

  • 使用userdel删除用户时,首先确保该用户没有登录。userdel默认仅删除用户,不会删除家目录以及家目录中的文件,若想删除用户的同时移除家目录,我们可以使用userdel -r username。
    在这里插入图片描述

用户信息

在Linux etc目录下有这样几个用户配置文件,分别保存着用户的各类信息。
/etc/passwd /etc/shadow
/etc/group /etc/gshadow

下面对这四个文件再作进一步解释

/etc/passwd 存储用户基本信息

在这里插入图片描述

  • 格式:用户名::口令:用户标识号:组标识号:用户名:用户主目录:命令解释程序
  • (1)注册名(login_name): 于区分不同的用户。在同一系统中注册名是惟一的。在很多系统上,该字段被限制在8个字符(字母或数字)的长度之内;并且要注意,通常在Linux系统中对字母大小写是敏感的。这与MSDOS/Windows是不一样的。
  • (2)口令(密码)(passwd): 系统用口令来验证用户的合法性。超级用户root或某些高级用户可以使用系统命令passwd来更改系统中所有用户的口令,普通用户也可以在登录系统后使用passwd命令来更改自己的口令。 现在的Unix/Linux系统中,口令不再直接保存在passwd文件中,通常将passwd文件中的口令字段使用一个“x”来代替,将/etc /shadow作为真正的口令文件,用于保存包括个人口令在内的数据。当然shadow文件是不能被普通用户读取的,只有超级用户才有权读取。
    此外,需要注意的是,如果passwd字段中的第一个字符是“*”的话,那么,就表示该账号被查封了,系统不允许持有该账号的用户登录。
  • (3)用户标识号(UID): UID是一个数值,是Linux系统中惟一的用户标识,用于区别不同的用户。在系统内部管理进程和文件保护时使用 UID字段。在Linux系统中,注册名和UID都可以用于标识用户,只不过对于系统来说UID更为重要;而对于用户来说注册名使用起来更方便。在某些特 定目的下,系统中可以存在多个拥有不同注册名、但UID相同的用户,事实上,这些使用不同注册名的用户实际上是同一个用户。 不能重复。
    0: 代表超级用户。
    1-499: 代表系统用户。(伪用户)
    500 ~ 65535 : 普通用户(博主使用的ubuntu是从1000开始的)
  • (4)组标识号(GID): 具有相似属性的多个用户可以被分配到同一个组内,每个组都有自己的组名,且以自己的组标 识号相区分。像UID一样,用户的组标识号也存放在passwd文件中。在现代的Unix/Linux中,每个用户可以同时属于多个组。除了在 passwd文件中指定其归属的基本组之外,还在/etc/group文件中指明一个组所包含用户。
    初始组:主组 附加组:副组
  • (5)用户名(user_name):用户的说明信息,即注释(-c后所指定的信息)。 具有相似属性的多个用户可以被分配到同一个组内,每个组都有自己的组名,且以自己的组标 识号相区分。像UID一样,用户的组标识号也存放在passwd文件中。在现代的Unix/Linux中,每个用户可以同时属于多个组。除了在 passwd文件中指定其归属的基本组之外,还在/etc/group文件中指明一个组所包含用户。
  • (6)用户主目录(home_directory): 该字段定义了个人用户的主目录,当用户登录后,他的Shell将把该目录作为用户的工作目录。 在Unix/Linux系统中,超级用户root的工作目录为/root;而其它个人用户在/home目录下均有自己独立的工作环境,系统在该目录下为每 个用户配置了自己的主目录。个人用户的文件都放置在各自的主目录下。
  • (7)命令解释程序(shell): Shell是当用户登录系统时运行的程序名称,通常是一个Shell程序的全路径名,如/bin/bash。

/etc/group 存储用户组的信息

在这里插入图片描述

  • 第一字段: 用户组名称; 也就是是用户组的名称,有字母或数字构成。同 /etc/passwd 中的用户名一样,组名也不能重复。
  • 第二字段: 用户组密码; 和 /etc/passwd 文件一样,这里的 “x” 仅仅是密码标识,真正加密后的组密码默认保存在 /etc/gshadow 文件中。
  • 第三字段: GID 就是群组的 ID 号,Linux 系统就是通过 GID 来区分用户组的,同用户名一样,组名也只是为了便于管理员记忆。这里的组 GID 与 /etc/passwd 文件中第 4 个字段的 GID 相对应,实际上,/etc/passwd 文件中使用 GID 对应的群组名,就是通过此文件对应得到的。
  • 第四字段: 用户列表,每个用户之间用,号分割;本字段可以为空;如果字段为空表示用户组为GID的用户名;

/etc/shadow 存储用户的密码

在这里插入图片描述

  • 用户名
    同 /etc/passwd 文件的用户名有相同的含义。
  • 加密密码
    加盐 盐加密

    这里保存的是真正加密的密码。目前 Linux 的密码采用的是 SHA512 散列加密算法,原来采用的是 MD5 或 DES 加密算法。SHA512 散列加密算法的加密等级更高,也更加安全。
    注意,这串密码产生的乱码不能手工修改,如果手工修改,系统将无法识别密码,导致密码失效。很多软件透过这个功能,在密码串前加上 “!”、" * " 或 " x " 使密码暂时失效。
    所有伪用户的密码都是 “!!” 或 " * ",代表没有密码是不能登录的。当然,新创建的用户如果不设定密码,那么它的密码项也是 “!!”,代表这个用户没有密码,不能登录。
  • 最后一次修改时间
    此字段表示最后一次修改密码的时间,可是,为什么 root 用户显示的是 15775 呢?这是因为,Linux 计算日期的时间是以 1970 年 1 月 1 日作为 1 不断累加得到的时间,到 1971 年 1 月 1 日,则为 366 天。这里显示 15775 天,也就是说,此 root 账号在 1970 年 1 月 1 日之后的第 15775 天修改的 root 用户密码。
    那么,到底 15775 代表的是哪一天呢?可以使用如下命令进行换算:
    [root@localhost ~]# date -d “1970-01-01 15775 days”
    2013年03月11日 星期一 00:00:00 CST
    可以看到,通过以上命令,即可将其换算为我们习惯的系统日期。
  • 最小修改时间间隔
    最小修改间隔时间,也就是说,该字段规定了从第 3 字段(最后一次修改密码的日期)起,多长时间之内不能修改密码。如果是 0,则密码可以随时修改;如果是 10,则代表密码修改后 10 天之内不能再次修改密码。
    此字段是为了针对某些人频繁更改账户密码而设计的。
  • 密码有效期
    经常变更密码是个好习惯,为了强制要求用户变更密码,这个字段可以指定距离第 3 字段(最后一次更改密码)多长时间内需要再次变更密码,否则该账户密码进行过期阶段。
    该字段的默认值为 99999,也就是 273 年,可认为是永久生效。如果改为 90,则表示密码被修改 90 天之后必须再次修改,否则该用户即将过期(或者按照后面的字段处理)。管理服务器时,通过这个字段强制用户定期修改密码。
  • 密码需要变更前的警告天数
    与第 5 字段相比较,当账户密码有效期快到时,系统会发出警告信息给此账户,提醒用户 “再过 n 天你的密码就要过期了,请尽快重新设置你的密码!”。
    该字段的默认值是 7,也就是说,距离密码有效期的第 7 天开始,每次登录系统都会向该账户发出 “修改密码” 的警告信息。
  • 密码过期后的宽限天数
    也称为“口令失效日”,简单理解就是,在密码过期后,用户如果还是没有修改密码,则在此字段规定的宽限天数内,用户还是可以登录系统的;如果过了宽限天数,系统将不再让此账户登陆,也不会提示账户过期,是完全禁用。
    比如说,此字段规定的宽限天数是 10,则代表密码过期 10 天后失效;如果是 0,则代表密码过期后立即失效;如果是 -1,则代表密码永远不会失效。
  • 账号失效时间
    同第 3 个字段一样,使用自 1970 年 1 月 1 日以来的总天数作为账户的失效时间。该字段表示,账号在此字段规定的时间之外,不论你的密码是否过期,都将无法使用!
    该字段通常被使用在具有收费服务的系统中。
  • 保留
    这个字段目前没有使用,等待新功能的加入。

/etc/gshwdow 存储组用户的密码信息

etc/gshadow是/etc/group的加密资讯文件,比如用户组(Group)管理密码就是存放在这个文件。/etc/gshadow和/etc/group是互补的两个文件;对于大型服务器,针对很多用户和组,定制一些关系结构比较复杂的权限模型,设置用户组密码是极有必要的。比如我们不想让一些非用户组成员永久拥有用户组的权限和特性,这时我们可以通过密码验证的方式来让某些用户临时拥有一些用户组特性,这时就要用到用户组密码;

  • 第一字段:用户组
  • 第二字段:用户组密码,这个段可以是空的或!,如果是空的或有!,表示没有密码;
  • 第三字段:用户组管理者,这个字段也可为空,如果有多个用户组管理者,用,号分割;
  • 第四字段:组成员,如果有多个成员,用,号分割;在这里插入图片描述

修改用户信息

修改用户说明,修改用户副组

  • usermod -c “test user” lamp:修改用户的说明
  • usermod -G root lamp:把lamp用户加入root组
  • usermod -L lamp :锁定用户
  • usermod -U lamp:解锁用户

修改用户状态

  • 命令 :change -参数 用户名
    选项:
  • -l(小L):列出用户的详细密码状态
  • -d日期:修改密码最后一次更改日期(shadow中第三字段)
  • -m天数:两次密码修改间隔(4字段)
  • -M天数:密码有效期(5字段)
  • -W天数:密码过期前警告天数(6字段)
  • -I (大i)天数:密码过后宽限天数(7字段)
  • -E 日期:账号失效时间(8字段)
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_49449205/article/details/113615391