有没有命令可以列出所有用户?还可以在终端中添加、删除、修改用户?

有没有命令可以列出所有用户?还可以在终端中添加、删除、修改用户?

我需要一个命令来列出所有用户以及从终端添加、删除和修改用户的命令——任何可以帮助通过终端轻松管理用户帐户的命令。

答案1

列表

列出全部当地的您可以使用的用户:

cut -d: -f1 /etc/passwd

要列出所有能够(以某种方式)进行身份验证的用户(包括非本地用户),请参阅此回复

一些更有用的用户管理命令(也仅限于当地的用户):

加上

要添加新用户,您可以使用:

sudo adduser new_username

或者:

sudo useradd new_username

也可以看看:adduser 和 useradd 有什么区别?

移除/删除

要移除/删除用户,首先您可以使用:

sudo userdel username

然后您可能想要删除已删除用户帐户的主目录:

sudo rm -r /home/用户名

请谨慎使用上述命令!

修改

修改用户的用户名:

usermod -l new_username old_username

要更改用户密码:

sudo passwd username

要更改用户的 shell:

sudo chsh username

要更改用户的详细信息(例如真实姓名):

sudo chfn username

要将用户添加到sudo组:

adduser username sudo

或者

usermod -aG sudo username

当然,还请参阅:,,man adduser......等等。man useraddman userdel

答案2

只需按下键盘上的Ctrl+ Alt+T即可打开终端。打开后,运行以下命令:

cat /etc/passwd

或者

less /etc/passwd
more /etc/passwd

您也可以使用 awk:awk

awk -F':' '{ print $1}' /etc/passwd

答案3

获取此类信息的最简单方法是getent- 请参阅命令手册getent手册页图标。虽然该命令给出相同的输出,但cat /etc/passwd记住它很有用,因为它将为您提供操作系统中几个元素的列表。

要获取所有用户的列表,请键入(如中列出的用户/etc/passwd

getent passwd

添加用户新用户您需要输入

sudo adduser newuser

创建一个应用了所有默认设置的用户。

奖励:添加任何用户(例如任何用户)到一个组(例如光盘) 类型

sudo adduser anyuser cdrom

您删除一个用户(例如过时的) 和

sudo deluser obsolete

如果你还想删除他的主目录/邮件,请输入

sudo deluser --remove-home obsolete

sudo deluser --remove-all-files obsolete

将删除用户整个系统上该用户拥有的所有文件。

答案4

这应该得到,在大多数正常情况下,所有正常(非系统、不奇怪等)用户:

awk -F'[/:]' '{if ($3 >= 1000 && $3 != 65534) print $1}' /etc/passwd

其工作原理如下:

  • 读入自/etc/passwd
  • 作为:分隔符
  • 如果第三个字段(用户 ID 号)大于 1000 且不大于 65534,则打印第一个字段(用户的用户名)。

这是因为在许多 Linux 系统上,1000 以上的用户名是为非特权用户(可以说是普通用户)保留的。有关此内容的一些信息这里

用户 ID (UID) 是类 Unix 操作系统为每个用户分配的唯一正整数。系统通过 UID 来识别每个用户,用户名通常仅用作人类界面。

UID 与其对应的用户名和其他用户特定信息一起存储在 /etc/passwd 文件中……

第三个字段包含UID,第四个字段包含组ID(GID),默认情况下,它等于所有普通用户的UID。

在 Linux 内核 2.4 及更高版本中,UID 是无符号的 32 位整数,可表示从 0 到 4,294,967,296 的值。但是,建议仅使用不超过 65,534 的值,以便与使用旧内核的系统或只能容纳 16 位 UID 的文件系统保持兼容性。

UID 0 具有特殊作用:它始终是 root 帐户(即全能的管理用户)。尽管可以在此帐户上更改用户名,也可以使用相同的 UID 创建其他帐户,但从安全角度来看,这两种操作都不明智。

UID 65534 通常为无系统权限的用户(与普通用户(即非特权用户)不同)保留。此 UID 通常用于通过 FTP(文件传输协议)或 HTTP(超文本传输​​协议)远程访问系统的个人。

UID 1 到 99 传统上是为特殊系统用户(有时称为伪用户)保留的,例如 wheel、daemon、lp、operator、news、mail 等。这些用户是管理员,他们不需要完全的 root 权限,但会执行一些管理任务,因此需要比普通用户更多的权限。

一些 Linux 发行版(即版本)将非特权用户的 UID 开始于 100。其他发行版(例如 Red Hat)将其从 500 开始,还有一些发行版(例如 Debian)将其从 1000 开始。由于发行版之间的差异,如果组织的网络中使用多个发行版,则可能需要手动干预。

此外,还可以方便地为本地用户保留一个 UID 块,例如 1000 到 9999,为远程用户(即网络上其他地方的用户)保留另一个 UID 块,例如 10000 到 65534。重要的是决定一个方案并坚持执行。

为特定类型的用户保留号码块这种做法的优点之一是,它使得通过系统日志搜索可疑用户活动变得更加方便。

与普遍看法相反,UID 字段中的每个条目不一定都是唯一的。但是,非唯一的 UID 可能会导致安全问题,因此 UID 应在整个组织内保持唯一。同样,应尽可能避免回收以前用户的 UID。

相关内容