前言
我们新建用户的时候,是先建立组再建立用户还是先建立用户再建立组呢?
- 答案是先建立组之后再建立用户
例如:useradd li => 是先建立好与用户名同名的组之后,再建立的li这个用户
一、用户
1. user的操作
useradd
-
useradd 选项 用户名
[root@localhost ~]# useradd weihong
[root@localhost ~]# tail -f /var/log/secure May 24 19:27:59 localhost useradd[2094]: new group: name=weihong, GID=7791 May 24 19:28:00 localhost useradd[2094]: new user: name=weihong, UID=7791, GID=7791, home=/home/weihong, shell=/bin/bash
-
新建的uid和gid都在前一个用户的uid和gid上加一
用户分类
-
超级用户:root
- uid为0,gid也为0
- 有极大的权限
-
程序用户/系统用户 => 不能登录系统,没有家目录,uid和gid在1~999
UID为1-499(RHEL6),1-999(RHEL8)- 程序用户:用来启动程序使用的,例如mysql这个用户, ssh,ftp,mail,halt
-s /sbin/nologin - 系统用户:linux系统里完成的功能用户,例如:启动系统的程序
系统用户无法用来登录系统,但也不能删除,因为一旦删除,依赖这些用户运行的服务或程序就不能正常执行,会导致系统问题。
- 程序用户:用来启动程序使用的,例如mysql这个用户, ssh,ftp,mail,halt
-
普通用户
-
uid和gid在1000~60000
-
登录系统,启动程序
-
这类用户的权限会受到基本权限的限制,也会受到来自管理员的限制
-
- [root@localhost liziying123]# cat /etc/login.defs
defaults默认
# Min/max values for automatic uid selection in useradd
#
UID_MIN 1000
UID_MAX 60000
# System accounts
SYS_UID_MIN 201
SYS_UID_MAX 999
#
# Min/max values for automatic gid selection in groupadd
#
GID_MIN 1000
GID_MAX 60000
# System accounts
SYS_GID_MIN 201
SYS_GID_MAX 999
- -M 用户的uid在上一个用户的基础上加1,不新建用户的家目录
- -r 新建系统用户,用户的uid在1000以内,不新建用户的家目录
[root@localhost liziying123]# useradd -M xuzhu
[root@localhost liziying123]# cd ~xuzhu
-bash: cd: /home/xuzhu: 没有那个文件或目录
[root@localhost liziying123]# tail -1 /etc/passwd
xuzhu:x:1030:1031::/home/xuzhu:/bin/bash
[root@localhost liziying123]# useradd -r wuyazi
[root@localhost liziying123]# tail -1 /etc/passwd
wuyazi:x:997:995::/home/wuyazi:/bin/bash
[root@localhost liziying123]# cd ~xuzhu
-bash: cd: /home/xuzhu: 没有那个文件或目录
[root@localhost liziying123]# cd ~wuyazi
-bash: cd: /home/wuyazi: 没有那个文件或目录
[root@localhost liziying123]#
一切皆文件
-
/etc/passwd: 存放了linux系统里的所有用户信息。
[root@localhost ~]# cat /etc/passw liziying123:x:1028:1028::/home/liziying123:/bin/bash
-
/etc/group:记录了系统中所有组的信息
bash
[root@localhost ~]# cat /etc/group
root: x:0:
bin: x:1: -
/etc/shadow :存放用户的密码信息,普通用户打不开。
- 经过加密算法加密的密码
[root@localhost ~]# head -1 /etc/shadow root:$6$2pDeoiC4TkOKkGFv$m1EARkcanewDcY5EAo6OYmKZFZoakAwRAbWjWKZvhozmWbqSFL.oheQ10le1o9WNGh7OftD00iqN2/x0vKSUt.::0:99999:7:::
- cat /etc/shells: 查看linux里支持哪些shell
二、组操作
groupadd
[root@localhost liziying123]# groupadd shaolin
[root@localhost liziying123]# groupadd wudang
[root@localhost liziying123]# tail -2 /etc/group
shaolin:x:1030:
wudang:x:1031:
groupdel
[root@localhost liziying123]# groupdel shaolin
[root@localhost liziying123]# groupdel wudang
[root@localhost liziying123]# tail -2 /etc/group
liziying123:x:1028:
liwenqian123:x:1029:
- -g 基本组(主要组)
- -G 附加组(次要组)
一个用户可以加入多个组,分主要组和次要组
一个组里可以有多个用户
[root@localhost ~]# useradd -g government -G tiandihui,shenlongjiao -c "ludingji" -s /bin/bash -d /home/weixiaobao weixiaobao
[root@localhost ~]# id weixiaobao
uid=7794(weixiaobao) gid=1034(government) 组=1034(government),1032(tiandihui),1033(shenlongjiao)
[root@localhost ~]# su - weixiaobao
[weixiaobao@localhost ~]$ pwd
/home/weixiaobao
总结
我们在使用命令的时候需要思考命令背后的过程,熟悉useradd和groupadd命令,明白组和用户的关系