用户与用户组

    技术2025-06-23  14

    目录

    概念用户和用户组管理用户管理用户账号添加:设置用户密码删除用户修改用户账号 用户组管理添加用户组删除用户组修改用户组属性用户组切换 用户切换su命令切换sudo命令 补充用户信息查询

    概念

    1:用户

    Linux 是一个多用户、多任务的分时操作系统在一台 Linux 主机上,可能同时登录了多名用户。用户的账号相关信息(密码除外)放在目录 /etc/passwd 中,密码放在 /etc/shadow 中

    2:文件所有者

    指文件的拥有者,默认创建文件的用户即为文件所有者。也可以在创建时指定其他用户为文件所有者,或通过高级用户更改。

    3:用户组(可能拥有类似功能)

    Linux 系统中用户大体分为:

    管理员(root):规定用户 id 为 0普通用户:系统用户:保障系统运行,其用户 id 为 1——499。为普通用户自行分组

    用户组的信息存放于 /etc/group 文件中

    4:文件所属组

    假设:当前系统有个用户组为 whs ,其中包含 A,B,C,D 4个用户。当前有一个文件 file, 若设置文件所属组为 whs ,并设置对齐文件的权限为可读可写,那么whs用户组的 4个用户对文件file 都有读写操作的权限。

    5:其他用户

    不属于whs 用户组,属于其他用户组的用户

    6::root

    超级用户,拥有普通用户的一切权限。可以创建、删除、普通用户和用户组。设置用户权限等。

    用户和用户组管理

    用户管理

    用户账号添加:

    在系统中创建一个账号,并设置用户名,用户组,主目录,登录Shell等。

    useradd 命令:

    格式: useradd 【选项】用户名

    useradd命令常用选项:

    选项Value-d指定用户登录时的目录-c指定账号的备注文字-e指定账号的有效期限-f缓冲天数,密码过期时在指定天数后关闭该账号-g指定用户所属组-G指定用户所属的附加用户组-m自动建立用户的登录目录-r创建系统账号-s指定用户登录的shell-u指定用户id,若添加-o,可以与其他用户重复

    案例一:创建新用户 xm ,指定用户的主目录/home/user,并设置用户 id 为876

    1:切换为root用户 2:添加新用户的实质是在 /etc/passwd文件下添加一条记录,下面查看我们创建的用户 细节:

    普通用户通常要求不以数字和下划线作为用户名的第一个字符如果创建账号时未指定用户id、用户组、用户目录、登录Shell等信息,系统会自动指定相关信息。如果没指定用户组,那么系统会自动创建一个与用户同名的用户组,如上案例新增的用户未指定 uid ,此时新建用户是无法使用的
    设置用户密码

    passwd :该命令用于设置用户的认证信息

    格式: passwd 【选项】 用户名

    如果没有带用户名,则是给当前登录的用户修改密码当密码被设置或者修改时,会自动更新 /etc/shadow 文件信息

    passwd 命令常用选项:

    选项说明-l锁定密码,锁定后密码失效,无法登陆(新用户默认锁定)-d删除密码,仅系统管理员可使用-S(大写)列出密码相关信息,仅系统管理员可使用-f强制执行

    案例一:设置 xm 这个用户的密码

    查看 /etc/shadow 文件信息

    删除用户

    userdel命令

    格式: userdel 【选项】 用户名

    默认情况下是不会删除主目录,使用 -r 选项后会删除主目录

    userdel命令常用选项

    选项说明-f强制删除用户,即便该用户为当前用户-r删除用户的同时删除与用户相关的所有文件

    案例:创建一个用户 cc1 ,然后删除该用户

    修改用户账号

    usermod命令

    格式: usermod 选项 参数

    修改用户账号信息前,必须先确认该用户没有在计算机上执行任何程序。

    usermod命令常用选项

    选项说明-c修改用户的备注信息-d修改用户的登录信息-e修改用户的有效权限-f修改缓冲天数,即修改密码过期后关闭账号的时间-g修改用户所属组-l (小写字母 l )修改用户账号名称-L锁定用户密码,使密码失效-s修改用户登录后使用的shell-u修改用户 id-U解除密码锁定

    用户组管理

    每个用户都有一个用户组,如歌创建时未指派,那么系统会以用户账号名作为该用户的用户组创建用户时,将该账号的用户组信息同步到 /etc/group 文件中
    添加用户组
    用户组可以在创建用户的同时默认设置,也可由用户主动添加若 选项 缺省,那么新增用户组 id 为 上一条未指定 用户组 id 加 1

    groupadd命令

    格式: groupadd 【选项】 用户组名

    groupadd命令常用选项

    选项说明-g指定新建用户组id-r创建系统用户组,组 id 1——499-o允许创建组 id 已存在的用户组

    案例一: 创建一个用户组 id 为 555 的用户组,用户组名 people

    删除用户组

    groupdel 命令

    格式: groupdel 用户组名

    案例一: 删除用户组 people

    修改用户组属性

    groupmod命令

    格式:groupmod 【选项】 【用户组】

    groupdel命令选项

    选项说明-g为用户指定新的组id-n修改用户组名-o运行组 id 不唯一

    案例一:修改 cc 组的id为 666 ,并且修改其用户组名为 zwj。

    用户组切换

    创建用户时提供了-g 与 -G 选项,分别用于指定用户的所属组和附加组。

    两个概念:

    基本组:

    若创建用户时,没有指定用户组,那么自动创建的用户组就是基本组若在某个用户的目录中创建文件,文件所属组就是用户基本组

    附加组:

    通过 -G 选项可以在用户创建的时候指定附加组除基本组外,用户所在的组都是附加组指定附加组,可以使用户拥有对应组的权限

    用户可以重附加组中移除,但不能重基本组中移除

    newgrp命令:

    格式: newgrp 用户组名

    用户切换

    su命令切换

    可以在任意用户之间进行切换普通用户切换到目标用户要输入密码,而root用户切换到其它用户不需要输入密码在命令行输入 exit 或 su -user 可以退出特权模式格式: su 【选项】 用户名

    su命令常用选项

    选项说明-c执行完指定命令后,切换回原来用户-l切换用户时切换到对应工作目录,环境变量随值改变-m,-p切换用户时不改变幻境变量-s指定要执行的Shell-(只有一个杠)与选项 -l 类型

    例:

    sudo命令

    使用 sudo 命令提高了系统的安全性 sudo 可以视为受限 su, 它能使部分用户使用其他用户的身份执行命令若要使用 root 身份,需要将用户名添加到 /etc/sudoers 文件中,存在于该目录文件中,只需要使用自己的密码就可以使用root身份添加操作到 /etc/sudoers 文件是root用户完成root用户要使用其他用户身份,不需要输入密码密码匹配正确后,五分钟内有效,操作5分钟需要再次输入密码

    格式:sudo 【选项】 -u 用户 【命令】

    sudo 命令常用选项

    选项说明-b后台执行命令-h显示帮助-H将 HOME 环境变量设置为新身份的HOME环境变量-k结束密码的有效期限-l列出目前用户可执行与无法执行的命令-p改变询问密码的提示符号-s执行指定的Shell-u以指定的用户作为新的身份,即切换到指定用户,默认为 root

    sudoers文件的编辑:

    sudoers 文件是有一定语法规范的,所以一般不采用 vi/vim 编辑器直接进行编辑通常采用 visudo 命令打开 sudoers 文件,实质上还是使用 vi 编辑器。但是该命令可以同一时间只能有一个用户修改该文件。并且保存退出时,还会进行语法检查。

    案例一: 通过 root 用户编辑 sudoers 文件

    1:使用 su 命令 切换至 root 用户

    2:sudoers 文件内容中可以找到如下语句 ALL 一个特殊关键字,表示任何主机,身份,命令

    在 sudoers 文件中设置用户权限格式如下

    用户名 主机名称 = (可切换身份) 可执行命令

    用户名:只有用户名被写入 sudoers 文件中才能使用 sudo 命令主机名称:该语句对应的用户名可以从哪些网络主机连接到当前Linux主机。root默认可以来这任何网络主机可切换身份:该语句的用户可以在哪些用户之间进行切换。root 默认为任何用户可执行命令: 该语句的用户可以执行哪些命令。命令为绝对路径。root默认可以使用任何命令

    案例二:创建一个用户 cc ,并设置密码。让该用户属于 china 用户组,并且设置用户id为666,组id 555 使 cc 用户能一 root 的身份使用 more 命令。

    以用户组的形式改变权限:

    打开 sudoers 文件,有如下内容 表名:任何加入用户组wheel 的用户 都能通过任意主机连接且任何身份执行任意命令(%标识 wheel 为一个用户组) #表示注释,使用时要去掉

    sudo执行流程:

    用户使用sudo命令时,系统先去查找/etc/sudoers 文件中用户是否有执行sudo权限,若有,输入密码,否则错误提示当前用户为root用户、切换的用户为当前用户、被设置为无须提供密码就可使用sudo命令-------这几种情况,可以不输入密码

    补充

    用户信息查询

    id 命令

    格式:: id 用户名

    whoami命令

    格式:whoami

    Processed: 0.009, SQL: 9