15第七章:【01】用户管理与用户组管理

一、基本介绍

给大家画一个示意图,帮助大家理解用户管理的规则。

说明

  1. Linux 系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
  2. Linux 的用户需要至少要属于一个组

二、用户管理

1、添加用户

useradd:创建的新的系统用户

useradd 命令 用于 Linux 中创建的新的系统用户。useradd 可用来建立用户帐号。帐号建好之后,再用 passwd 设定帐号的密码.而可用 userdel 删除帐号。使用 useradd
指令所建立的帐号,实际上是保存在/etc/passwd 文本文件中

基本语法:


useradd [选项] 用户名

选项:
-d<登入目录>:指定用户登入时的启始目录;
-g<群组>:指定用户所属的群组;

参数
用户名:要创建的用户名

示例:

添加一个用户 xm
useradd xm

添加一个用户 xq,并指定家目录/home/dog
useradd -d /home/dog xq

注意:

  1. 当创建用户成功后,会自动的创建和用户同名的家目录
  2. 也可以通过 useradd -d 指定目录 新的用户名,给新创建的用户指定家目录

2、给用户指定或者修改密码

passwd:用于让用户可以更改自己的密码

passwd 命令 用于设置用户的认证信息,包括用户密码、密码过期时间等。系统管理者则能用它管理系统用户的密码。只有管理者可以指定用户名称,一般用户只能变更自己的密码

基本语法:

passwd(选项)(参数)

参数
用户名:需要设置密码的用户名

示例:

3、删除用户

userdel:用于删除给定的用户以及与用户相关的文件

userdel 命令 用于删除给定的用户,以及与用户相关的文件。若不加选项,则仅删除用户帐号,而不删除相关文件

基本语法:

userdel(选项)(参数)

选项:
-f:强制删除用户,即使用户当前已登录;
-r:删除用户的同时,删除与用户相关的所有文件

参数
用户名:要删除的用户名

示例:

userdel linuxde       # 删除用户linuxde,但不删除其家目录及文件;
userdel -r linuxde    # 删除用户linuxde,其家目录及文件一并删除;

请不要轻易用-r 选项;他会删除用户的同时删除用户所有的文件和目录,切记如果用户目录下有重要的文件,在删除前请备份。

4、查询用户信息

id:打印真实以及有效的用户和所在组的信息

基本语法:

没有选项时,打印指定用户ID信息
id [OPTION]... [USER]...

选项:
-a               兼容性选项,没有实际作用。
-Z, --context    只打印进程的安全上下文。
-g, --group      只打印有效的组ID。
-G, --groups     打印全部组ID。
-u, --user       只打印有效的用户ID。
-z, --zero       使用空字符代替默认的空格来分隔条目。
--help           显示帮助信息并退出。
--version        显示版本信息并退出

参数
user(可选):可以为一到多个,默认为当前用户

示例:

当用户不存在时,返回”无此用户”

5、切换用户

用于切换当前用户身份到其他用户身份,在操作 Linux 中,如果当前用户的权限不够,可以通过 su - 指令,切换到高权限用户,比如 root

基本语法

su(选项)(参数)
su 用户名称 (功能描述:切换用户,只能获得用户的执行权限,不能获得环境变量)
su - 用户名称 (功能描述:切换到用户并获得该用户的环境变量及执行权限)

选项:
-c<指令>或--command=<指令>:执行完指定的指令后,即恢复原来的身份;
-f或——fast:适用于csh与tsch,使shell不用去读取启动文件;
-l或——login:改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,logname。此外,也会变更PATH变量;
-m,-p或--preserve-environment:变更身份时,不要变更环境变量;
-s<shell>或--shell=<shell>:指定要执行的shell;
--help:显示帮助;
--version;显示版本信息

参数:
用户:指定要切换身份的目标用户

示例:

变更帐号为root并在执行ls指令后退出变回原使用者:
su -c ls root

变更帐号为root并传入-f选项给新执行的shell:
su root -f

变更帐号为test并改变工作目录至test的家目录:
su -test

细节说明:

  1. 从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。
  2. 当需要返回到原来用户时,使用 exit/logout 指令

6、查看当前用户/登录用户

基本语法:

whoami (功能描述:显示自身用户名称)
who am i (功能描述:显示登录用户的用户名以及登陆时间)

二、用户组管理

1、用户组

介绍:类似于角色,系统可以对有共性的多个用户进行统一的管理

每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同 Linux 系统对用户组的规定有所不同。

如 Linux 下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。

用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对 /etc/group 文件的更新。

2、增加组

groupadd 命令 用于创建一个新的工作组,新工作组的信息将被添加到系统文件中

基本语法:

groupadd(选项)(参数)

选项
-g:指定新建工作组的id;
-r:创建系统工作组,系统工作组的组ID小于500;
-K:覆盖配置文件“/ect/login.defs”;
-o:允许添加组ID号不唯一的工作组。

参数
组名:指定新建工作组的组名

示例:

3、删除组

groupdel 命令 用于删除指定的工作组,本命令要修改的系统文件包括/ect/group 和/ect/gshadow。若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。

基本语法:

groupdel(参数)

参数
组:要删除的工作组名。

示例:

groupadd damon  //创建damon工作组
groupdel damon  //删除这个工作组

4、增加用户时直接加上组

基本语法:

useradd –g 用户组 用户名 增加一个用户 zwj, 直接将他指定到 wudang

5、修改用户的组

usermod 命令用于修改用户的基本信息。

usermod 命令不允许你改变正在线上的使用者帐号名称。

当 usermod 命令用来改变 user id,必须确认这名 user 没在电脑上执行任何程序。你需手动更改使用者的 crontab 档。也需手动更改使用者的 at 工作档。采用 NIS server 须在 server 上更动相关的
NIS 设定

基本语法:

usermod(选项)(参数)

选项
-c<备注>:修改用户帐号的备注文字;
-d<登入目录>:修改用户登入时的目录,只是修改/etc/passwd中用户的家目录配置信息,不会自动创建新的家目录,通常和-m一起使用;
-m<移动用户家目录>:移动用户家目录到新的位置,不能单独使用,一般与-d一起使用。
-e<有效期限>:修改帐号的有效期限;
-f<缓冲天数>:修改在密码过期后多少天即关闭该帐号;
-g<群组>:修改用户所属的群组;
-G<群组>;修改用户所属的附加群组;
-l<帐号名称>:修改用户帐号名称;
-L:锁定用户密码,使密码无效;
-s<shell>:修改用户登入后所使用的shell;
-u<uid>:修改用户ID;
-U:解除密码锁定。

参数
登录名:指定要修改信息的用户登录名

示例:

将 newuser2 添加到组 staff 中:
usermod -G staff newuser2

修改newuser的用户名为newuser1:
usermod -l newuser1 newuser

锁定账号newuser1:
usermod -L newuser1

解除对newuser1的锁定:
usermod -U newuser1

将用户加入到用户组并查看信息

三、相关配置文件

/etc/passwd 文件

用户(user)的配置文件,记录用户的各种信息

每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录 Shell

/etc/shadow 文件

口令的配置文件

每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

/etc/group 文件

组(group)的配置文件,记录 Linux 包含的组的信息

每行含义:组名:口令:组标识号:组内用户列表

四、sudo 设置普通用户具有 root 权限

1、添加 niujifei 用户,并对其设置密码

[root@njf ~]#useradd niujifei
[root@njf ~]#passwd niujifei

2、修改配置文件

修改 /etc/sudoers 文件,找到下面一行(91 行),在 root 下面添加一行,如图所示:

或者配置成采用 sudo 命令时,不需要输入密码

## Allow root to run any commands anywhere
root ALL=(ALL) ALL
niujifei ALL=(ALL) NOPASSWD:ALL

修改完毕,现在可以用 atguigu 帐号登录,然后用命令 sudo ,即可获得 root 权限进行 操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值