Linux第十二天

一.用户组基本概念

系统上每个进程都作为特定的用户运行
每一个文件都有用户和用户组
进程要访问文件,取决于进程的用户对文件的权限
使用useradd添加一个账户时,系统识别的不是你创建的用户名而是用户的id号(属主ID(用户id)属组ID(用户组id)),这个id号在/etc/passwd 下,也可以使用id命令查看当前用户的id和组id。Linux第十二天
第一列:用户名
第二列:
第三列:用户id号
第四列:用户组id号
第五列:用户家目录的路径
第六列:这个用户所属的bash类型(这需要注意:有一个shell可以使账号在登录时无法获得shell环境,那就是/sbin/nologin这个东西。他也可以用来制作纯pop邮件账号的数据
UID(用户id)的分类:
centos 7 上:
0 特权用户(在这里指root用户)
1–999 系统用户(1~ 200:有Linux发行版自行建立的系统账号,201~ 999:若用户有系统账号需求时,可以使用的账号UID)
1000—65535 普通用户
centos 6 上:
0 特权用户(在这里指root用户)
1–499 系统用户
500 普通用户
创建用户时会出现一个与UID相同的GID
有关于id号范围的调整,在/etc/login.defs 下,其中也可以调整存放每个用户邮件的路径(/var/spool/mail)
Linux第十二天
Linux第十二天
Linux第十二天
用户组的存放目录在/etc/group下:
用户名的存放目录在/etc/passwd 下

Linux第十二天
用户组的分类(两种标准):
第一种:
用户的基本组
用户的附加组
第二种:
私有组
公共组

二.模拟创建一个用户,系统上修改了哪些文件

1./etc/passwd
2./etc/group
3./etc/shadow
4./etc/gshadow
5.创建一个家目录。
说明:其实系统自动创建一个用户时,会拷贝/etc/skel下的.bash_logout,.bash_profile,.bashrc这三个文件到创建的用户的家目录下。每创建一个用户会拷贝一次。所以我们模拟的话,就需要拷贝到自己创建的家目录下,这个家目录需自己创建,创建完成后,因为它的属主属组是root的,所以需要将属主属组修改为创建用户的,之后再将那三个文件拷贝到创建的家目录下,拷贝完成后这三个文件也是属于root的,需要修改这三个文件的属主属组,在这也需要将这三个文件权限修改成660
6./var/spool/mail
说明:这个文件下存储着所有用户的邮件,每个用户在/var/spool/mail有自己的文件。所以我们也需要自己创建一个自己的。

三.用户组管理命令(groupadd,groupmod,groupdel)

1.groupadd命令:创建组
groupadd -g GID : 指定 GID创建组
groupadd -r 创建系统组
2.groupmod 命令 修改组属性
groupmod -g GID :修改GID
groupmod -n :修改组名
3.groupdel命令 删除组

四.用户管理命令(useradd,usermod,userdel)

1.useradd 创建用户
useradd -u UID 用户名 :创建指定UID的用户
useradd -g GID 用户名 :指定基本组id创建用户,此组得事先存在
useradd -G 组1,组2 用户名 :指明用户所属的附加组创建用户,多个组之间用逗号隔开
演示:比如我想创建一个eee用户,eee所属的附加组是ppp,rrr(之前已经创建好的组)
Linux第十二天
Linux第十二天
useradd -c 用户名 :指明注释信息创建用户
说明:这个注释信息就在/etc/passwd中对应用户的第五列
userad -d 用户名 :以指定的路径为用户的家目录创建用户
说明:这个指定路径就在/etc/passwd中对应用户的第六列
useradd -s 用户名 : 指定用户默认的shell
说明:这个shell就在/etc/passwd中对应用户的第七列
useradd -r 用户名 : 创建系统用户
2.usermod命令 修改用户属性
usermod -u 用户名 :修改用户的UID为指定的UID
usermod -g 组名 用户名 :修改用户所属的基本组
usermod -G 组1,组2 用户名 :修改用户所属的附加组,原来的附加组会被覆盖
演示:之前我的eee用户所属的附加组是ppp,rrr,现在我修改他的附加组为ttt,jjj.被覆盖的意思是ppp,rrr下的eee没有了。因为eee现在的所属的附加组是ttt,jjj.
Linux第十二天

Linux第十二天
usermod -c :修改用户的注释信息
usermod -d : 修改用户的家目录,用户原有的文件不会被转移至新位置
说明:仅仅是将/etc/passwd中显示的家目录路径改变了,而实际家目录下的问件还在修改前的家目录的路径下
usermod -m :与-d一起用,修改用户的家目录,用户原有的文件被转移至新位置
usermod -l :修改用户名
usermod -s :修改用户默认的shell
usermod -L :锁定用户
usermod -U :解锁用户
3.userdel命令 删除用户
userdel 用户名 :删除的只是用户名,底下的文件没有删除
userdel -r :用户名连同文件一起删除

五.如何一次性创建多个用户?

需要写一个shell脚本进行循环创建
Linux第十二天
演示1:创建100个用户
Linux第十二天
演示2:删除100个用户,将创建100个用户的语句注释掉
Linux第十二天
演示3:定义变量,方便修改参数,比如用户名的名称,UID,GID,描述,家目录,bash类型等等,if那行语句的意思是判断输出$?是否返回是0 ,-eq是等于的意思,if语句结尾时要用fi,for循环开始用do,结尾用done,这些是需要遵守的格式。

Linux第十二天