博客
关于我
Linux账号和权限管理
阅读量:226 次
发布时间:2019-02-28

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

Linux 用户账号和文件权限管理指南

Linux 系统通过用户账号和组账号机制对资源进行访问控制。本文将详细介绍用户账号的分类、UID/GID的管理、用户账号文件的使用方法以及文件/目录的权限和归属设置。


用户账号概述

在 Linux 系统中,用户账号分为三类:

  • 超级用户(root):拥有系统最高权限,通常用于系统管理。
  • 普通用户:由超级用户或其他管理员创建,权限受限制,通常只对自己的宿主目录有完整权限。
  • 程序用户:用于维护系统或特定程序运行,如 bindaemonftpmail 等,权限通常较低且不允许登录系统。

  • 组账号管理

    组账号用于将用户归类,便于权限管理。组账号分为两类:

  • 私有组(基本组):每个用户可以指定一个基本组,基本组的 GID 存储在 /etc/passwd 文件的第 4 个字段。
  • 公共组(附加组):用户可以添加多个附加组,这些组对权限的影响取决于组的位掩码设置。

  • UID 和 GID

    • UID(用户标识号):唯一标识一个用户账号,root 的 UID 为 0。
    • GID(组标识号):唯一标识一个组,root 的 GID 也为 0。
    • 普通用户:UID 和 GID 默认为 500-60000。

    用户账号文件

    /etc/passwd 文件

    • 保存用户账号的基本信息,如用户名、宿主目录、登录 Shell 等。
    • 所有用户都可读,但只有 root 可写。
    • 格式:用户名:x:UID:GID:全名:宿主目录:登录 Shell

    /etc/shadow 文件

    • 保存用户密码信息和账号状态。
    • 默认只有 root 可读,且不允许直接编辑。
    • 格式:用户名:加密后的密码:上次修改时间:密码有效天数:密码过期警告天数:禁用天数:失效时间

    添加用户账号

    useradd 命令

    • 格式:useradd [选项] 用户名
    • 选项:
      • -u:指定 UID。
      • -d:指定宿主目录。
      • -g:指定基本组。
      • -G:指定附加组。
      • -M:不创建宿主目录。
      • -s:指定登录 Shell。

    设置用户密码

    • 方法一passwd 用户名
    • 方法二echo "密码" | passwd --stdin 用户名

    修改用户账号

    usermod 命令

    • 格式:usermod [选项] 用户名
    • 选项包括:修改 UID、宿主目录、GID、附加组、登录 Shell 等。

    删除用户账号

    userdel 命令

    • 格式:userdel [-r] 用户名
    • 选项:-r 可删除宿主目录。

    用户账号的初始配置文件

    • 用户账号的初始配置文件位于 /etc/skell,默认隐藏文件。
    • 主要文件包括:
      • ~/.bash_profile:登录时执行的配置文件。
      • ~/.bashrc:BASH 启动时执行的配置文件。
      • ~/.bash_logout:退出时执行的脚本。

    组账号文件

    • /etc/group:保存组账号的基本信息。
    • /etc/gshadow:保存组账号的密码信息。

    组账号管理

    添加组账号

    • 命令:groupadd [-g GID] 组名

    添加组成员

    • 命令:gpasswd [-a] 组名 用户名

    查询账号信息

    查询用户所属组

    • 命令:groups 用户名

    查询用户身份标识

    • 命令:id 用户名

    查询账号详细信息

    • 命令:finger 用户名

    文件/目录权限和归属

    权限类型

    • 读取(r):查看文件内容或目录列表。
    • 写入(w):修改文件内容或目录中的文件。
    • 可执行(x):运行程序或切换目录。

    属主和归属

    • 属主:文件或目录的所有者。
    • 属组:文件或目录所属的组账号。

    设置文件/目录权限

    chmod 命令

    • 格式:chmod [ugoa] [+/-=] [rwx]
    • 示例:chmod 755 目录(更改目录权限为 755)。

    chown 命令

    • 格式:chown [属主:属组] 文件或目录
    • 示例:chown root:staff 文件

    设置默认权限

    • 默认权限:umask 022
    • 例子:
      • umask 000:新建文件或目录权限为 000
      • umask 022:新建文件或目录权限为 022

    通过以上方法,管理员可以轻松管理用户账号和文件权限,确保系统安全和稳定运行。

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

    你可能感兴趣的文章
    Objective-C实现levenshteinDistance字符串编辑距离算法(附完整源码)
    查看>>
    Objective-C实现lfu cache缓存算法(附完整源码)
    查看>>
    Objective-C实现LFU缓存算法(附完整源码)
    查看>>
    Objective-C实现linear algebra线性代数算法(附完整源码)
    查看>>
    Objective-C实现linear congruential generator线性同余发生器算法(附完整源码)
    查看>>
    Objective-C实现linear discriminant analysis线性判别分析算法(附完整源码)
    查看>>
    Objective-C实现linear regression线性回归算法(附完整源码)
    查看>>
    Objective-C实现linear search线性搜索算法(附完整源码)
    查看>>
    Objective-C实现Linear search线性搜索算法(附完整源码)
    查看>>
    Objective-C实现LinearSieve线性素数筛选算法 (附完整源码)
    查看>>
    Objective-C实现LinkedListNode链表节点类算法(附完整源码)
    查看>>
    Objective-C实现LinkedList链表算法(附完整源码)
    查看>>
    Objective-C实现local weighted learning局部加权学习算法(附完整源码)
    查看>>
    Objective-C实现logistic regression逻辑回归算法(附完整源码)
    查看>>
    Objective-C实现logistic sigmoid函数(附完整源码)
    查看>>
    Objective-C实现longest Common Substring最长公共子串算法(附完整源码)
    查看>>
    Objective-C实现longest increasing subsequence最长递增子序列算法(附完整源码)
    查看>>
    Objective-C实现longestCommonSubsequence最长公共子序列算法(附完整源码)
    查看>>
    Objective-C实现LongestIncreasingSubsequence最长递增子序列算法(附完整源码)
    查看>>
    Objective-C实现lorenz transformation 洛伦兹变换算法(附完整源码)
    查看>>