Linux 基础 - 用户管理
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 基础 - 用户管理相关推荐
- Linux基础-----用户管理
linux下用户管理机制(组-[基本组,附加组],用户),其中我们可以这样理解组和用户的关系:用户属于组,组中包含用户(一个用户有一个基本组,把这个用户移动到别的组时,用户在基本组的基础上会加附加组, ...
- 【每天play】为了学好python需要从脚下做起,Linux基础-用户管理 P70-80
即使今天稍微乱了一点,想早回家,不能中断练习.所以吃粒奶酪条,接着打开页面.先复习上次的最后1P视频,也就是新建用户的熟悉练习. 03.用户管理 提示:创建用户 / 删除用户 / 修改其他用户密码 的 ...
- 运维基本功(五):Linux文件管理-用户管理
本文是在课程课件基础上修改的学习笔记 课程原地址:https://www.bilibili.com/video/BV1nW411L7xm 如有侵删 运维基本功(一):Linux系统安装 运维基本功(二 ...
- edu-【Linux 与 Python编程2021】Linux知识训练,Linux之用户管理,Linux文件/目录管理
python实训 python学习 – 菜鸟教程+B站视频 文章目录 linux知识训练-硬件与软件安装 第1关:linux知识训练-硬件与软件安装 linux知识训练-账户进程与权限 第1关:lin ...
- linux权限命令chgrp,Linux 基础——权限管理命令chown、chgrp
一.chown命令与chgrp命令的作用 有时你需要改变文件或目录的属主,比如有人离职或开发人员创建了一个在测试或生产环境中需要归属在系统账户下的应用.Linux提供了两个命令来实现这个功能:chow ...
- linux 下用户管理
linux 下用户管理 一.用户的分类 1.超级用户:root UID=0 2.系统用户:不需要登录系统,对应用程序服务,主要维护系统的正常运行:UID = 1 ~ 499(RHEL7 = 1 ~ 9 ...
- Linux下用户管理
Linux下用户管理 linux下用户管理有两个重要的配置文件 一个是:/etc/shadow #保存的是用户的密码信息 另一个是:/etc/pas ...
- Linux(3) 用户管理
Linux(3) 用户管理 学习视频:https://www.bilibili.com/video/BV1Sv411r7vd?p=19&spm_id_from=pageDriver 一.开机. ...
- Linux 之用户管理与文件权限
Linux 之用户管理与文件权限 一. 1.查看系统版本 uname uname -a uname -r uname -m 2.特点 : ...
最新文章
- 智能视觉组赛博 -10赛后反馈
- Python当中的a += a 与 a = a + a 的区别,可变类型与不可变类型的数据类型,引用传参...
- python 将图片转换成像素画_Canvas 实现位图转像素画
- yeoman_使用yeoman轻松创建Yeoman生成器
- Chrome谷歌浏览器76地址栏隐藏的HTTPS和WWW标记如何恢复
- python学习笔记(二)之列表
- laravel 事件及监听
- 构建java ut运行环境
- javaFX学习之颜色选择器(ColorPicker)
- Echart资源网站
- GPU设备架构全面解析(持续更新ing)
- 各种说明方法的答题格式_说明方法作用答题格式
- 田忌赛马(贪心算法)
- 数据可视化——柱状图
- 【pyqt5学习】——添加菜单栏动作action,给动作触发triggered绑定事件
- 基于Proteus学习单片机系列(四)——中断
- MySQL8.0 之SQL(DQL)单表、多表查询(详细回顾篇)
- iPhone 11系列发布:没有5G加持,苹果开始“不自信”了?
- 森林大火matlab模拟论文,基于MATLAB的森林防火决策支持系统 - 仿真分析部分
- “大数据金融”与“大数据安全”双剑合璧