基本的网站建设知识全国网站联盟
news/
2025/9/23 0:41:47/
文章来源:
基本的网站建设知识,全国网站联盟,怀化建设网站,湖北网站设计制作公司有哪些8 Linux实操篇-用户管理 文章目录 8 Linux实操篇-用户管理8.1 添加用户8.2 指定/修改密码8.3 删除用户8.4 切换用户8.5 查询用户信息/查看用户8.6 用户组8.7 用户和组相关文件 学习视频来自于B站【小白入门 通俗易懂】2021韩顺平 一周学会Linux。可能会用到的资料有如下所示下载链接见文末 《鸟哥的Linux私房菜 基础学习篇 第四版》1《鸟哥的Linux私房菜 服务器架设篇 第三版》2《韩顺平_2021图解Linux全面升级》3 本章介绍Linux中有关“用户管理”的操作比如针对单个用户进行创建、删除、修改密码、查询信息以及针对用户组进行创建、删除、更改用户所在组等。注意本章的操作都需要管理员权限 也就是要使用root账户来完成对于用户的操作。
8.1 添加用户 Linux系统天然就是一个 多用户多任务 的操作系统任何一个要使用系统资源的用户都必须首先向系统管理员(root账户)申请一个账号才能进入系统这个账号默认存储在家目录/home下。下面是添加用户的基本语法以及相应的示例图
# 基本语法-添加用户
useradd 用户名 # 自动的创建和用户同名的家目录
useradd -d 指定目录 新的用户名 # 给新创建的用户指定家目录注意这个目录的名称可以和用户名不一致。#mermaid-svg-sfm7wIylOljaPiY4 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-sfm7wIylOljaPiY4 .error-icon{fill:#552222;}#mermaid-svg-sfm7wIylOljaPiY4 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-sfm7wIylOljaPiY4 .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-sfm7wIylOljaPiY4 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-sfm7wIylOljaPiY4 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-sfm7wIylOljaPiY4 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-sfm7wIylOljaPiY4 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-sfm7wIylOljaPiY4 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-sfm7wIylOljaPiY4 .marker.cross{stroke:#333333;}#mermaid-svg-sfm7wIylOljaPiY4 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-sfm7wIylOljaPiY4 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-sfm7wIylOljaPiY4 .cluster-label text{fill:#333;}#mermaid-svg-sfm7wIylOljaPiY4 .cluster-label span{color:#333;}#mermaid-svg-sfm7wIylOljaPiY4 .label text,#mermaid-svg-sfm7wIylOljaPiY4 span{fill:#333;color:#333;}#mermaid-svg-sfm7wIylOljaPiY4 .node rect,#mermaid-svg-sfm7wIylOljaPiY4 .node circle,#mermaid-svg-sfm7wIylOljaPiY4 .node ellipse,#mermaid-svg-sfm7wIylOljaPiY4 .node polygon,#mermaid-svg-sfm7wIylOljaPiY4 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-sfm7wIylOljaPiY4 .node .label{text-align:center;}#mermaid-svg-sfm7wIylOljaPiY4 .node.clickable{cursor:pointer;}#mermaid-svg-sfm7wIylOljaPiY4 .arrowheadPath{fill:#333333;}#mermaid-svg-sfm7wIylOljaPiY4 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-sfm7wIylOljaPiY4 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-sfm7wIylOljaPiY4 .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-sfm7wIylOljaPiY4 .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-sfm7wIylOljaPiY4 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-sfm7wIylOljaPiY4 .cluster text{fill:#333;}#mermaid-svg-sfm7wIylOljaPiY4 .cluster span{color:#333;}#mermaid-svg-sfm7wIylOljaPiY4 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-sfm7wIylOljaPiY4 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Linux系统 usradd tom usradd -d /home/test milan /home/tom root tom milan /home/test 图8-1 在root账户创建新的用户 如上图所示直接使用useradd tom创建账户tom后其目录就默认存储在家里目录下/home/tom而指定目录创建账户milan后其就存储在设定好的目录/home/test下。注意如果没有特殊情况所有的账户都应该存储在家目录/home下以方便管理。
8.2 指定/修改密码
创建好了账户后自然也想为该账户创建密码
# 基本语法-创建密码
passwd 用户名 # 为指定账户创建密码
passwd # 为当前账户创建密码
# 下面是一个易混淆的指令
pwd # 显示当前用户在哪个目录下后面会经常用到注意点 在设置的过程中即使提示“无效的密码密码少于8个字符”等提示也不要紧再输入一遍密码即可设置通过。如果想重新设置密码只需要按照上述流程再走一遍即可新密码会覆盖旧密码。 8.3 删除用户
# 基本语法-删除用户
userdel 用户名 # 删掉账户有关内容但是保留家目录
userdel -r 用户名 # 将用户及其家目录一起删掉包括其在家目录中存储的所有资料谨慎注意点 第一条指令只是删除该用户登录系统的权限但是其保存过的资料还都存储在家目录中。但第二条指令会将该用户家目录中的全部文件都删掉所以实际生产环境中一定要谨慎。删除用户的时候尽量保证此用户不处于登录状态尤其是通过su - 用户名跳转过的状态非常危险。所以建议对用户进行添加/删除等操作时断开连接并重新登录root账户。 8.4 切换用户
前面说到由于root权限很高所以实际生产环境中基本上都只是登录到普通账户及进行开发等工作只有特殊情况下才会切换到root账户那执行这个切换过程的语句就是
# 基本语法-切换用户
su - 用户名 # 切换到高权限用户注意点 从权限高的用户切换到权限低的用户不需要输入密码反之需要。当需要返回到原来用户时使用exit/logout指令。更具体的介绍见7.2节。 8.5 查询用户信息/查看用户
id可以查询有效用户的uid(user id)、gid(group id)、所在的“组”。当用户不存在时返回无此用户。whoami可以查询当前有效用户的名字。who可以查询当前登录在系统上的登录用户的信息也就是最开始的登录账户的信息。who am i等同于 who -m只打印执行该命令的登录用户的信息及时间也就是最开始的登录账户的信息。
# 下面是从root用户登录切换到jerry普通用户后上述指令运行结果
[jerryCentOS76 ~]$ id
uid1006(jerry) gid1008(jerry) 组1008(jerry) 环境unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[jerryCentOS76 ~]$ whoami
jerry
[jerryCentOS76 ~]$ who
root pts/0 2023-07-16 16:32 (192.168.8.1)
[jerryCentOS76 ~]$ who am i
root pts/0 2023-07-16 16:32 (192.168.8.1)注意点 上述“有效用户”和“登录用户”的区别是经过账户切换指令su - 用户名后“有效用户”指的是当前状态的账户“登录用户”指的是最初登录系统的账户。 具体可以查看知乎文章“Linux 命令之who、who am i、whoami 的区别”。 8.6 用户组 #mermaid-svg-fvFZEwQwO6RDE3Lj {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-fvFZEwQwO6RDE3Lj .error-icon{fill:#552222;}#mermaid-svg-fvFZEwQwO6RDE3Lj .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-fvFZEwQwO6RDE3Lj .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-fvFZEwQwO6RDE3Lj .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-fvFZEwQwO6RDE3Lj .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-fvFZEwQwO6RDE3Lj .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-fvFZEwQwO6RDE3Lj .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-fvFZEwQwO6RDE3Lj .marker{fill:#333333;stroke:#333333;}#mermaid-svg-fvFZEwQwO6RDE3Lj .marker.cross{stroke:#333333;}#mermaid-svg-fvFZEwQwO6RDE3Lj svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-fvFZEwQwO6RDE3Lj .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-fvFZEwQwO6RDE3Lj .cluster-label text{fill:#333;}#mermaid-svg-fvFZEwQwO6RDE3Lj .cluster-label span{color:#333;}#mermaid-svg-fvFZEwQwO6RDE3Lj .label text,#mermaid-svg-fvFZEwQwO6RDE3Lj span{fill:#333;color:#333;}#mermaid-svg-fvFZEwQwO6RDE3Lj .node rect,#mermaid-svg-fvFZEwQwO6RDE3Lj .node circle,#mermaid-svg-fvFZEwQwO6RDE3Lj .node ellipse,#mermaid-svg-fvFZEwQwO6RDE3Lj .node polygon,#mermaid-svg-fvFZEwQwO6RDE3Lj .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-fvFZEwQwO6RDE3Lj .node .label{text-align:center;}#mermaid-svg-fvFZEwQwO6RDE3Lj .node.clickable{cursor:pointer;}#mermaid-svg-fvFZEwQwO6RDE3Lj .arrowheadPath{fill:#333333;}#mermaid-svg-fvFZEwQwO6RDE3Lj .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-fvFZEwQwO6RDE3Lj .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-fvFZEwQwO6RDE3Lj .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-fvFZEwQwO6RDE3Lj .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-fvFZEwQwO6RDE3Lj .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-fvFZEwQwO6RDE3Lj .cluster text{fill:#333;}#mermaid-svg-fvFZEwQwO6RDE3Lj .cluster span{color:#333;}#mermaid-svg-fvFZEwQwO6RDE3Lj div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-fvFZEwQwO6RDE3Lj :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Linux系统 Group a Group b milan king tom jack 图8-2 将用户分组的示例 Linux最优秀的地方之一在于它的“多人多任务”环境。实际开发中常有多个团队共同使用一个Linux系统这些团队之间不希望互相“串门”但是团队内部希望可以“互通有无”并且还希望有一个领导者(不是root账户)可以同时管理某些团队。那这个时候就需要将用户进行分组以方便系统对有共性(权限)的多个用户进行统一的管理。如上图中tom、jack两个账户同属于用户组amilan、king两个账户同属于用户组b。下面是对用户组进行操作的一些基本语法。
# 基本语法-组操作
groupadd 组名 # 新增组
groupdel 组名 # 删除组注意只有组里面没用户的时候才能删除组
useradd -g 用户组 用户名 # 增加用户时直接加上组
usermod -g 用户组 用户名 # 修改用户的组注意点 如果在定义一个用户的时候没有声明组那么它自己就默认属于自己的同名组。于是若先创建一个声明组的用户那么即使将该用户移动到其他组时该同名组也会被保留下来。小技巧vim /etc/group可以查看当前系统中所有的组。下一小节继续介绍。 【演示1】增加一个用户zwj直接将他指定到wudang。 groupadd wudanguseradd -g wudang zwjid zwj//输出结果
uid1001(zwj) gid1001(wudang) 组1001(wudang)【演示2】按照图8-2所示将存在的四个用户分组。
//1. 添加用户并不声明组
useradd tom
useradd jack
useradd milan
useradd king
//2. 添加组
groupadd a
groupadd b
//3. 修改用户组
usermod -g a tom
usermod -g a jack
usermod -g b milan
usermod -g b king
//4. 删除原来的同名组
groupdel tom
groupdel jack
groupdel milan
groupdel king
//5. 查看用户信息这段直接放命令行窗口的整个内容
[rootCentOS76 etc]# id tom
uid1002(tom) gid1006(a) 组1006(a)
[rootCentOS76 etc]# id jack
uid1003(jack) gid1006(a) 组1006(a)
[rootCentOS76 etc]# id milan
uid1004(milan) gid1007(b) 组1007(b)
[rootCentOS76 etc]# id king
uid1005(king) gid1007(b) 组1007(b)
//6. 查看当前系统中所有的组直接看/etc/group的最后几行
wudang:x:1001:
a:x:1006:
b:x:1007:8.7 用户和组相关文件 那现在我们可以创建很多用户并将这些用户分组那我们该如何得知当前Linux系统中都有哪些用户组这些用户组中又有哪些用户呢于是就需要查看/etc文件夹中相应的文件。下面给出基本语法即文件的每行含义
# 基本语法-查看用户和组相关文件
vim /etc/passwd # 用户配置文件记录所有用户的基本信息
# 每行含义 用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shellvim /etc/shadow # 口令配置文件记录所有用户的密码信息
# 每行含义 登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志vim /etc/group # 组配置文件记录所有的用户组
# 每行含义 组名:口令:组标识号:组内用户列表下面的代码使是在上一小节“用户组”的基础上直接查看各文件的最后几行
vim /etc/passwd
# /etc/passwd的最后几行
zwj:x:1001:1001::/home/zwj:/bin/bash
tom:x:1002:1006::/home/tom:/bin/bash
jack:x:1003:1006::/home/jack:/bin/bash
milan:x:1004:1007::/home/milan:/bin/bash
king:x:1005:1007::/home/king:/bin/bashpasswd zwj # 为zwj用户设置密码为zwj
vim /etc/shadow
# /etc/shadow的最后几行
zwj:$6$KiSPrSlv$v9PYZsSgse4NytT6y6Dzdw/spup6bkuslahPlIlU1rEbSqhHn6vwiPjxWIdCMdLxXgTLjyxM38XMXcgWJRJvw1:19554:0:99999:7:::
tom:!!:19554:0:99999:7:::
jack:!!:19554:0:99999:7:::
milan:!!:19554:0:99999:7:::
king:!!:19554:0:99999:7:::vim /etc/group
# /etc/group的最后几行
wudang:x:1001:
a:x:1006:
b:x:1007:上面在“用户配置文件”/etc/passwd提到了“登录Shell”这个概念“Shell”可以简单的理解为Linux指令的“解释器”使得Linux内核可以执行相应的指令。Linux系统中不止有一种Shell要想查看Linux的其他Shell可以使用以下指令查看。根据输出的结果当前系统存在bash、chsh、csh、tcsh等
cd /bin
ls -l *sh
# 下面是输出的结果
-rwxr-xr-x. 1 root root 2668 6月 10 2014 amuFormat.sh
-rwxr-xr-x. 1 root root 964536 4月 1 2020 bash
-rws--x--x. 1 root root 23880 10月 1 2020 chsh
-rwxr-xr-x. 1 root root 7565536 9月 30 2020 crash
lrwxrwxrwx. 1 root root 4 7月 13 17:09 csh - tcsh
-rwxr-xr-x. 1 root root 4629 4月 1 2020 gettext.sh
-rwxr-xr-x. 1 root root 277 10月 1 2020 gvfs-trash
-rwxr-xr-x. 1 root root 15864 4月 13 2018 lchsh
-rwxr-xr-x. 1 root root 11416 11月 6 2016 ldns-nsec3-hash
-rwxr-xr-x. 1 root root 2291 7月 31 2015 lesspipe.sh
-rwxr-xr-x. 1 root root 5470 10月 1 2020 lprsetup.sh
-rwxr-xr-x. 1 root root 11592 11月 6 2016 nettle-hash
-rwxr-xr-x. 1 root root 15424 4月 13 2018 pax11publish
-rwxr-xr-x. 1 root root 34620 4月 1 2020 rescan-scsi-bus.sh
-rwxr-xr-x. 1 root root 1539 12月 11 2019 setup-nsssysinit.sh
lrwxrwxrwx. 1 root root 4 7月 13 17:07 sh - bash
-rwxr-xr-x. 1 root root 774568 8月 9 2019 ssh
-rwxr-xr-x. 1 root root 23736 10月 14 2020 stapsh
-rwxr-xr-x. 1 root root 404640 10月 1 2020 tcsh
-rwxr-xr-x. 1 root root 4165 10月 1 2020 unix-lpr.sh
-rwxr-xr-x. 1 root root 11424 8月 12 2017 xrefresh遗留问题 貌似将用户添加进组中后然后将同名组删了之后root就没有权限切换到这些账户了。但仍有权限切换这些账户的组在创建新的同名组并将其移入之后也无法解决上述问题如下
[rootCentOS76 ~]# su - tom
上一次登录日 7月 16 16:28:50 CST 2023pts/0 上
su: 警告无法更改到 /home/tom 目录: 权限不够
-bash: /home/tom/.bash_profile: 权限不够
-bash-4.2$ 《鸟哥的Linux私房菜 基础学习篇 第四版》 ↩︎ 《鸟哥的Linux私房菜 服务器架设篇 第三版》 ↩︎ 《韩顺平_2021图解Linux全面升级》 ↩︎
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/910903.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!