Linux命令添加,删除,修改,查看用户和用户组

一,组操作

1,创建组

1
groupadd  test

增加一个test组

2,修改组

1
groupmod -n test2  test

将test组的名子改成test2

3,删除组

1
groupdel test2

删除 组test2

4,查看组

a),查看当前登录用户所在的组 groups,查看apacheuser所在组groups apacheuser

b),查看所有组 cat /etc/group

c),有的linux系统没有/etc/group文件的,这个时候看下面的这个方法

1
cat /etc/passwd |awk -F [:] ‘{print $4}’ |sort|uniq | getent group |awk -F [:] ‘{print $1}’

这里用到一个命令是getent,可以通过组ID来查找组信息,如果这个命令没有的话,那就很难查找,系统中所有的组了.

二,用户操作

查看命令参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
useradd --help  
Usage: useradd [options] LOGIN

Options:
-b, --base-dir BASE_DIR 设置基本路径作为用户的登录目录
-c, --comment COMMENT 对用户的注释
-d, --home-dir HOME_DIR 设置用户的登录目录
-D, --defaults 改变设置
-e, --expiredate EXPIRE_DATE 设置用户的有效期
-f, --inactive INACTIVE 用户过期后,让密码无效
-g, --gid GROUP 使用户只属于某个组
-G, --groups GROUPS 使用户加入某个组
-h, --help 帮助
-k, --skel SKEL_DIR 指定其他的skel目录
-K, --key KEY=VALUE 覆盖 /etc/login.defs 配置文件
-m, --create-home 自动创建登录目录
-l, 不把用户加入到lastlog文件中
-M, 不自动创建登录目录
-r, 建立系统账号
-o, --non-unique 允许用户拥有相同的UID
-p, --password PASSWORD 为新用户使用加密密码
-s, --shell SHELL 登录时候的shell
-u, --uid UID 为新用户指定一个UID
-Z, --selinux-user SEUSER use a specific SEUSER for the SELinux user mapping

1.增加用户

useradd test

passwd test

增加用户test,有一点要注意的,useradd增加一个用户后,不要忘了给他设置密码,不然不能登录的。

两个用户创建命令之间的区别:
adduser: 会自动为创建的用户指定主目录、系统shell版本,会在创建时输入用户密码。

useradd:需要使用参数选项指定上述基本设置,如果不使用任何参数,则创建的用户无密码、无主目录、没有指定shell版本。

1
2
3
4
5
useradd [选项] 用户名   #创建新用户

sudo useradd -m -g 组名 用户名
-m : 自动建立用户家目录,创建用户时最好加这个 。
-g 组名 : 指定用户所在的组,否则会建立一个与用户同名的组。

2.修改用户

1
usermod -d /home/test -G test2 test

将test用户的登录目录改成/home/test,并加入test2组,注意这里是大G。

1
2
gpasswd -a test test2 #将用户test加入到test2组
gpasswd -d test test2 #将用户test从test2组中移出

3.删除用户

1
2
3
4
5
 userdel [选项] 用户名   #删除一个用户

选项:

-r : 把用户家目录一并删除

提示: 如果添加用户时,没有加-m创建家目录,最简单的方法是删除该用户,重新创建。

userdel test

将test用户删除

4.查看用户

添加的组会保存到/etc/group文件中,可以通过cat -n /etc/group | grep 组名 单独查看信息。

创建的用户保存在/etc/passwd文件中,可以通过cat -n /etc/passwd | grep 用户名 单独查看信息。

1
2
3
4
5
6
7
8
9
10
11
12
$ cat -n /etc/group | grep kmust   # 查看kmust组的信息
69 kmust:x:1001: # 组id为1001,69为行号

$ cat -n /etc/passwd | grep zyq # 查看 zyq 用户的信息
40 zyq:x:1000:1000:zyq,,,:/home/zyq:/bin/bash
# 40:行号
#zyq:用户名
#x : 密码标志,真正的密码是放在shadow(影子文件)中,并且加密
#1000:1000: 分别是UID和GID。UID(用户ID): 0(超级用户),1~499(系统用户),500~65535(普通用户)。 要想修改一个用户为超级用户,只需将UID改为0即可
#zyq,,, : 用户的说明信息,当初创建用户时随便写的
#/home/zyq : 家目录
#/bin/bash : 登录使用的shell(ubuntu是dash软件)

a)查看当前登录用户

1
2
#查看目前所有登录的用户和用户IP地址和时间,未登录用户不能显示
who

b)查看自己的用户名

1
2
 #查看我是哪个用户
whoami

c)查看单个用户信息

1
2
3
finger apacheuser
#查看用户的UID(用户id) 和 GID(组id) 和附件组等, 用户不写,默认当前用户
id apacheuser

d)查看用户登录记录

1
2
3
4
#查看登录成功的用户记录
last
#查看登录不成功的用户记录
lastb

e)查看所有用户

1
2
cut -d : -f 1 /etc/passwd
cat /etc/passwd |awk -F \: '{print $1}'