1.用户的删除:
userdel [选项] 用户名
选项:
-r
:删除用户的同时,删除用户的家目录和邮件池中的文件。-f
:强制删除用户,即使该用户当前已登录。
PS:系统发现与该用户关联的邮件信箱不存在,就会显示“信件池未找到”的错误消息。这个错误消息本身并不影响用户删除的过程。即使出现了这个错误,userdel
命令仍然会继续执行,删除用户的账户和相关文件。
可以通过命令 cat /etc/passwd来查看是否删除了某用户。
2.用户组管理:
(1)添加:groupadd group1
通过cat /etc/group查看计算机有哪些组
(2)改名:groupmod -n 新名字 原名字
(3)删除:groupdel groupname
3.ID:所有文件都是有ID的,(文件、用户、组)输入id可以查看当前用户的信息,id后也可以加用户名来查看该用户的uid或gid等信息。
输入ls -i查看文件的id
4.配置文件etc/passwd:配置操作系统有多少用户的,除了初始用户、创建的用户和root用户以外,剩下的所有用户是系统内置的,有不同的权限,方便进行权限控制,用来运行服务或系统进程,一般无法登录。
格式一般如下:
用户名:密码占位符:用户ID:组ID:用户全名或注释:用户主目录:登录Shell
- 用户名:这是用户的登录名,用于标识用户。
- 密码占位符:由于安全原因,真正的密码哈希存储在
/etc/shadow
文件(影子文件)中,这里通常是一个x
或者星号*
。 - 用户ID (UID):这是用户的唯一标识符,系统通过 UID 来识别不同的用户。
- 组ID (GID):这是用户主组的唯一标识符。
- 用户全名或注释:这里通常包含用户的全名或者其他描述性信息。
- 用户主目录:这是用户登录系统后所在的默认目录。
- 登录Shell:这是用户登录系统后使用的默认 Shell 程序。
5.shell
在Linux系统中,Shell是一种命令行解释器,也是用户与操作系统内核之间的交互界面。Shell充当了用户与操作系统之间的桥梁,使得用户能够通过输入命令来控制和操作计算机系统。Shell不仅仅是一个程序,它还是一种脚本语言,允许用户编写脚本来自动化一系列的任务。
分类:
①/bin/bash:
- Bash是Linux中最常见的shell,是大多数Linux发行版的默认Shell,尤其是作为登录Shell。
- 它兼容大多数早期的Bourne shell命令,并提供了更多功能,如命令历史记录、命令自动补全等。
②/bin/sh:
-
sh 是最早的Unix Shell之一,由 Stephen Bourne 开发。虽然现代的 sh 往往是指 bash 或者其他兼容 POSIX 的Shell的一个子集,但它仍然被用于需要基础Shell功能和跨平台兼容性的场合。许多系统脚本和初始化脚本都是用 sh 编写的。
-
特点:sh 的功能相对简单,没有 bash 那么丰富,但它提供了基本的Shell功能,而且由于其简单性,运行速度较快。sh 的语法和行为是 POSIX 标准的一部分,这使其在各种Unix-like系统中具有很好的兼容性,也是新建用户时的默认登陆shell。
③/usr/sbin/nologin:nologin 的目的是安全,它不允许用户登录并执行交互式Shell会话。这在管理不需要人类操作员的系统服务账号时很有用,可以减少潜在的安全风险。
进入不同shell的用户发现,上面的root用户为bash,而下面为user1,是sh,两者有区别。
6.如何修改shell
①查看所有文件:cat /etc/shells
②修改change shell:
基本语法:
chsh [options] [user]
options
:可以指定不同的选项来控制chsh
的行为。user
:指定要更改Shell的用户名。如果不指定用户,则默认为当前登录的用户。
选项:
-
-s, --shell SHELL
:指定新的Shell路径。这是chsh
命令中最常用的选项,用于指定用户的新Shell。最常用 -
-l, --list
:列出系统中可用的Shell。这通常是从/etc/shells
文件中读取的Shell列表。 -
-h, --help
:显示帮助信息。 -
-V, --version
:显示版本信息
chsh -s /bin/bash username
在Ubuntu中只输入chsh也可以修改shell,但是是触发了系统的交互功能,对于系统管理员或脚本编写者来说,使用带有参数的chsh
命令(如chsh -s /bin/bash username
)更高效,因为它可以自动化这一过程,不需要任何用户输入,并且更容易集成到脚本或批量处理任务中。