zoukankan      html  css  js  c++  java
  • Linux 入门记录:十一、Linux 用户基础

    一、用户、组

    1. 用户

    当我们使用 Linux 时,需要以一个用户的身份登录,一个进程也需要以一个用户的身份运行。用户限制使用者或进程可以使用或不可以使用哪些资源。

    2. 组

    组用来方便地管理用户。

    • 每个用户拥有唯一 uid,操作系统实际使用的是用户 ID,而不是用户名
    • 每个用户属于一个主组,属于一个或多个附属组
    • 每个组拥有一个 gid
    • 每个进程以一个用户身份运行,并受该用户可访问的资源限制
    • 每个可登陆用户拥有一个特定的 Shell

    二、用户

    用户 ID 为 32 位,从 0 开始, 但是为了和旧系统兼容,用户 ID 限制在 60000 以下。Linux 用户分为以下三种:

    • root 用户(ID 为 0 的用户为 root 用户)
    • 系统用户(ID 范围 1 ~ 499),专门为使用某些程序或服务的用户,没有 Shell
    • 普通用户(ID 为 500 以上)

    系统中每个文件都有一个所属用户及所属组。

    使用 id [username] 命令可以显示当前用户的信息。使用命令 passwd [username] 可以修改当前用户密码。指定用户名可以显示特定用户的信息和密码。

    下图中,普通用户 mingc 的 uid 为500,gid 为 500。

    每个用户在创建以后,默认会创建一个与该用户同名的主组(gid),并且该用户属于该组。

    后面的 groups 是附属组。

    三、相关文件

    这里有关用户的(配置)文件有 3 个:

    • /etc/passwd - 该用户文件用于保存用户信息
    • /etc/shadow - 该密码文件保存用户密码(加密的)
    • /etc/group    - 组文件保存了组信息

     1. 看看 /etc/passwd 文件用户信息:

    其中,每一行都是一个用户信息,多个字段之间用冒号 ":" 分隔,格式为:

    用户名:密码:用户ID:组ID:描述信息:用户目录:登陆用的Shell
    

    “密码”显示 "x" 表示用户密码保存在 /etc/shadow 密码文件里。

    上图中:

    mingc 用户(就是我了),uid 为 500(在 500 以上)表示普通用户,我的用户目录是 /home/mingc,使用的 Shell 是 /bin/bash,就是大家都用的 Bash 了。

    apache 用户,uid 为48(在 1 ~ 499 之间)表示系统用户,他的用户目录是 /var/www 目录,使用的 Shell 是 /sbin/nologin,即没有 Shell。这个系统用户显然是用来专门使用 Apache 服务的。

    uid 为 0 的自然是 root 用户了。

    2. 再看下 /etc/shadow 密码文件信息:

    其中,每一行都是一个用户密码信息,多个字段之间用冒号 ":" 分隔,格式为:

    用户名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

    “加密口令”显示星号 "*" 表示账号被锁定,两个感叹号 "!!" 表示密码已过期,"$6$" 开头表示加密类型是 SHA-512 加密。

    详细请参考这里:Linux 下 /etc/shadow 文件

    3.  /etc/group 组信息:

    其中,每一行都是一个组信息,多个字段之间用冒号 ":" 分隔,格式为:

    组名:组密码:组ID:组用户
    

    “密码”显示 "x" 表示密码保存在 /etc/gshadow 组密码文件里。

    “组密码”现在几乎不用了,以前旧的系统上没有附属组的概念,一个用户只能属于一个组,但很多时候需要用户属于多个组,只要用户知道要换的那个组的“组密码”,就可以切换所属组。但现在有了附属组的概念,所以这个“组密码”几乎不用了。留着是为了向后兼容。

    四、查看登录用户

    • 命令 whoami 显示当前用户
    • 命令 who 显示有哪些用户已经在登录系统
    • 命令 w 显示有哪些用户已经在登录并且在干什么

    Linux 中有个约定俗成的习惯,命令越长,显示出来的信息越少,命令越短,显示出来的信息越多。这三个哲学命令就是这样的:

    五、创建新用户

     命令 useradd 用来创建一个新用户:

    useradd username

    这个命令会执行以下操作:

    1. 在 /etc/passwd 用户文件中添加用户信息
    2. 如果使用 passwd [username] 命令创建密码,则将该密码保存在 /etc/shadow 密码文件中
    3. 为用户建立一个新的用户目录:/home/username
    4. 将 /etc/skel 中的文件拷贝到用户目录中,比如一些必要的说明文档
    5. 建立一个与用户名同名的组,该用户默认属于该组

    常用参数:

    -d    指定用户目录
    -s    指定登录Shell
    -u    指定用户ID(uid)
    -g    指定主组ID(gid)
    -G    指定附属组,组名或组id(最多 31 个,用逗号 "," 分割)

    也可以通过直接修改用户信息文件 /etc/passwd 的方式实现,但不建议

    六、修改用户信息

    命令 usermod 用来修改用户信息:

    usermod 参数 username

    常用参数:

    -l     新用户名
    -u     新用户ID
    -d     新的用户目录
    -g     所属主组
    -G     所属附属组
    -L     锁定用户使其不能登录
    -U     解除锁定
    

      

    七、删除用户

    命令 userdel 用来删除指定用户:

    userdel username      (会保留 /home 下的用户目录)
    userdel -r username   (同时删除用户目录)
    

      

    八、组

    几乎所有操作系统都有组的概念,通过组,我们可以更加方便地归类和管理用户。一般来讲,我们使用部门、职能和地理区域的分类方式来创建使用组。

    • 每个组都有一个组ID(gid)
    • 组信息保存在组文件 /etc/group 中
    • 每个用户都拥有一个主组,同时还可以拥有最多 31 个附属组

    九、创建、修改、删除组

    命令 groupadd 用来创建新组:

    groupadd groupname
    

    命令 groupmod 用来修改组信息:

    groupmod -n newname oldname     修改组名
    groupmod -g newid groupname     修改组ID(gid)
    

    命令 groupdel 用来删除组:

    groupdel groupname
    

    相关链接:Linux之用户、权限的管理

  • 相关阅读:
    SqlServer 查看数据库中所有存储过程
    SqlServer 查看数据库中所有视图
    SqlServer 查询表的详细信息
    SqlServer 遍历修改字段长度
    net core 操作Redis
    Tuning SharePoint Workflow Engine
    Open With Explorer
    Download language packs for SharePoint 2013
    Change Maximum Size For SharePoint List Template when Saving
    Six ways to store settings in SharePoint
  • 原文地址:https://www.cnblogs.com/mingc/p/7587960.html
Copyright © 2011-2022 走看看