Linux 是个多用户操作系统,在操作系统上,有非常多用户, 同时为了便于同类用户的管理,有一系列的用户组。每个用户,都有自己的名称和ID, 称为 uid。每个用户组同样也有其名称和ID,称为 gid。每个用户至少从属于一个用户组,每个用户皆从属于一个主组。各个 Linux 发行版默认的管理账户为 root, uid0.

展示用户基本信息

id 命令用于展示用户 uidgidgroups

root@server:~# id root 
uid=0(root) gid=0(root) groups=0(root)

查看系统上用户列表

用户信息存储在 /etc/passwd 文件中, 可以使用下方的命令打印出所有用户信息

root@server:~# cat /etc/passwd | awk -F\: '{print $1}'
root
daemon
bin
sys
sync
games
man
lp
mail
news
uucp

......

/etc/passwd 的内容格式如下:

root@server:~# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin

......

每一行都以 “:” 分隔, 按顺序的含义为:

  1. 登录名
  2. 加密密码(可选)
  3. User ID
  4. Group ID
  5. 用户名或者注释字段
  6. 用户根目录
  7. 默认Shell程序(可选)

更多信息查看 man 5 passwd

所有用户组

用户组信息在 /etc/group 文件, 例如:

root@server:~# cat /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,example
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:

每一行皆以 : 分隔, 每个字段按顺序含义为:

  1. 用户组名称
  2. 组密码(实际场景用基本永不到)
  3. 用户组ID
  4. 属于当前用户组的用户列表,已逗号分隔

前面我们提到用户所属primary group, 来看看下面的示例:

id example
uid=1000(example) gid=1000(example) groups=1000(example),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),110(lxd),115(lpadmin),116(sambashare),120(libvirtd)

上述可以看到 gid 描述的就是用户所属的primary group, 而 groups 描述的就是secondary group.

创建用户

useradd {USERNAME} 命令用户添加系统用户,当使用 useradd 命令创建用户时将发生一系列的事情, 比如同时会创建用户家目录,定义用户默认登录Shell,同时定义用户默认主用户主.
可以使用 useradd -D来查看默认信息.

root@server:~# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/sh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no

创建用户组

类似 useradd {USERNAME}, 创建用户的命令为 groupadd {GROUP_NAME} 或者 `addgroup {GROUP_NAME}

改变用户组(primary)

对已经存在的用户使用 usermod 命令来改变用户的信息, 切换用户 primary group 的命令为:

usermod -g {GROUP_NAME} {USER_NAME}

改变用户组(secondary)

给{USER_NAME}用户添加新的用户组{GROUP_NAME}

usermod -a -G {GROUP_NAME} {USER_NAME}

【腾讯云】境外1核2G服务器低至2折,半价续费券限量免费领取!
https://cloud.tencent.com/act/cps/redirect?redirect=1068&cps_key=e4b50f6c64a4480367f8a8d16fd07c5a&from=console

标签: linux, user, group, useradd, usermod

添加新评论