我需要一个命令来列出所有用户以及从终端添加,删除和修改用户的命令-任何可以帮助终端轻松管理用户帐户的命令。
要列表
列出所有 本地 您可以使用的用户:
cut -d: -f1 /etc/passwd
要列出能够(以某种方式)进行身份验证的所有用户,包括非本地用户,请参阅 这个答复.
一些更有用的用户管理命令(也仅限于 本地 用户):
要添加
要添加新用户,您可以使用:
sudo adduser 新名称
或:
sudo 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
命令 . 而该命令给出的输出与
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
将删除用户 和 此用户在整个系统上拥有的所有文件。
这应该得到, 在大多数正常情况下,所有正常(非系统,不奇怪等)用户:
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`