Linux快速入门(四)Linux用户管理
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用户管理的更多相关文章
- Linux快速入门教程-进程管理ipcs命令学习
使用Linux系统必备的技能之一就是Linux进程管理,系统运行的过程正是无数进程在运行的过程.这些进程的运行需要占用系统的内存等资源,做好系统进程的管理,对于我们合理分配.使用系统资源有非常大的意义 ...
- Linux实战教学笔记14:用户管理初级(下)
第十四节 用户管理初级(下) 标签(空格分隔): Linux实战教学笔记-陈思齐 ---更多资料点我查看 1,用户查询相关命令id,finger,users,w,who,last,lastlog,gr ...
- Linux实战教学笔记15:用户管理初级(下)
第十四节 用户管理初级(下) 标签(空格分隔): Linux实战教学笔记-陈思齐 ---更多资料点我查看 1,用户查询相关命令id,finger,users,w,who,last,lastlog,gr ...
- Linux实战教学笔记14:用户管理初级(上)
第十四节 用户管理初级(上) 标签(空格分隔): Linux实战教学笔记-陈思齐 ---更多资料点我查看 1,账号管理 1.1 管理用户命令汇总 命令 注释说明(特殊颜色的必须掌握) useradd增 ...
- Linux快速入门打开你的学习之道
Linux快速入门打开你的学习之道 相信看到这篇文章的你一定是想要学习Linux,或者已经在学习Linux的人了,那我们就可以一起探讨一下,学习Linux如何快速入门呢? 首先,希望大家弄清楚自己为什 ...
- Linux下VsFTP和ProFTP用户管理高级技巧 之一
Linux下VsFTP和ProFTP用户管理高级技巧 FTP服务时互联网上比较古老的一种应用,至今Interner应用面非常广泛,但令管理员头痛不已的是其用户管理,既多且杂,如何解决这一问 ...
- 使用IntelliJ IDEA开发SpringMVC网站(四)用户管理
原文:使用IntelliJ IDEA开发SpringMVC网站(四)用户管理 摘要 通过对用户表的管理,更加深入地讲解SpringMVC的操作. 目录[-] 文章已针对IDEA 15做了一定的更新,部 ...
- Linux快速入门03-系统管理
这部分将涉及常用的各类linux命令和一些系统高级管理特性,尤其是shell script的创建,这部分在系统自动化运维时会很有作用. Linux系列文章 快速入门系列--Linux--01基础概念 ...
- Linux快速入门02-文件系统管理
继续进入Linux文件系统的学习,加油,早日突破MS压在自己身上的那道束缚. Linux系列文章 快速入门系列--Linux--01基础概念 快速入门系列--Linux--02文件系统管理 快速入门系 ...
- Linux快速入门04-扩展知识
这部分是快速学习的最后一部分知识,其中最重要的内容就是源码的打包和软件的安装的学习,由于个人的Linux学习目的就是自己能在阿里云Ubuntu上搭建一个简单的nodejs发布环境. Linux系列文章 ...
随机推荐
- Flink CDC写入数据到kafka几种格式
Flink CDC写入kafka几种常见的数据格式,其中包括upsert-kafka写入后正常的json格式,debezium-json格式以及changelog-json格式. upsert-kaf ...
- 好书推荐之《Java 核心技术:卷 1 基础知识》
大佬推荐 <Java 核心技术:卷 1 基础知识>,这本书本来是 Sun 公司的官方用书,是一本 Java 的入门参考书. 对于 Java 初学者来说,是一本非常不错的值得时常翻阅的技术手 ...
- .NET周刊【2月第1期 2024-02-04】
祝大家新年快乐,龙年大吉~ 国内文章 C#/.NET/.NET Core优秀项目和框架2024年1月简报 https://www.cnblogs.com/Can-daydayup/p/18000401 ...
- Codeforces Round #824 (Div. 2) A-E
比赛链接 A 题解 知识点:贪心,数学. 注意到三段工作时间一共 \(n-3\) 天,且天数实际上可以随意分配到任意一段,每段至少有一天,现在目的就是最大化段差最小值. 不妨设 \(l_1<l_ ...
- 图解3种常见的深度学习网络结构:FC、CNN、RNN
01 全连接网络结构 全连接(FC)网络结构是最基本的神经网络/深度神经网络层,全连接层的每一个节点都与上一层的所有节点相连. 全连接层在早期主要用于对提取的特征进行分类,然而由于全连接层所有的输出与 ...
- 使用@ControllerAdvice统一处理自定义异常
最近工作中涉及到捕捉AOP方法中抛出的异常. 想针对某一种异常做一个统一的处理器并封装好异常信息以JSON格式交给前端进行提示. 主要实现的话有以下几步: 1.编写自定义异常类 package com ...
- 文心一言 VS 讯飞星火 VS chatgpt (200)-- 算法导论15.2 4题
四.用go语言,对输入链长度为 n 的矩阵链乘法问题,描述其子问题图:它包含多少个顶点?包含多少条边?这些边分别连接哪些顶点? 文心一言: 矩阵链乘法问题是一个经典的动态规划问题,其中给定一个矩阵链, ...
- Direct2D 旋转篇
微软文档:Transforms 本篇通过官方文档学习,整理出来的demo,初始样本请先创建一个普通的desktop app. ID2D1SolidColorBrush* m_pOriginalShap ...
- Vue3学习(十八) - TreeSelect 树选择
写在前面 本以为可以在家学习一天,结果家里来了客人拜年,就没学习上,有点小遗憾吧. 昨天完成从分类管理的前后端代码复制出文档管理的前后端代码,遗留问题是只能选择一级父分类.值得说的是,昨晚的遗留的问题 ...
- 用ABP Suite创建Blazor Server的应用程序
这个应用程序我们取名为BlazorOne,意思是集AuthServer.HttpApi Host和Blazor Server3个功能于一体的应用程序.因为ABP Suite支持另外一种模式,是把上述3 ...