Linux 基础 - 用户管理

  • Linux 用户管理
    • 查看当前用户 ID:id
    • 查看当前所属组:groups
    • 查看当前登录用户:who
    • 查看当前登录用户详细信息:w
    • 调查用户:finger
    • 新增用户:useradd
    • 修改密码:passwd
    • 修改用户:usermod
    • 删除用户:userdel
    • 新增用户组:groupadd
    • 删除用户组:groupdel
    • 切换用户:su
    • 以 root 用户身份执行命令:sudo

Linux 用户管理

Linux 中有用户和用户组两个概念,每个用户都有单独的 UID,每个用户组也有单独的 GID,采用 Int32 存储,Linux 用户分为,普通用户、根用户、系统用户。

普通用户就像 Windows 中自己创建的用户,基本没啥权限,只可以对 /home 中自己的目录进行操作,想要对其他目录操作需要授权,就像 Windows 中运行一个程序需要以管理员身份运行一样。一般普通用户的 UID 都是大于 1000 的(CentOS5,6 大于 500),因为系统在添加普通用户从 1000 (CentOS5,6 大于 1000)开始编号。

根用户就是 root 用户,就像 Windows 中的 Administrator 用户,UID 是 0,拥有完全的权限,啥都能改,啥都能删,一不小心就能把系统玩坏的那种。

系统用户,并不是真的用户,比如 CentOS 中,需要 mysql 用户运行 mysqld 进程,UID 是 1~999(CentOS5,6 范围 1~499)。

每个用户至少属于一个用户组。

查看当前用户 ID:id

[root@localhost ~]# id
uid=0(root) gid=0(root) 组=0(root) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

查看当前所属组:groups

[root@localhost ~]# groups
root

查看当前登录用户:who

[root@localhost ~]# who
root     pts/0        2020-09-25 08:48 (desktop-9l9jknp.mshome.net)

查看当前登录用户详细信息:w

[root@localhost ~]# w12:12:42 up  3:38,  1 user,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    desktop-9l9jknp. 08:48    2.00s  0.19s  0.01s w

调查用户:finger

我用的 CentOS 是最小安装,当我在终端输入 finger 的时候提示 -bash: finger: 未找到命令 所以我先用 yum 安装了 finger

[root@localhost ~]# yum -y install finger

然后执行 finger

[root@localhost ~]# finger
Login     Name       Tty      Idle  Login Time   Office     Office Phone   Host
root      root       pts/0          Sep 25 08:48                           (desktop-9l9jknp.mshome.net)

默认没有参数的时候 会显示系统当前登录的用户

[root@localhost ~]# finger onlychina
Login: onlychina                        Name:
Directory: /home/onlychina              Shell: /bin/bash
Last login 五 9月 25 11:09 (CST) on pts/0
No mail.
No Plan.

新增用户:useradd

[root@localhost ~]# useradd onlychina
[root@localhost ~]# id onlychina
uid=1000(onlychina) gid=1000(onlychina) 组=1000(onlychina)
[root@localhost ~]# groups onlychina
onlychina : onlychina
[root@localhost ~]# ls /home
onlychina

-u 指定 UID

[root@localhost ~]# useradd -u 5555 onlychina5555
[root@localhost ~]# id onlychina5555
uid=5555(onlychina5555) gid=5555(onlychina5555) 组=5555(onlychina5555)
[root@localhost ~]# groups onlychina5555
onlychina5555 : onlychina5555
[root@localhost ~]# ls /home
onlychina   onlychina5555

可以看出 创建用户时 同时创建了 同名的用户组 以及家目录

-g 指定用户组

[root@localhost ~]# useradd -g onlychina onlychina1
[root@localhost ~]# id onlychina1
uid=1001(onlychina1) gid=1000(onlychina) 组=1000(onlychina)
[root@localhost ~]# groups onlychina1
onlychina1 : onlychina
[root@localhost ~]# ls /home
onlychina  onlychina1  onlychina5555

-d 指定家目录

[root@localhost ~]# useradd -d /home/home11 onlychina11
[root@localhost ~]# id onlychina11
uid=1002(onlychina11) gid=1002(onlychina11) 组=1002(onlychina11)
[root@localhost ~]# groups onlychina11
onlychina11 : onlychina11
[root@localhost ~]# ls /home
home11  onlychina  onlychina1  onlychina5555

修改密码:passwd

[root@localhost ~]# passwd onlychina
更改用户 onlychina 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

输入两遍相同的密码即可

普通用户也可以修改自己的密码

[onlychina@localhost ~]$ passwd
更改用户 onlychina 的密码 。
为 onlychina 更改 STRESS 密码。
(当前)UNIX 密码:
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

先输入当前密码 再输入两遍新密码即可

修改用户:usermod

-d 修改用户家目录

[root@localhost ~]# cat /etc/passwd | grep onlychina11
onlychina11:x:1002:1002::/home/home11:/bin/bash
[root@localhost ~]# usermod -d /home/newhome11 onlychina11
[root@localhost ~]# cat /etc/passwd | grep onlychina11
onlychina11:x:1002:1002::/home/newhome11:/bin/bash

-L 冻结用户

[root@localhost ~]# cat /etc/shadow | grep onlychina11
onlychina11:$6$Kq3f7L0n$h0nsPKi.8cGAXxADmSv7gwT5GjjE/pxlzKEihtODc3kY82lY5IlLXBILyskexzmiIV1U3Gsj1/a64baYogedS1:18530:0:99999:7:::
[root@localhost ~]# usermod -L onlychina11
[root@localhost ~]# cat /etc/shadow | grep onlychina11
onlychina11:!$6$Kq3f7L0n$h0nsPKi.8cGAXxADmSv7gwT5GjjE/pxlzKEihtODc3kY82lY5IlLXBILyskexzmiIV1U3Gsj1/a64baYogedS1:18530:0:99999:7:::

-U 解冻用户

[root@localhost ~]# cat /etc/shadow | grep onlychina11
onlychina11:!$6$Kq3f7L0n$h0nsPKi.8cGAXxADmSv7gwT5GjjE/pxlzKEihtODc3kY82lY5IlLXBILyskexzmiIV1U3Gsj1/a64baYogedS1:18530:0:99999:7:::
[root@localhost ~]# usermod -U onlychina11
[root@localhost ~]# cat /etc/shadow | grep onlychina11
onlychina11:$6$Kq3f7L0n$h0nsPKi.8cGAXxADmSv7gwT5GjjE/pxlzKEihtODc3kY82lY5IlLXBILyskexzmiIV1U3Gsj1/a64baYogedS1:18530:0:99999:7:::

man usermod 可以查看更多参数

用法:usermod [选项] 登录选项:-c, --comment 注释            GECOS 字段的新值-d, --home HOME_DIR           用户的新主目录-e, --expiredate EXPIRE_DATE  设定帐户过期的日期为 EXPIRE_DATE-f, --inactive INACTIVE       过期 INACTIVE 天数后,设定密码为失效状态-g, --gid GROUP               强制使用 GROUP 为新主组-G, --groups GROUPS           新的附加组列表 GROUPS-a, --append GROUP            将用户追加至上边 -G 中提到的附加组中,并不从其它组中删除此用户-h, --help                    显示此帮助信息并推出-l, --login LOGIN             新的登录名称-L, --lock                    锁定用户帐号-m, --move-home               将家目录内容移至新位置 (仅于 -d 一起使用)-o, --non-unique              允许使用重复的(非唯一的) UID-p, --password PASSWORD       将加密过的密码 (PASSWORD) 设为新密码-R, --root CHROOT_DIR         chroot 到的目录-P, --prefix PREFIX_DIR       prefix directory where are located the /etc/* files-s, --shell SHELL             该用户帐号的新登录 shell-u, --uid UID                 用户帐号的新 UID-U, --unlock                  解锁用户帐号-v, --add-subuids FIRST-LAST  add range of subordinate uids-V, --del-subuids FIRST-LAST  remove range of subordinate uids-w, --add-subgids FIRST-LAST  add range of subordinate gids-W, --del-subgids FIRST-LAST  remove range of subordinate gids-Z, --selinux-user  SEUSER       用户账户的新 SELinux 用户映射

删除用户:userdel

[root@localhost ~]# id onlychina11
uid=1002(onlychina11) gid=1002(onlychina11) 组=1002(onlychina11)
[root@localhost ~]# userdel onlychina11
[root@localhost ~]# id onlychina11
id: onlychina11: no such user

并不会删除家目录和用户邮件

-r 可以删除用户全部信息

新增用户组:groupadd

[root@localhost ~]# cat /etc/group | grep onlychina
onlychina:x:1000:
onlychina5555:x:5555:
[root@localhost ~]# groupadd onlychina666
[root@localhost ~]# cat /etc/group | grep onlychina
onlychina:x:1000:
onlychina5555:x:5555:
onlychina666:x:1002:

删除用户组:groupdel

[root@localhost ~]# groupdel onlychina666
[root@localhost ~]# cat /etc/group | grep onlychina
onlychina:x:1000:
onlychina5555:x:5555:

切换用户:su

su 默认切换为 root 用户

[root@localhost ~]# su onlychina
[onlychina@localhost root]$ su onlychina1
密码:
[onlychina1@localhost root]$ exit
exit
[onlychina@localhost root]$ exit
exit
[root@localhost ~]#

su - 即切换用户也切换用户环境(家目录)

[root@localhost ~]# su - onlychina
上一次登录:五 9月 25 12:24:53 CST 2020pts/0 上
[onlychina@localhost ~]$ su - onlychina1
密码:
上一次登录:五 9月 25 12:25:09 CST 2020pts/0 上
[onlychina1@localhost ~]$ exit
登出
[onlychina@localhost ~]$ exit
登出
[root@localhost ~]#

以 root 用户身份执行命令:sudo

正常情况下,普通用户不可以执行需要 root 用户权限的命令。

[onlychina@localhost ~]$ passwd onlychina1
passwd:只有根用户才能指定用户名。

而 sudo 则可以以 root 用户身份去执行命令

[onlychina@localhost ~]$ sudo passwd onlychina1我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:#1) 尊重别人的隐私。#2) 输入前要先考虑(后果和风险)。#3) 权力越大,责任越大。[sudo] onlychina 的密码:
onlychina 不在 sudoers 文件中。此事将被报告。

但是这里并没有执行成功,因为 onlychina 用户并没有使用 sudo 的权限,需要 root 用户在 /etc/sudoers 文件中设置 onlychina 用户的权限。

[onlychina@localhost ~]$ exit
登出
您在 /var/spool/mail/root 中有邮件
[root@localhost ~]# cat /var/spool/mail/root
From root@localhost.localdomain  Fri Sep 25 12:35:06 2020
Return-Path: <root@localhost.localdomain>
X-Original-To: root
Delivered-To: root@localhost.localdomain
Received: by localhost.localdomain (Postfix, from userid 0)id 1AF8C200509F; Fri, 25 Sep 2020 12:35:06 +0800 (CST)
To: root@localhost.localdomain
From: onlychina@localhost.localdomain
Auto-Submitted: auto-generated
Subject: *** SECURITY information for localhost ***
Message-Id: <20200925043506.1AF8C200509F@localhost.localdomain>
Date: Fri, 25 Sep 2020 12:35:06 +0800 (CST)localhost : Sep 25 12:35:06 : onlychina : user NOT in sudoers ; TTY=pts/0 ; PWD=/home/onlychina ; USER=root ; COMMAND=/bin/passwd onlychina1

切换回 root 用户后将会收到刚才 onlychina 用户产生的邮件,告知 root 用户 onlychina 用户想要 sudo 执行某命令,但是没有使用 sudo 的权限。

root 用户需要修改 /etc/sudoers 文件,让 onlychina 用户可以使用 root 权限。

可以使用 vi 或者 vim 对 sudoers 进行修改,但是考虑到这个文件的重要性和安全性,Linux 提供了 visudo 命令,该命令在保存时将会检查 sudoers 的语法设置,放在造成无法使用 sudo 的后果。

[root@localhost ~]# visudo
......(略去内容)......
## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere
root         ALL=(ALL)     ALL
onlychina    ALL=(ALL)     ALL## Allows members of the 'sys' group to run networking, software,
## service management apps and more.
......(略去内容)......

添加 onlychina 那一行 onlychina ALL=(ALL) ALL

其中 onlychina 是用户,ALL=(ALL) 任何登录点=(任何执行人),ALL 任何命令

onlychina ALL=(ALL) NOPASSWD:ALL 无需输入密码即可执行 sudo 命令

然后再尝试 onlychina 用户使用 sudo

[onlychina@localhost ~]$ sudo passwd onlychina1
[sudo] onlychina 的密码:
更改用户 onlychina1 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

sudo 并不是切换了用户,只是以 root 身份去执行一个命令,而可以执行的命令列表也在 sudoers 文件中

......(略去内容)......
# Defaults   env_keep += "HOME"Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin## Next comes the main part: which users can run what software on
......(略去内容)......

secure_path 即是可以执行的命令列表,在这些目录内的程序可以被 sudo 执行,如果自己安装的程序在 /usr/local/bin 中,则可以将该目录添加进去

......(略去内容)......
# Defaults   env_keep += "HOME"Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin## Next comes the main part: which users can run what software on
......(略去内容)......

Linux 基础 - 用户管理相关推荐

  1. Linux基础-----用户管理

    linux下用户管理机制(组-[基本组,附加组],用户),其中我们可以这样理解组和用户的关系:用户属于组,组中包含用户(一个用户有一个基本组,把这个用户移动到别的组时,用户在基本组的基础上会加附加组, ...

  2. 【每天play】为了学好python需要从脚下做起,Linux基础-用户管理 P70-80

    即使今天稍微乱了一点,想早回家,不能中断练习.所以吃粒奶酪条,接着打开页面.先复习上次的最后1P视频,也就是新建用户的熟悉练习. 03.用户管理 提示:创建用户 / 删除用户 / 修改其他用户密码 的 ...

  3. 运维基本功(五):Linux文件管理-用户管理

    本文是在课程课件基础上修改的学习笔记 课程原地址:https://www.bilibili.com/video/BV1nW411L7xm 如有侵删 运维基本功(一):Linux系统安装 运维基本功(二 ...

  4. edu-【Linux 与 Python编程2021】Linux知识训练,Linux之用户管理,Linux文件/目录管理

    python实训 python学习 – 菜鸟教程+B站视频 文章目录 linux知识训练-硬件与软件安装 第1关:linux知识训练-硬件与软件安装 linux知识训练-账户进程与权限 第1关:lin ...

  5. linux权限命令chgrp,Linux 基础——权限管理命令chown、chgrp

    一.chown命令与chgrp命令的作用 有时你需要改变文件或目录的属主,比如有人离职或开发人员创建了一个在测试或生产环境中需要归属在系统账户下的应用.Linux提供了两个命令来实现这个功能:chow ...

  6. linux 下用户管理

    linux 下用户管理 一.用户的分类 1.超级用户:root UID=0 2.系统用户:不需要登录系统,对应用程序服务,主要维护系统的正常运行:UID = 1 ~ 499(RHEL7 = 1 ~ 9 ...

  7. Linux下用户管理

    Linux下用户管理 linux下用户管理有两个重要的配置文件 一个是:/etc/shadow                           #保存的是用户的密码信息 另一个是:/etc/pas ...

  8. Linux(3) 用户管理

    Linux(3) 用户管理 学习视频:https://www.bilibili.com/video/BV1Sv411r7vd?p=19&spm_id_from=pageDriver 一.开机. ...

  9. Linux 之用户管理与文件权限

    Linux 之用户管理与文件权限 一. 1.查看系统版本    uname       uname -a      uname -r      uname -m 2.特点 :              ...

最新文章

  1. 智能视觉组赛博 -10赛后反馈
  2. Python当中的a += a 与 a = a + a 的区别,可变类型与不可变类型的数据类型,引用传参...
  3. python 将图片转换成像素画_Canvas 实现位图转像素画
  4. yeoman_使用yeoman轻松创建Yeoman生成器
  5. Chrome谷歌浏览器76地址栏隐藏的HTTPS和WWW标记如何恢复
  6. python学习笔记(二)之列表
  7. laravel 事件及监听
  8. 构建java ut运行环境
  9. javaFX学习之颜色选择器(ColorPicker)
  10. Echart资源网站
  11. GPU设备架构全面解析(持续更新ing)
  12. 各种说明方法的答题格式_说明方法作用答题格式
  13. 田忌赛马(贪心算法)
  14. 数据可视化——柱状图
  15. 【pyqt5学习】——添加菜单栏动作action,给动作触发triggered绑定事件
  16. 基于Proteus学习单片机系列(四)——中断
  17. MySQL8.0 之SQL(DQL)单表、多表查询(详细回顾篇)
  18. iPhone 11系列发布:没有5G加持,苹果开始“不自信”了?
  19. 森林大火matlab模拟论文,基于MATLAB的森林防火决策支持系统 - 仿真分析部分
  20. “大数据金融”与“大数据安全”双剑合璧

热门文章

  1. Android 实战美女拼图游戏 你能坚持到第几关
  2. 20194311姜晨昊Exp-4 恶意代码分析
  3. Pandas10--时序数据
  4. Excel按键盘无法跳转和滚动单元格的原因分析和解决方法
  5. 企业行业培训讲座在线观看目录
  6. 入职前端工程师你需要学会什么?前端实习生告诉你十大必备技能
  7. iOS 查漏补缺 - LLVM Clang
  8. 自然辩证法与计算机科学与技术,自然辩证法和科学技术有什么关系
  9. 2022璞跃中国第二期武汉创新加速营入营名单出炉!
  10. 大数据时代,准备好了吗?