我需要一个命令来列出所有用户以及从终端添加、删除和修改用户的命令——任何可以帮助通过终端轻松管理用户帐户的命令。
答案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 useradd
man 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。