root用户和普通用户

虽然root用户的的权限很大,但一般情况下,我们都不会直接使用root用户而是创建一个普通用户,这样可以避免因为权限过大带来的一些误操作,当使用一些需要权限的操作时,可以使用sudo命令以管理员身份执行该操作。

su和sudo

su命令不加参数时,默认是切换到root用户,但是并没有切换到root用户的家目录,使用su -就可以切换到root用户并且切换到root用户的环境。因为使用su命令切换到root用户后权限是没有限制的,所以我们通常使用sudo命令对权限进行控制,sudo执行时,会将当前用户切换到root用户然后执行当前命令,执行完之后再切换回普通用户。

用户管理

useradd

useradd命令用于创建一个新用户,使用格式为useradd [可选参数] 用户名

可选参数:

-d指定用户的家目录。

-G指定用户所在的组,不指定用户组时默认创建一个和用户名同名的用户组。

-u指定用户默认的uid。

root@ubuntu:~# useradd test1
root@ubuntu:~# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
......
......
gdm:x:129:134:Gnome Display Manager:/var/lib/gdm3:/bin/false
gubeiqing:x:1001:1001:,,,:/home/gubeiqing:/bin/bash
test1:x:1002:1002::/home/test1:/bin/sh

可以看到最后一行就是刚创建的用户。

passwd

创建完新用户之后,需要设置新用户的密码,直接使用passwd 用户名

root@ubuntu:~# passwd test1
New password:
Retype new password:
passwd: password updated successfully

切换用户时可以使用su 用户名,需要退出时,直接使用exit就可以切换回之前的用户:

root@ubuntu:~# su test1
$
$ exit
root@ubuntu:~#

userdel

删除用户使用userdel 用户名

完整实验:

首先创建一个普通用户gubeiqing

[root@localhost ~]# useradd gubeiqing
[root@localhost ~]# passwd gubeiqing
Changing password for user gubeiqing.
New password:
BAD PASSWORD: The password is a palindrome
Retype new password:
passwd: all authentication tokens updated successfully.

这样就成功创建了一个普通用户,然后来删除这个用户。

[root@localhost ~]# userdel gubeiqing
[root@localhost ~]#

使用userdel命令就删除了,但是,问题来了,当我们再次创建gubeiqing这个用户时:

[root@localhost ~]# useradd gubeiqing
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
Creating mailbox file: File exists

文件已存在,无法创建,这是为什么?因为在创建用户时会默认生成用户的家目录密码文件用户组(不指定用户组的情况下),以及邮箱文件,而使用userdel命令删除时仅仅是删除了这个用户,而这个用户的文件还在,那么就需要完全删除这些文件。想要完全删除,有四个地方需要处理:

  • /home目录下的文件
  • /etc/passwd下的用户
  • /etc/group下的用户组
  • /var/spool/mail下的邮箱文件

下面依次来删除这些文件。

1.删除/home目录下的文件

[root@localhost ~]# cd /home
[root@localhost home]# ls
gubeiqing
[root@localhost home]# rm -rf gubeiqing
[root@localhost home]# ls
[root@localhost home]#

2.删除/etc/passwd下的用户

我们可以查看一下这个文件。

[root@localhost ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:997:User for polkitd:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
dockerroot:x:997:994:Docker User:/var/lib/docker:/sbin/nologin
gubeiqing:x:1000:1000::/home/gubeiqing:/bin/bash

在这里可以看到这个系统中的所有用户,可以看到最后一行就是刚刚创建的用户,那么使用vi编辑器删除最后一行的用户。

3.删除/etc/group下的用户组文件

先查看一下这个文件:

[root@localhost ~]# cat /etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
......
......
chrony:x:996:
cgred:x:995:
dockerroot:x:994:
gubeiqing:x:1000:

然后使用vi编辑器删除这个用户组。

4.删除/var/spool/mail下的邮箱文件

[root@localhost ~]# cd /var/spool/mail
[root@localhost mail]# ls
gubeiqing
[root@localhost mail]# rm -rf gubeiqing
[root@localhost mail]# ls
[root@localhost mail]#

删除完成,再来创建gubeiqing用户。

[root@localhost mail]# useradd gubeiqing
[root@localhost mail]# passwd gubeiqing
Changing password for user gubeiqing.
New password:
BAD PASSWORD: The password is a palindrome
Retype new password:
passwd: all authentication tokens updated successfully.

除了这种方法还有一种完全删除的方法。

[root@localhost mail]# userdel -rf gubeiqing
[root@localhost mail]# useradd gubeiqing
[root@localhost mail]# passwd gubeiqing
Changing password for user gubeiqing.
New password:
BAD PASSWORD: The password is a palindrome
Retype new password:
passwd: all authentication tokens updated successfully.

使用这两种方法都可以完全删除用户。

usermod

usermod命令用于修改用户的属性,使用方式为:usermod [可选参数] 用户名

-e修改用户账户的到期时间,格式为YYYY-MM-DD

-g变更所属用户组。

-u修改用户的id

-L锁定账户禁止其登录系统。

-U解锁账户。

groupadd

groupadd用于创建一个用户组,使用方式为groupadd [可选参数] 群组名

root@ubuntu:~# groupadd test
root@ubuntu:~# cat /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
......
......
test1:x:1002:
test:x:1003:

这里我们可以使用usermod命令修改test1用户的所属组为test,通过groups命令可以看到test1用户属于test用户组。

root@ubuntu:~# usermod -g test test1
root@ubuntu:~# groups test1
test1 : test

groupdel

groupdel用于删除一个用户组,使用方式为groupdel 群组名

groupmod

groupmod用于修改用户组属性,使用方式为groupadd -n 新群组名 当前群组名

查看历史命令

history

history命令用于查看用户都使用过哪些命令:

root@ubuntu:~# history
1 cd
2 hostnamectl
3 sethostname
4 hostname ubuntu
......
......
158 usermod -g test test1
159 groups test1
160 history

Linux快速入门(四)Linux用户管理的更多相关文章

  1. Linux快速入门教程-进程管理ipcs命令学习

    使用Linux系统必备的技能之一就是Linux进程管理,系统运行的过程正是无数进程在运行的过程.这些进程的运行需要占用系统的内存等资源,做好系统进程的管理,对于我们合理分配.使用系统资源有非常大的意义 ...

  2. Linux实战教学笔记14:用户管理初级(下)

    第十四节 用户管理初级(下) 标签(空格分隔): Linux实战教学笔记-陈思齐 ---更多资料点我查看 1,用户查询相关命令id,finger,users,w,who,last,lastlog,gr ...

  3. Linux实战教学笔记15:用户管理初级(下)

    第十四节 用户管理初级(下) 标签(空格分隔): Linux实战教学笔记-陈思齐 ---更多资料点我查看 1,用户查询相关命令id,finger,users,w,who,last,lastlog,gr ...

  4. Linux实战教学笔记14:用户管理初级(上)

    第十四节 用户管理初级(上) 标签(空格分隔): Linux实战教学笔记-陈思齐 ---更多资料点我查看 1,账号管理 1.1 管理用户命令汇总 命令 注释说明(特殊颜色的必须掌握) useradd增 ...

  5. Linux快速入门打开你的学习之道

    Linux快速入门打开你的学习之道 相信看到这篇文章的你一定是想要学习Linux,或者已经在学习Linux的人了,那我们就可以一起探讨一下,学习Linux如何快速入门呢? 首先,希望大家弄清楚自己为什 ...

  6. Linux下VsFTP和ProFTP用户管理高级技巧 之一

    Linux下VsFTP和ProFTP用户管理高级技巧       FTP服务时互联网上比较古老的一种应用,至今Interner应用面非常广泛,但令管理员头痛不已的是其用户管理,既多且杂,如何解决这一问 ...

  7. 使用IntelliJ IDEA开发SpringMVC网站(四)用户管理

    原文:使用IntelliJ IDEA开发SpringMVC网站(四)用户管理 摘要 通过对用户表的管理,更加深入地讲解SpringMVC的操作. 目录[-] 文章已针对IDEA 15做了一定的更新,部 ...

  8. Linux快速入门03-系统管理

    这部分将涉及常用的各类linux命令和一些系统高级管理特性,尤其是shell script的创建,这部分在系统自动化运维时会很有作用. Linux系列文章 快速入门系列--Linux--01基础概念 ...

  9. Linux快速入门02-文件系统管理

    继续进入Linux文件系统的学习,加油,早日突破MS压在自己身上的那道束缚. Linux系列文章 快速入门系列--Linux--01基础概念 快速入门系列--Linux--02文件系统管理 快速入门系 ...

  10. Linux快速入门04-扩展知识

    这部分是快速学习的最后一部分知识,其中最重要的内容就是源码的打包和软件的安装的学习,由于个人的Linux学习目的就是自己能在阿里云Ubuntu上搭建一个简单的nodejs发布环境. Linux系列文章 ...

随机推荐

  1. Flink CDC写入数据到kafka几种格式

    Flink CDC写入kafka几种常见的数据格式,其中包括upsert-kafka写入后正常的json格式,debezium-json格式以及changelog-json格式. upsert-kaf ...

  2. 好书推荐之《Java 核心技术:卷 1 基础知识》

    大佬推荐 <Java 核心技术:卷 1 基础知识>,这本书本来是 Sun 公司的官方用书,是一本 Java 的入门参考书. 对于 Java 初学者来说,是一本非常不错的值得时常翻阅的技术手 ...

  3. .NET周刊【2月第1期 2024-02-04】

    祝大家新年快乐,龙年大吉~ 国内文章 C#/.NET/.NET Core优秀项目和框架2024年1月简报 https://www.cnblogs.com/Can-daydayup/p/18000401 ...

  4. Codeforces Round #824 (Div. 2) A-E

    比赛链接 A 题解 知识点:贪心,数学. 注意到三段工作时间一共 \(n-3\) 天,且天数实际上可以随意分配到任意一段,每段至少有一天,现在目的就是最大化段差最小值. 不妨设 \(l_1<l_ ...

  5. 图解3种常见的深度学习网络结构:FC、CNN、RNN

    01 全连接网络结构 全连接(FC)网络结构是最基本的神经网络/深度神经网络层,全连接层的每一个节点都与上一层的所有节点相连. 全连接层在早期主要用于对提取的特征进行分类,然而由于全连接层所有的输出与 ...

  6. 使用@ControllerAdvice统一处理自定义异常

    最近工作中涉及到捕捉AOP方法中抛出的异常. 想针对某一种异常做一个统一的处理器并封装好异常信息以JSON格式交给前端进行提示. 主要实现的话有以下几步: 1.编写自定义异常类 package com ...

  7. 文心一言 VS 讯飞星火 VS chatgpt (200)-- 算法导论15.2 4题

    四.用go语言,对输入链长度为 n 的矩阵链乘法问题,描述其子问题图:它包含多少个顶点?包含多少条边?这些边分别连接哪些顶点? 文心一言: 矩阵链乘法问题是一个经典的动态规划问题,其中给定一个矩阵链, ...

  8. Direct2D 旋转篇

    微软文档:Transforms 本篇通过官方文档学习,整理出来的demo,初始样本请先创建一个普通的desktop app. ID2D1SolidColorBrush* m_pOriginalShap ...

  9. Vue3学习(十八) - TreeSelect 树选择

    写在前面 本以为可以在家学习一天,结果家里来了客人拜年,就没学习上,有点小遗憾吧. 昨天完成从分类管理的前后端代码复制出文档管理的前后端代码,遗留问题是只能选择一级父分类.值得说的是,昨晚的遗留的问题 ...

  10. 用ABP Suite创建Blazor Server的应用程序

    这个应用程序我们取名为BlazorOne,意思是集AuthServer.HttpApi Host和Blazor Server3个功能于一体的应用程序.因为ABP Suite支持另外一种模式,是把上述3 ...