博客
关于我
Linux (CentOS)用户与文件
阅读量:606 次
发布时间:2019-03-13

本文共 2541 字,大约阅读时间需要 8 分钟。

Linux系统的用户管理是一个核心任务,了解和掌握相关命令和知识点对于系统管理来说非常重要。在这里,我将从身份、用户组、用户操作、权限管理等多个方面,为你详细介绍Linux用户管理的相关知识。

身份

在Linux系统中,身份主要分为以下几种:

  • 管理员:UID为0,系统管理员用户

    -UID为0的用户通常拥有最高权限,能够对系统进行管理如安装软件、配置服务器等。这些用户通常是系统管理员。

  • 系统用户(UID1~999)

    -Linux系统为防止服务程序被黑客提权导致整个服务器被控制,默认会运行在独立的用户账户中。这样即使一个服务程序被 compromises, attacker 也无法获取整个系统的权限,只能受限于该服务用户的权限。

  • 普通用户(UID1000及以上)

    -普通用户是由管理员创建的用于日常工作的用户,权限通常较低,适用于普通用户和开发人员。

  • 用户组

    Linux系统中的用户组管理也非常重要:

  • 基本用户组

    -每个用户都默认属于一个基本用户组。这与Windows中的用户组类似,但用户只能属于一个基本用户组。

  • 扩展用户组

    -用户可以属于多个扩展用户组。例如,一个用户可能同时属于“开发者组”和“管理组”,这会赋予他在不同情境下的不同的权限。

  • 用户组的创建

    -默认情况下,当创建一个用户时,会为他创建一个对应的基本用户组,该组中只有他一个人。而且,其他用户可以被汇总到其他用户组中。

  • 理解用户和用户组的关系对于配置权限和监控用户访问非常重要。


    用户操作

    新用户的创建

    • useradd命令

      -语法:useradd [选项] 用户名
      -默认用户家目录在/home/用户名,默认shell是/bin/bash。例如:

      useradd -d /home/linux -u 8888 -s /sbin/nologin chen_u1

      这个命令创建一个名为chen_u1的用户,指定了他家目录为/home/linux,UID为8888(默认用户从1000开始),并设置了不可登录的shell。

    • 查询用户信息

      -使用id命令:

      id chen_u1

      这将显示chen_u1用户的详细信息,如UID、GID(用户组ID)、用户组、shell等。


    用户权限的修改

    • usermod命令
      -语法:usermod [选项] 用户名
      -可以修改用户的名称、组、Uid、Gid、注释、shell、显示名等属性。

    例如,修改用户的GID(用户组ID):

    usermod -g 1000 chen_u1

    密码管理

    • passwd命令

      -语法:passwd
      -修改当前用户的密码,如:

      passwd

      将提示你输入旧密码和新密码。如果输入错误可能会失败,但不会显示错误信息。

    • 强制密码修改

      -如果希望用户在下次登录时修改密码,可以使用-e选项:

      passwd -e
    • 禁用账户

      -使用-l选项禁用账户:

      passwd -l chen_u1

      账户变为不可登录,用户无法再登录系统。

    • 解锁账户

      -使用-u选项解锁:

      passwd -u chen_u1

    删除用户

    • userdel命令
      -语法:userdel [选项] 用户名
      -默认情况下,用户和其家目录会被删除。使用-r参数可以删除用户及其所有相关数据:
      userdel -r chen_u1

    权限管理

    基本权限类型

    文件和目录权限通常用三位字符表示,分别代表读(r)、写(w)、执行(x)权限。例如:

    • -r-xr-x: 读和执行权限被允许,但写权限不允许。

    文件和目录权限的修改

    • chmod命令

      -语法:chmod [参数] permissions 文件或目录
      -参数可以是权限字符(如-rwxr--r--)或数字(如666)。

      例如:

      chmod 644 example.txt

      将设置example.txt的权限为644(读、写、执行)。

      或者用简写形式:

      chmod rw-r--r-- example.txt
    • chown命令

      -语法:chown [参数] owner:group 文件或目录
      -参数可以是用户名或UID,指定文件或目录的所有者和所属组。

      例如:

      chown root:bin text.txt

    特殊权限

    • suid权限

      -suid(set user ID bit)权限适用于可执行文件,使得执行文件时,其权限与文件所有者相同。 -命令:chmod u+s file`

    • sgid权限

      -sgid(set group ID bit)权限适用于文件或目录,赋予用户或组运行该文件或目录的权限。
      -命令:chmod g+s directory

    • sbit权限

      -sbit权限只能应用于目录,表示只有文件的拥有者才能删除该目录中的文件。不适用于普通文件。
      -命令:chmod o+t directory


    文件属性的隐藏设置

    • 隐藏属性的管理

      -使用命令chattr设置文件的隐藏属性:

      chattr +a xxx file

      参数+a表示设置隐藏属性。

      隐藏属性可以用于隐藏文件或限制文件的访问,例如隐藏敏感文件。


    文件访问控制列表(ACL)

    • 文件访问控制列表的功能

      -ACL允许创建针对特定用户或组的权限规则,使得管理员可以更精细地控制文件和目录的访问。

    • 设置ACL

      -使用命令setfacl

      setfacl -Rm u:chen_test:777 /root

      例如,-Rm表示递归设置ACL,u:chen_test:777指定了用户chen_test的权限。

    • 查看ACL

      -命令:getfacl。例如:

      getfacl /root

    其他常用命令

    • 切换用户身份

      -使用susudo命令切换用户:

      su - root

      或者:

      sudo command

      sudo命令允许执行特定命令的权限,而不需要管理员密码。

    • 限制用户权限

      -sudo的默认行为是记录每条命令的日志。例如:

      sudo -l

      会显示当前用户可执行的所有命令。

    • 配置sudo

      -配置文件/etc/sudoers决定了sudo权限的具体设置。只有root管理员才能编辑这个文件。


    通过以上命令和知识,您可以更好地管理Linux系统中的用户和权限。掌握这些技能对日常的系统维护和安全管理非常有帮助。

    转载地址:http://acyaz.baihongyu.com/

    你可能感兴趣的文章
    mysql中having的用法
    查看>>
    MySQL中interactive_timeout和wait_timeout的区别
    查看>>
    mysql中int、bigint、smallint 和 tinyint的区别、char和varchar的区别详细介绍
    查看>>
    mysql中json_extract的使用方法
    查看>>
    mysql中json_extract的使用方法
    查看>>
    mysql中kill掉所有锁表的进程
    查看>>
    mysql中like % %模糊查询
    查看>>
    MySql中mvcc学习记录
    查看>>
    mysql中null和空字符串的区别与问题!
    查看>>
    MySQL中ON DUPLICATE KEY UPDATE的介绍与使用、批量更新、存在即更新不存在则插入
    查看>>
    MYSQL中TINYINT的取值范围
    查看>>
    MySQL中UPDATE语句的神奇技巧,让你操作数据库如虎添翼!
    查看>>
    Mysql中varchar类型数字排序不对踩坑记录
    查看>>
    MySQL中一条SQL语句到底是如何执行的呢?
    查看>>
    MySQL中你必须知道的10件事,1.5万字!
    查看>>
    MySQL中使用IN()查询到底走不走索引?
    查看>>
    Mysql中使用存储过程插入decimal和时间数据递增的模拟数据
    查看>>
    MySql中关于geometry类型的数据_空的时候如何插入处理_需用null_空字符串插入会报错_Cannot get geometry object from dat---MySql工作笔记003
    查看>>
    mysql中出现Incorrect DECIMAL value: '0' for column '' at row -1错误解决方案
    查看>>
    mysql中出现Unit mysql.service could not be found 的解决方法
    查看>>