文章

Ubuntu查看用户列表及创建用户和删除用户

本文介绍ubuntu用户操作相关的内容,主要包括查看用户列表,创建及删除用户

主要针对ubuntu中带有用户文件夹:/home文件夹下的用户进行管理

获取用户列表

要操作当前用户,必须获取当前用户的列表,网上提供了很多花里胡哨的办法,涉及用户组操作,但是在web开发者使用中,只会用到普通用户和超级用户,超级用户直接使用sudo或者切换到sudo su进行操作,普通用户列表如何获取? 本文提供以下两个方法:

通过/home下文件夹进行识别

直接上bash

1
2
3
4
5
# 直接获取文件夹目录
ls /home
# 本地存在admin 和 devuser两个用户,执行命令以后,会有以下结果
> devuser lost+found admin
# 其中lost+found自己忽略掉就好了,其他就是我们需要的普通用户的用户名

这个方法原理简单,普通用户会创建自己的用户文件夹,直接获取/home文件夹树获得用户列表,缺点是有个lost+found比较麻烦,自己忽略掉就好了。

读取/etc/passwd文件

同样直接上代码

1
2
3
4
5
6
7
8
# 这是网上能查到的通用的命令
cat /etc/passwd
# 但是输出的结果完全不能看,对结果进行过滤
cat /etc/passwd |grep /bin/bash
# 对于上面的用户情况,输出以下内容,简单明了
> root:x:0:0:root:/root:/bin/bash
> admin:x:1000:1000:xiongfan,,,:/home/admin:/bin/bash
> devuser:x:1001:1001:,,,:/home/devuser:/bin/bash

网上盛传的对原指令的优化为cat /etc/passwd|grep -v nologin|grep -v halt|grep -v shutdown|awk -F":" '{ print $1"|"$3"|"$4 }'|more同样能看到用户列表,但是要有很多其他用户组的信息,采用我的方法看起来更简单。

这个方法原理也很简单,执行一个简单的管道操作,对用户调用的bash进行过滤。

创建用户

1
2
3
4
5
6
7
8
# 创建用户,[uesrname]为你想创建的新用户的名字
sudo adduser [username]
# 按照提示设置密码及信息即可
# 给目标用户赋予root权限: 修改/etc/sudoers文件,文件内有注释,按照注释添加就可以

# 举个例子
sudo adduser dev # 创建dev用户
sudo echo 'dev ALL=(ALL) ALL' >> /etc/sudoers # 将授权语句写入文件,使用vim操作也可以,没区别

删除用户

先上命令

1
2
3
4
5
6
7
8
# 删除用户,[uesrname]为你想删除新用户的名字
sudo userdel -r [username]
# 举个例子
sudo userdel -r dev  
#册除用户及其主目录和邮件代理配置文件,慎用此命令 
 
sudo deluser username  

简单介绍

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# userdel语法
userdel(选项)(参数)
# 选项
-f:# 强制删除用户,即使用户当前已登录;
-r:# 删除用户的同时,删除与用户相关的所有文件。
# 参数
用户名  
#deluser语法  
deluser USER
  删除普通用户
  例: deluser mike

  --remove-home	删除用户的主目录和邮箱
  --remove-all-files	删除用户拥有的所有文件
  --backup		删除前将文件备份。
  --backup-to <DIR>	备份的目标目录。
			默认是当前目录。
  --system		只有当该用户是系统用户时才删除。

delgroup GROUP
deluser --group GROUP
  从系统中删除用户组
  例如: deluser --group students

  --system		只有当该用户组是系统用户组时才删除
  --only-if-empty	只有当该用户组中无成员时才删除

deluser USER GROUP
  将用户从一个组中删除
  例: deluser mike students

常用选项:
  --quiet | -q			不将进程信息发给 stdout
  --help | -h		帮助信息
  --version | -v	版本号和版权
  --conf | -c 文件	以制定文件作为配置文件

锁定用户

锁定系统中原有的用户,让其不可用,需要的时候可以再解锁。

1
2
3
sudo usermod -L 用户名 #锁定用户(L表示lock)

sudo usermod -U 用户名 #解锁(U表示unlock) 
本文由作者按照 CC BY 4.0 进行授权