有没有列出所有用户的命令? 还要添加,删除,修改用户,在终端?

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

要列表

列出所有 本地 您可以使用的用户:

cut -d: -f1 /etc/passwd

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

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

要添加

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

sudo adduser 新名称

或:

sudo useradd 新名称

请参阅: Adduser和useradd有什么区别?

删除/删除

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

sudo userdel 用户名称

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

sudo rm-r/home/用户名称

请谨慎使用上述命令!

要修改

修改用户的用户名:

usermod -l 新名称 旧名,旧名

更改用户的密码:

sudo passwd 用户名称

更改用户的shell:

sudo chsh 用户名称

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

sudo chfn 用户名称

将用户添加到 sudo 团体:

adduser 用户名称 须藤

usermod -aG sudo 用户名称

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

只要按一下 Ctrl+Alt+T 在键盘上打开终端. 当它打开时,运行下面的命令:

cat /etc/passwd

less /etc/passwdmore /etc/passwd

您也可以使用awk:奥克

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

获取此类信息的最简单方法是 getent -见 页码 getent 命令 Manpage icon. 而该命令给出的输出与 cat /etc/passwd 记住它是有用的,因为它会给你在操作系统中的几个元素的列表。

要获取您键入的所有用户的列表(因为用户列在 /etc/passwd)

getent passwd

添加用户 新用户 到你要输入的系统

sudo adduser newuser

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

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

sudo adduser anyuser cdrom

您删除用户(例如 过时的)与

sudo deluser obsolete

如果你想删除他的主目录/邮件,以及你键入

sudo deluser --remove-home obsolete

sudo deluser --remove-all-files obsolete

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

您可以使用 compgen GNU bash内置 也:

compgen -u

将列出所有用户。

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

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位整数,可以表示从零到4,294,967,296的值。 但是,建议仅使用最多65,534的值,以便与使用旧内核或只能容纳16位Uid的文件系统的系统保持兼容性。

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

UID65534通常保留给没有系统特权的用户,而不是普通(即非特权)用户。 此UID通常用于通过FTP(文件传输协议)或HTTP(超文本传输协议)远程访问系统的个人。

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

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

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

这种为特定类型的用户保留数字块的做法的优点之一是,它可以更方便地通过系统日志搜索可疑的用户活动。

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

名单 在所有可以登录的用户中(没有像bin、deamon、mail、sys等系统用户)。)

awk -F':' '$2 ~ "\$" {print $1}' /etc/shadow

添加 新用户

sudo adduser new_username

sudo useradd new_username

删除/删除用户名

sudo userdel username

如果要删除主目录(默认为目录/home/username)

sudo deluser --remove-home username

sudo rm -r /path/to/user_home_dir

如果你想从这个用户删除系统中的所有文件(不仅是家庭diretory)

sudo deluser --remove-all-files

好的,这里有一个技巧可以帮助你对此进行排序。 如果您键入用户并按Tab键两次,终端将自动完成,它将列出用户作为前4个字符存在的所有命令。

user (tab tab)

给我作为可能的选项useradd userdel usermod users users-admin
如果你想知道更多关于一个命令谷歌它或键入man man useraddgives useradd-创建一个新用户或更新默认的新用户信息。.. ...

要列出用户,你应该按照米奇所说的去做。

希望这有助于我喜欢bash中的tab完成,使我免于记住事情。

要找出计算机上/home文件夹中有主目录的用户,请运行以下命令

cd /homels 

然后,您可以看到有权登录服务器的用户。 如果我们想查看任何用户的文件,您必须是root用户。

第一个答案建议:

cut -d: -f1 /etc/passwd

但是使用这个并计算你得到的用户数量:

$ cut -d: -f1 /etc/passwd | wc -l46

46用户一台笔记本电脑是很多!. 所以用这个代替:

$ cat /etc/passwd | grep -vE '(/bin/false|/sbin/nologin|/bin/sync)' | cut -d: -f1rootrickguest-atkb2qguest-u4sf2iguest-rmlbtgguest-mz53vp

要删除来宾帐户(谁没有保存的文件反正)使用:

$ cat /etc/passwd | grep -vE '(/bin/false|/sbin/nologin|/bin/sync|guest-)' | cut -d: -f1rootrick

从列表中删除的一些示例用户是:

systemd-timesync:x:100:102:systemd Time Synchronization,,,:/run/systemd:/bin/falsegnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologinsync:x:4:65534:sync:/bin:/bin/syncsync:x:4:65534:sync:/bin:/bin/syncguest-atkb2q:x:999:999:Guest:/tmp/guest-atkb2q:/bin/bash

事实证明,单个用户系统上的大多数用户实际上是将自己设置为用户的程序。

sed答案’sed’s/:。*//’/etc/passwd`

列表用户:‘awk-F:’{print$1}’/etc/passwd`