查看原文
其他

Linux多用户管理

良许Linux 2024-04-20

The following article is from Linux兵工厂 Author YuLinMuRong


START

1、ls -l扩展

ls -l 命令用于列出指定目录下的文件和文件夹,并显示详细信息。下面是 ls -l 命令输出的详细信息解释:

-rw-r--r-- 1 user group   4096 Feb 21 10:30 file.txt

详细解释如下:

  1. 文件权限和类型:

  • -rw-r--r--:代表文件权限和类型。第一个字符表示文件类型,后面九个字符分为三组,每组三个字符代表文件所有者、文件所属组和其他用户的权限。- 表示普通文件,d 表示目录,l 表示符号链接等。
  • 链接数:

    • 1:代表链接数,即有多少个文件名连接到该inode节点。默认情况下,一个文件有一个硬链接,所以通常显示为1。
  • 所有者和所属组:

    • user:文件的所有者。
    • group:文件所属的用户组。
  • 文件大小:

    • 4096:文件的大小(以字节为单位)。如果是目录,通常显示目录的大小。
  • 修改时间:

    • Feb 21 10:30:文件的最后修改时间。
  • 文件名:

    • file.txt:文件的名称。

    注意:ls -l 命令默认显示的是当前目录下的文件信息,如果要查看其他目录下的文件信息,需要提供相应的目录路径作为参数。

    0

    硬链接数

    在Linux中,硬连接数指的是一个文件拥有的硬链接的数量。硬链接是文件系统中的一个概念,它允许一个文件拥有多个文件名(路径),这些文件名指向同一个文件的数据块。换句话说,多个文件名指向同一个inode。

    当创建一个硬链接时,操作系统会在文件系统中创建一个新的目录项,并将该目录项指向原始文件的inode。这样,即使使用不同的文件名访问文件,实际上仍然是访问同一个文件。因此,硬链接数表示有多少个文件名(路径)指向同一个inode。

    值得注意的是,文件的硬链接数不仅仅与文件名有关,而且与目录结构有关。即使文件名被删除,只要仍然有一个或多个硬链接指向该文件的inode,文件本身就会保持存在,直到所有的硬链接都被删除为止。

    硬链接数通常可以通过 ls -l 命令输出的第一个字段来查看。例如,如果一个文件的 ls -l 输出为:

    -rw-r--r-- 2 user group   4096 Feb 21 10:30 file.txt

    那么硬链接数为2,表示有两个文件名(路径)指向同一个inode,即该文件有两个硬链接。

    2、chmod命令

    chmod 命令用于修改文件或目录的权限。它可以修改文件的读(r)、写(w)和执行(x)权限,也可以修改文件的所有者、所属组和其他用户的权限。以下是 chmod 命令的基本语法和用法:

    chmod [选项] 模式 文件名

    其中,选项 包括:

    • -R:递归地修改指定目录及其子目录下的文件和目录的权限。
    • -v:显示详细信息,包括每个文件的权限修改情况。

    模式 包括以下几种形式:

    1. 符号模式:

    • 符号模式以字母来表示权限,包括 u(所有者)、g(所属组)、o(其他用户)和 a(所有用户),以及 +(添加权限)、-(移除权限)和 =(设定权限)操作符。
    • 例如,chmod u+x file.txt 表示给文件所有者添加执行权限。
  • 数字模式:

    • 数字模式以三位数字来表示权限,每一位分别代表所有者、所属组和其他用户的权限。其中,r(读)权限对应4,w(写)权限对应2,x(执行)权限对应1,没有权限对应0。
    • 例如,chmod 755 file.txt 表示将文件的权限设置为 rwxr-xr-x。

    文件名 是要修改权限的文件或目录的名称。

    举例来说,要给文件 example.txt 添加读、写权限,并且只有文件所有者可以执行该文件,可以使用以下命令:

    chmod u+rw,go-rx example.txt

    这将文件 example.txt 的权限设置为 -rw-------

    3、超级用户

    在Linux系统中,超级用户(Superuser)是具有特殊权限的用户账户,通常称为“root”。超级用户拥有对系统的完全控制权,可以执行所有的操作,包括创建、修改和删除系统文件、管理用户账户、安装和卸载软件等。

    以下是超级用户的一些特点和权限:

    1. 完全控制权: 超级用户拥有对系统的完全控制权,可以执行任何操作,包括对系统进行配置、管理、维护和修复。

    2. 访问所有文件和目录: 超级用户可以访问系统中的所有文件和目录,包括系统文件和其他用户的文件。

    3. 权限不受限制: 超级用户对系统的操作不受权限限制,可以绕过文件和目录的权限控制,执行任何操作。

    4. 修改系统配置: 超级用户可以修改系统的配置信息,包括网络配置、用户账户配置、软件包管理等。

    5. 安装和卸载软件: 超级用户可以安装和卸载软件包,管理系统上的软件和程序。

    6. 重要性: 超级用户账户是Linux系统中最重要和最强大的账户之一,需要谨慎使用,以免意外造成系统损坏或数据丢失。

    要成为超级用户,通常需要在Linux系统中使用 su 命令或者 sudo 命令来切换到超级用户身份。需要注意的是,为了安全起见,一般情况下不建议长时间以超级用户身份运行系统,应当尽可能以普通用户身份运行系统,只有在需要时临时切换到超级用户身份执行特权操作。

    4、组管理

    在Linux系统中,组管理命令用于管理用户组,包括创建用户组、添加用户到用户组、从用户组中删除用户等操作。以下是常用的组管理命令及其用法:

    1. 创建用户组:

    • groupadd:用于创建新的用户组。
    • 语法:groupadd [选项] 组名
    • 示例:groupadd mygroup
  • 删除用户组:

    • groupdel:用于删除现有的用户组。
    • 语法:groupdel 组名
    • 示例:groupdel mygroup
  • 修改用户组:

    • groupmod:用于修改现有用户组的属性。
    • 语法:groupmod [选项] 组名
    • 示例:groupmod -g 1001 mygroup(修改用户组ID为1001)
  • 查看用户组信息:

    • groups:用于查看指定用户所属的用户组。
    • 语法:groups [用户名]
    • 示例:groups username
  • 添加用户到用户组:

    • usermod:用于修改用户的属性,包括添加用户到用户组。
    • 语法:usermod -aG 组名 用户名
    • 示例:usermod -aG mygroup username(将用户添加到名为 mygroup 的用户组)
  • 从用户组中删除用户:

    • gpasswd:用于管理用户组密码文件,可以添加、删除组成员。
    • 语法:gpasswd -d 用户名 组名
    • 示例:gpasswd -d username mygroup(从 mygroup 用户组中删除用户)
  • 列出用户组信息:

    • getent:用于从数据库中获取用户组信息。
    • 语法:getent group
    • 示例:getent group

    这些命令可以帮助管理员有效地管理Linux系统中的用户组,包括创建、删除、修改和查看用户组信息等操作。

    5、用户管理

    在Linux系统中,用户管理命令用于创建、修改、删除用户账户,以及管理用户账户的属性和权限。以下是常用的用户管理命令及其用法:

    1. 创建用户账户:

    • useradd:用于创建新的用户账户。
    • 语法:useradd [选项] 用户名
    • 示例:useradd -m -g myuser
    • 其中m参数是自动创建用户家目录,如果不加此参数则不创建;-g参数指定用户所属组,如果不加此参数则默认与用户名相同的组
  • 删除用户账户:

    • userdel:用于删除现有的用户账户。
    • 语法:userdel 用户名
    • 示例:userdel myuser
  • 修改用户账户:

    • usermod:用于修改现有用户账户的属性。
    • 语法:usermod [选项] 用户名
    • 示例:usermod -c "My User" myuser(修改用户账户的注释信息)
  • 设置用户密码:

    • passwd:用于设置用户账户的密码。
    • 语法:passwd [用户名]
    • 示例:passwd myuser
  • 查看用户账户信息:

    • id:用于查看指定用户账户的用户ID和所属组ID。
    • 语法:id [用户名]
    • 示例:id myuser
  • 切换用户身份:

    • su:用于切换当前用户的身份到指定用户。
    • 语法:su [用户名]
    • 示例:su myuser
  • 列出所有用户账户信息:

    • cat /etc/passwd:用于列出系统中所有用户账户的信息。

    这些命令可以帮助管理员有效地管理Linux系统中的用户账户,包括创建、删除、修改、设置密码、查看信息等操作。需要注意的是,在使用这些命令时需要以root权限运行,或者通过sudo命令获取足够的权限。

    6、查看用户信息

    在Linux中,可以使用多种命令来查看用户信息。以下是常用的几种方法:

    1. 查看单个用户信息:

    • id命令:用于查看指定用户的用户ID(UID)和所属组ID(GID)。

      id 用户名

      示例:id myuser

  • 查看所有用户信息:

    • /etc/passwd文件:该文件包含了系统上所有用户账户的信息,每行对应一个用户账户。可以使用catless等命令查看该文件的内容。

      cat /etc/passwd
    • getent命令:该命令用于从数据库中获取用户和组信息,包括用户ID、组ID、用户名、登录Shell等。

      getent passwd
  • 查看当前登录用户信息:

    • whoami命令:用于显示当前登录用户的用户名。

      whoami
  • 查看用户组信息:

    • groups命令:用于显示指定用户所属的用户组。

      groups 用户名

      示例:groups myuser

    这些命令可以帮助您查看Linux系统中用户的基本信息,包括用户ID、组ID、用户名、所属组、登录Shell等。

    7、切换用户

    在Linux中,可以使用以下几种方法来切换用户:

    1. su命令:su(Switch User)命令用于切换当前用户的身份到指定用户。如果不指定用户,则默认切换到超级用户(root)。

      su [用户名]

      示例:su myuser

    2. sudo命令:sudo(Superuser Do)命令允许普通用户以超级用户的身份执行特定命令。通过sudo命令,用户可以在不知道超级用户密码的情况下以超级用户身份执行命令。

      sudo 命令

      示例:sudo ls -l /root

    3. 登录Shell:可以直接使用登录Shell来切换用户。对于已存在的用户,可以使用其用户名直接登录。

      su - [用户名]

      示例:su - myuser

    使用这些方法可以在Linux系统中方便地切换用户,执行不同用户权限下的操作。需要注意的是,切换用户时需要输入相应用户的密码(对于su命令和登录Shell方式),或者是当前用户需要拥有sudo权限才能使用sudo命令。



    春招已经开始啦,大家如果不做好充足准备的话,春招很难找到好工作。


    送大家一份就业大礼包,大家可以突击一下春招,找个好工作!


    继续滑动看下一个
    向上滑动看下一个

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存