博客
关于我
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中出现Unit mysql.service could not be found 的解决方法
    查看>>
    mysql中出现update-alternatives: 错误: 候选项路径 /etc/mysql/mysql.cnf 不存在 dpkg: 处理软件包 mysql-server-8.0的解决方法(全)
    查看>>
    Mysql中各类锁的机制图文详细解析(全)
    查看>>
    MySQL中地理位置数据扩展geometry的使用心得
    查看>>
    Mysql中存储引擎简介、修改、查询、选择
    查看>>
    Mysql中存储过程、存储函数、自定义函数、变量、流程控制语句、光标/游标、定义条件和处理程序的使用示例
    查看>>
    mysql中实现rownum,对结果进行排序
    查看>>
    mysql中对于数据库的基本操作
    查看>>
    Mysql中常用函数的使用示例
    查看>>
    MySql中怎样使用case-when实现判断查询结果返回
    查看>>
    Mysql中怎样使用update更新某列的数据减去指定值
    查看>>
    Mysql中怎样设置指定ip远程访问连接
    查看>>
    mysql中数据表的基本操作很难嘛,由这个实验来带你从头走一遍
    查看>>
    Mysql中文乱码问题完美解决方案
    查看>>
    mysql中的 +号 和 CONCAT(str1,str2,...)
    查看>>
    Mysql中的 IFNULL 函数的详解
    查看>>
    mysql中的collate关键字是什么意思?
    查看>>
    MySql中的concat()相关函数
    查看>>
    mysql中的concat函数,concat_ws函数,concat_group函数之间的区别
    查看>>
    MySQL中的count函数
    查看>>