Linux 学习笔记03 Ubuntu--用户和组管理

Linux 学习笔记03 Ubuntu

第三章 用户和组管理

1. 用户账户基础

  • Linux用户账户
用户类型介绍
超级用户(super user)又称root用户,其UID为0,有最高的系统权限,可以执行所有任务。
系统用户(system user)是系统本身或者应用程序使用的专门账户**,UID取值范围为1~999**,
一般分为两类,一类是Linux操作系统在安装时自行建立的系统用户;一类是用户自定义的系统用户。系统用户没有特别的权限
普通用户(regular user)一般的用户都视为普通用户进行登陆,UID默认从1000开始编号
  • Ubuntu用户账户

大多数版本的Linux在安装是会设置两个用户账户:一个是root用户,一个是登陆系统的普通用户。Ubuntu默认禁用root用户账户,Ubuntu管理员是具有管理权限的普通用户,其权限比一般的普通用户高,比超级管理员则低很多,主要进行删除用户、安装软件和驱动等管理工作。

sudo临时使用root身份进行操作,操作结束后自动退出

2. 用户配置文件

用户账户管理主要涉及/etc/passwd/etc/shadow两个配置文件

  • /etc/passwd文件

/etc/passwd文件是Linux关键安全文件之一,是系统用于识别用户账户的一个重要文件。所有的 用户账户都记录在该文件中。/etc/passwd文件中每一行保存一个用户账户的资料。每个用户的数据包括7个字段,“:”表示。

username:password:uid:gid:userinfo:home:shell

每个字段的含义:

字段含义
username用户账户名,可自定义,在系统内,用户账户名具有唯一性
password存放加密的用户密码,显示为x,其已被映射到了**/etc/shadow文件**中
uid用户ID,在系统内用一个整数标志用户ID号,每个用户的UID都是唯一的
gid默认的用户组ID。每个组的GID都是唯一的
userinfo用户注释信息。针对用户名的描述,可以不设置
home分配给用户的主目录,用户登陆后首先进入的目录
shell用户登陆默认的shell(Linux一般为/bin/bash)

所有的用户口令都是加密存放的,每个用户会分配到一个GID。不同用户通常分配有不同的主目录,以避免相互干扰。

命令说明
tail查看文件最后几行的内容
head查看文件开头几行的内容
eg>>>tail /etc/passwd # 查看文件最后几行的内容
  • /etc/shadow文件

/etc/shadow/etc/passwd的影子文件,主要保存账户密码配置情况。每一个账户的数据按字段以冒号**“:”**分隔,每行有9个字段

username:passward:lastchg:min:max:warn:inactive:expire:flag
字段含义
username用户账户名,与/etc/passwd中的账户名相同
passward加密口令,如果密码是**“!”或“ * ”,则表示还没设置密码**或者不会用这个账号来登陆
lastchg用户最后一次更改密码的日期
min密码修改的最小间隔时间,0表示禁用此功能
max密码修改的最大间隔时间,999表示口令永远不过期
warn密码失效前多少天发出警告
inactive账户被取消激活前的天数,表示还有多少天改用户会被禁止登陆,是完全禁用
expire表示用户被禁止登录的时间,指定账户禁用的天数,若为,则永久可用
flag保留字段,暂未使用

/etc/shadow文件,读取和操作该文件需要用到root权限。

eg>>> sudo head /etc/shadow # 查看/etc/shadow文件前几行的内容

3. 用户账户管理命令(需要用root权限)

  • 新建用户账户命令useradd和adduser
    • 使用Linux通用命令useradd

    Linux使用useradd命令新建用户账户或更新用户账户的配置信息。注意:使用useradd命令建立的用户默认是锁定的,需要使用passwd命令设置密码以后才能使用。

    useradd [选项] [用户名]

    选项参数含义
    -c加上注释信息,会保存在passwd文件的对应栏中
    -d指定用户主目录,若不存在,使用-m选项可以创建主目录
    -g指定用户所属的用户组
    -G指定用户所属的附加组
    -s指定用户的登陆Shell
    -u指定用户的用户号
    -e指定账号的有效期限,默认是永久有效
    -f指定在密码过期后多少天关闭该账号
    -r建立系统账号
    sudo useradd john01 # 创建新用户
    sudo useradd -r john02 # 创建系统用户
    cat /etc/passwd | grep john01 # 查看创建用户结果
    su john01 # 尝试使用John01,失败。该账户还不能使用
    ls /home/ # 查看用户主目录,用户主目录/home/john01不存在
    
    • 使用Ubuntu专用命令adduser

    Ubuntu专用命令adduser可用于新增用户账号或更新预设的使用者资料,adduser命令会自动为新创建的用户指定主目录,系统Shell版本,提示输入密码等等。使用adduser添加用户会在**/home目录下自动创建与用户组同名的用户目录。**

    # 创建普通用户
    adduser [--home DIR] [--shell SHELL] [--no-create-home] [--uid ID] [firstuid ID]
    [--lastuid ID] [--gecos GECOS] [--ingroup GROUP | --gid ID] [--disable-password]
    [--disabled-login] [--add_extra_groups]
    # 创建系统目录
    adduser --system [--home DIR] [--shell SHELL] [--no-create-home] [--uid ID]
    [--gecos GECOS]...
    # 创建用户组
    adduser --group [--gid ID] GROUP
    # 将已存在的用户添加到指定用户组内
    
    # 以上内容只要能分辨出是哪种用户就可以了
    

    注意:将用户添加到用户组中时,需要使用root权限。

  • 修改用户账户命令passwd、usermod、chage
    • 设置用户账户口令命令passwd

    passwd命令用于设置或修改用户密码。普通用户和root用户都可以使用passwd命令,但普通用户只能修改自己的用户密码,root用户可以更改任何用户的密码。

    passwd [选项] [用户名]

    选项参数含义
    -d; --delete删除指定账户的密码
    -e; --expire强制使指定账户的密码过期
    -l; --lock锁定指定的账户
    -k; --keep-tokens仅在过期后修改密码
    -i; --inactive INACTIVE密码过期后设置密码INACTIVE
    -u; --unlock解锁指定的账户
    -n; --mindays MIN_DAYS设置下次修改密码间隔的最短时间
    -S; --status报告指定账户密码的状态
    -q; --quiet安静模式
    • 修改用户账户信息命令 usermod

    使用该命令可以更改用户Shell类型、所属组、密码有效期等信息

    usermod [选项] [用户名]

    选项参数
    -c<备注>修改用户账号的备注,备注文字会保存在passwd的备注栏中
    -d<登入目录>修改用户登入时的目录,即用户主目录
    -e<有效期限>修改账号的有效期限
    -f<缓冲天数>密码过期后关闭该账号的缓冲时间
    -l<账号名称>修改用户账号名称
    -L修改用户密码
    -u < uid>修改用户ID
    -U解除密码锁定
    • 更改用户密码过期信息命令chage

    该命令用于密码时效管理,可以用来修改账号和密码的有效期限、用户密码过期信息。

    chage [选项] [用户名]

    选项参数含义
    -d指定密码最后修改日期
    -E指定密码过期日期0表示马上过期;-1表示永不过期
    -h显示帮助信息并退出
    -I密码过期后。锁定账号的天数
    -l列出用户以及密码的有效期
    -m两次改变密码之间相隔的最小时间,0代表任何时候都可以更改
    -M密码保持有效最大时间
    -w密码过期前,提前收到警告信息的天数
  • 删除用户账户命令userdel和deluser
    • 使用userdel命令删除用户账户

    该命令可以删除用户账号与相关的文件,甚至可以连用户的主目录一起删除,若不加参数,仅删除账号不删除相关文件。

    userdel [选项] [用户名]

    选项参数含义
    -r删除用户登陆目录以及目录中的所有文件
    -f强制删除用户(不管用户是否登陆系统)
    • 使用deluser 命令删除用户或组

    Deluser功能较多,除了可以删除用户账户外,也可以删除组账户。甚至可以用来将用户从组中删除。

    # 删除普通用户
    deluser USER
    # 删除系统用户
    delgroup USER GROUP
    # 删除用户组
    delgroup GROUP
    deluser --group GROUP
    
    删除普通用户的参数含义
    –remove-home删除用户的主目录和邮箱
    –remove-all-files删除用户拥有的所有的文件
    –backup删除前将文件备份
    –backup-to< DIR>备份的目标目录,默认是当前目录
    –system只有当该用户是系统用户时才删除

4. 组账户基础

组账户是指具有相同或者相似特性的用户集合,也称为用户组。通过组账户可以集中设置访问权限和分配管理任务。

用户和组属于多对多的关系,一个用户可以同时属于多个组

组账户分为超级组、系统组、普通用户组

5. 组账户配置文件

组账户配置主要涉及/etc/group和/etc/gshadow两个文件。

  • /etc/group 文件

/etc/group文件是组账户的配置文件,内容包括用户和组并且能够显示用户归属的组。

具体有组名、组密码、GID、该组包含的用户。每个组对应一条记录,每条记录有4个字段,用“ :”分隔

group_name:group_password:group_id:group_members

字段含义
group_name组账户名
group_password加密后的组账户密码,显示为X,其已经被映射到了**/etc/gshadow**文件中
group_idGID,默认普通用户组的GID从1000开始,root用户组的GID为0,系统虚拟账户1~999
group_members逗号分隔的成员用户清单
/etc/login.defs查看系统创建组账户默认的GID范围
  • /etc/gshadow 文件

/etc/gshadow 文件是/etc/group文件的组账户影子文件。每条记录有4个字段

group_name:group_password:group_id:group_members

字段含义
group_name组账户名
group_password加密后的用户组口令,“!”表示这个组没有密码。一般不需要设置。
group_idGID
group_members逗号分隔的成员用户清单

6. 组账户管理命令(需要用root权限)

  • 创建组账户命令groupadd 和 addgroup
    • 使用Linux通用命令gruopadd

    命名语法:gruopadd [选项] [组名]

    选项参数含义
    -f如果组已经存在,则此选项失效并以成功的状态退出;如果GID已被使用,则取消-g
    -g指定新组使用的GID。GID必须是唯一的且非负,除非使用**-o 选项**。
    默认使用大于或等于GID_MIN的最小值,并且大于其他每个组的GID。
    -K不使用/etc/login.defs 中的默认值(如GID_MIN、GID_MAX等)
    -o允许创建有重复GID组
    -r创建一个系统组账户。GID小于1000;若不带此选项,则创建普通组
    • 使用Ubuntu 专用命令addgroup

    addgroup [--gid ID] GROUP # 创建普通用户组

    addgroup --system [--gid ID] GROUP # 创建系统用户组

    eg>>addgroup g01 # 提示权限不够
    sudo addgroup g01 # 建立一个普通组
    sudo addgroup g02 --gid 1020 # 创建并设置组ID
    
    sudo addgroup --system g03 # 建立一个管理员用户组
    sudo addgroup --system g04 --gid 320 # 创建管理员用户组并设置组ID
    
  • 修改组账户属性命令groupmod

命令语法:[选项] [组账户名]

选项参数含义
-g修改用户组的GID
-n修改用户组名
-o允许使用重复的GID
grep g02 /etc/group # 查看用户组的GID
sudo groupmod g02 -g 1021 # 修改用户组的GID
  • 删除组账户
    • 使用Linux通用命令groupdel

    如果改组中仍然包括某些用户,要先删用户才能删除组,相当于删除空组。

    命令语法:groupdel [组名]

    • 使用Ubuntu 专用命令delgroup && deluser

    Ubuntu命令可以使用delgroup命令删除组账户,使用deluser命令从系统中删除用户组。

  • 管理组账户命令 gpasswd

使用该命令可以管理工作组,将已存在的用户添加到另一用户组中,也可对用户进行删除用户密码指定用户管理员等操作。

gpasswd [选项][组名]

选项参数含义
-a添加用户到组
-d删除用户组中的某一用户
-A指定管理员
-M指定组成员
-r删除密码
-R限制用户登入组,只有组中的成员才能用**newgrp** 命令加入该组

本文链接:https://blog.csdn.net/qq_46426207/article/details/121059946

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值