zoukankan      html  css  js  c++  java
  • Linux用户管理详解

    一、用户与用户组的概念

    在计算机里面创建的用户必须属于一个组,一个组中可以有多个用户,一个用户可以分别属于多个组,但是要注意:一个用户只能有一个初始组,可以有多个附属组。

    初始组(主组):给用户一开始分配的或加入的组,一个用户只能有一个初始组。

    附加组(附属组):后面给用户分配的组,附属组可以有多个。

    二、用户与用户组的配置文件

    在linux 里面,通过使用配置文件来记录用户与用户组信息的。有4个配置文件:

    • 用户组的配置文件:/etc/group
    • 用户组的密码文件:/etc/gshadow
    • 用户的配置文件:/etc/passwd
    • 用户密码的配置文件:/etc/shadow

    1. /etc/group 用户组的配置文件

    每一行是表示一个组,用冒号分成了4列。

    第一列:表示组名。

    第二列:表示组密码,此处是x,x不是真正的密码,真正的密码是存储到/etc/gshadow配置文件里面的。

    第三列:组的id(GID) 0表示是管理员组 1-499是系统组,系统默认创建的组。500-65535之间是我们自己创建的组。

    第四列:隶属于该附属组的用户。

    2. /etc/gshadow 用户组的密码文件

    每一行是表示一个组,用冒号分成了4列,每一行和/etc/group配置文件里面的行一一对应。

    第一列:组的名称。

    第二列:组的密码,如果为! 或空则表示没有密码。

    第三列:组的管理员。

    第四列:隶属于该附属组的用户。

    3. /etc/passwd 用户的配置文件

    每一行表示一个用户,通过使用冒号分成7列。

    第一列:用户的名称。

    第二列:用户的密码,此处的x不是真正的密码,真正的密码是保存在/etc/shadow文件中的,

    第三列:用户的id,如果是0,则是超级管理员,1-499是系统创建的用户(伪用户)的id,500-65535是我们自己创建的用户的id,如果把一个普通用户的id改成0,则该用户变成了超级管理员了。注意:伪用户不能登录,不能删除。

    第四列:用户的主组的组id,在创建一个用户时,如果没有指定该用户的主组,则会自动生成一个和用户名同名的组,该组就该用户的主组。

    第五列:用户的备注信息。

    第六列:用户的家目录。

    第七列:shell类型,执行的命令集类型。

    4. /etc/shadow 用户密码的配置文件

    每一行表示一个用户, 每一行和/etc/passwd配置文件里面的行一一对应。

    第一列:用户的名称。

    第二列:用户的密码,该密码是加密后的密码,如果有!或*则是没有密码。

    三、用户组管理命令

    1. 添加用户组

    groupadd [选项] 组名
    -g 添加用户组时指定组ID

    案例:创建zu1组和id为888的zu2

    2. 修改用户组信息

    groupmod [选项] 组名
    -n 修改组名
    -g 修改组ID

    案例1:把zu1改名为zu3

    语法:groupmod -n 新组名 旧组名

    案例2:把zu2组的组id改为999

    语法:groupmod -g 999 组名

    3. 删除用户组

    groupdel 组名

    注意:如果一个组下有用户,是不能删除这个组的

    案例:比如把前面创建的zu2组给删除掉

    四、用户管理

    1. 添加用户

    useradd [选项] 用户名
    -g group_name 添加用户指定所属主组
    -d home 添加用户时指定自己的家目录

    案例1:添加一个刘备的用户。

    注意:在创建一个用户时,如果没有指定该用户的主组,则会自动生成一个和用户名同名的组,该组就该用户的主组。

    案例2:添加一个sanguo组,在该组里面添加一个guanyu的用户。

    案例3:添加一个zhangfei的用户,主组为sanguo,家目录为“/xiaofei”。

    2. 修改用户

    usermod [选项] 用户名
    -c comment 修改备注信息
    -l login_name 修改用户名
    -d home_dir 修改用户家目录
    -g group_name 修改用户所属组

    案例:把guanyu改名为guangong并且把家目录改为/home/xiaoguan

    3. 删除用户

    userdel [选项] 用户名
    -r 删除用户的家目录

    案例:删除guangong这个用户

    五、密码管理

    新建的用户,如果没有设置密码则是无法登陆的。

    passwd [选项] 用户
    -S 查看用户密码状态
    -l 锁定用户的密码(禁止登录)
    -u 解除用户密码锁定
    -d 删除用户密码

    案例1:给liebei设置密码

    加密之后的密码:

    案例2:锁定liubei用户

    锁定liubei用户后,密码的状态:

    也可以直接修改/etc/shadow文件里面用户的密码,也能够完成用户的锁定,注意,在修改密码时,一般在该密码前面添加一个特殊的符号,比如使用!,当解除锁定时,直接把密码前面的特殊符号给去掉即可。

    案例3:删除liubei用户的密码。

    删除用户密码的用户,只能在本地登陆,不能进行远程登录。

    案例4:查看liubei用户的密码状态。

    六、禁止账号登陆

    1. 禁止某个账号登陆

    方式一:通过 passwd –l 用户名 命令执行。

    方式二:通过修改 /etc/shadow 配置文件中,用户对应的密码内容,一般前面添加特殊字符。

    2. 禁止所有普通账号登陆

    想要禁止所有的用户登录,则需要在/etc目录下面新建一个 nologin 的文件。

    建立一个新文件的命令是 touch /etc/nologin 命令。

    注意:无法禁用root用户。

    七、添加删除组成员

    gpasswd [选项] 组名
    -a user_name 添加组成员
    -d user_name 删除组成员

    案例:把liubei用户添加到sanguo附属组。

    八、赋予普通用户特殊权限

    普通用户的权限受限,比如通过普通用户执行添加用户的操作,会出现如下的提示:

    /etc/sudoers 在这个文件中,记录了哪些用户可以执行哪些命令。

    visudo 或 vi /etc/sudoers 这两个命令都可以用来管理 /etc/sudoers 文件。

    案例:比如给liubei用户授予添加用户的权限。

    使用 visudo 命令:

    切换到liubei登录用户,使用 sudo –l 查看当前用户可以执行哪些指令

    使用“sudo 某些命令” 来执行特权命令。

    sudo useradd 添加的用户

    whereis 命令,查看该命令的全路径。

  • 相关阅读:
    AtCoder 杂题乱写
    JOISC2020 遗迹
    【考试总结】20220107
    AGC021F Trinity
    CCPC2021 广州A/CF Gym103415A
    【考试总结】20220115
    JDK8 时间api当天的开始和截至时间
    技术方案模板
    正则表达式
    组合算法
  • 原文地址:https://www.cnblogs.com/chenjiacheng/p/6522561.html
Copyright © 2011-2022 走看看