管理用户和组的标准 CLI 程序是什么?

Dav*_*d Z 9 linux users utilities

我基本上是从命令行询问用户管理(例如,在没有可用图形工具的系统上)。在过去,我已经使用了几种不同的方案,以添加或删除用户和组或修改其属性:adduseruseraddusermodgpasswd,也许还有其他我忘了。我也多次听说这些程序中的一些是低级的,应该避免用于一般用途,但我永远记不起是哪个。所以我想得到一个明确的答案,哪些程序是推荐的程序,至少用于以下任务:

  • 创建一个新用户
  • 将用户添加到组
  • 从组中删除用户
  • 更改用户的主要组
  • 更改用户的登录 shell 或主目录
  • 删除用户

我正在寻找可以在几乎任何 Linux 系统(任何发行版)上使用的标准工具。

mig*_*aza 9

可悲的是,这些操作都没有标准化。

某些操作系统将此功能作为操作系统的一部分提供,例如 Linux,但即使您的 Linux 系统包含它们,随着时间的推移和跨 Linux 发行版,工具及其名称也会发生变化,因此您无法真正依赖一组标准工具来执行此操作那些任务。

您需要有一套针对每个操作系统的工具。


Phi*_*ler 8

在 Debian(和派生)系统上,adduser并且deluser是围绕useradd和相关功能的更高级别的包装器。涵盖用户创建、群组成员加减、用户删除。来自创建/删除组的相应命令是足够明智的,addgroup并且delgroup. usermod似乎涵盖了您命名的其余用例。

更新:这些是标准命令(示例):

>useradd -m  john
-m = creates home directory

>userdel -r john
-r = removes home directory

>groupadd devs

>groupdel devs

>usermod -a -G devs john
-a = append
-G = group name

>id john
lists the users id and group ids
>groups john
lists the users groups

>passwd john
will ask you for current password and new password

>sudo passwd john
will ask you for only new password

>sudo passwd -l john
will lock the user out

>sudo passwd -a -G sudo john
or
>sudo passwd -a -G wheel john
or
>sudo nano /etc/sudoders
different OS variants, adds user to the sudo group
wheel = CENTOS/RHEL
Run Code Online (Sandbox Code Playgroud)


gvk*_*vkv 6

您在问题的最后一部分提到了 Linux,但由于标题是通用的,我将回答 FreeBSD。

FreeBSD 具有与 Linux 类似的命令,但它们是传递给pw实用程序的命令:

pw useradd [user|uid] ...
pw usermod [user|uid] ...
Run Code Online (Sandbox Code Playgroud)

等等。但是,可以将命令解析为两部分:usermod; 一个名词和一个动词。此外,还可以使用groupand del

pw groupdel [group|gid] ...
Run Code Online (Sandbox Code Playgroud)

例如,删除一个组。所以我认为这很酷: 顺序无关紧要,间距也无关紧要! 这意味着,你可以通过思考你想做的事情来记住要调用的内容(无论如何用英语):

pw del user [user|uid] ...
pw mod group [group|gid] ...
pw show user [user|uid] ...
pw next user [user|uid] ...
Run Code Online (Sandbox Code Playgroud)

和更多!该pw实用程序还允许您锁定和解锁帐户:

pw lock [user|uid] ...
pw unlock [user|uid] ...
Run Code Online (Sandbox Code Playgroud)

您传递的选项和任何参数都是标准化的(尽管并不总是适用于调用命令),因此可以最大限度地减少记忆。总而言之,这是一种很好的做事方式。

注意:以上示例中的省略号表示传递给pw非附加用户或组的选项和参数。