Linux入门第十二章,创建用户、用户组、主组附加组等相关知识详解
不管是Windows还是Linux都可以有多个用户划分权限的时候也是哪个用户有哪些权限哪个用户组有哪些权限。一个用户可以加入多个用户组就像这张图片打个比方一个学生你可以加入课代表组也可以加入班委组比如同时兼任学习委员和英语课代表一个文件如果设置权限只能让班委组的人可以访问他其余所有人都不可以看那就只需要设置组的权限对用户或用户组进行操作需要root权限我们提前进入root创建、删除用户组语法groupadd 用户组名groupadd添加用户组groupdel删除用户组这几个语法都一样都是指令加名我们先演示一下创建一个班委组如果你直接输入中文它就会报错因为组名不能包含中文字符和空格所以咱们用拼音如果你说Linux到底有多少东西不支持中文那数不过来了所以咱们还是统一都用英语保险一点groupadd banwei删除也同理groupdel banwei留个小任务创建一个课代表组创建、删除用户创建用户的指令是useradd [-g -d] 用户名-g 指定用户的组如果不指定会创建同名组并加入如果存在就直接加入不可以指定不存在的组-d 指定用户家路径如果不指定家目录默认在/home/用户名咱们创建一个叫jiang的用户把他设置到班委组useradd -g banwei jiang我们查看一下/home目录这里说个小技巧ll是ls -l的别名别名也就是另一个名字直接输入ll效果等同于ls -l。那我们输入ll /home注意/home目录不是家目录不要写~号如果你想新建用户后给他指定一个文件夹当家目录那就写为useradd jiang -g banwei -d 文件路径只要存在这个账号不管它位置在哪儿都不能重新创建一个同名的账号只要用户名存在系统的用户数据库/etc/passwd就没办法创建同名用户。Linux通过用户名和UID唯一标识用户用户名在系统中是全局唯一的执行useradd时他会先检查/etc/passwd如果发现用户名存在会拒绝创建删除用户删除用户只有一个选项和一个参数语法userdel [-r] 用户名-r删除用户的家目录不使用-r时删除时保留家目录。注意这里说的家目录是~不是/home咱们把用户ze删除掉删除的时候你不要看它的家目录的名字是zzz就去删除zzz删除用户的重心是用户你要删ze查看用户所属组查看用户所属组命令很简单就两个字母id用法id [用户名]你写看哪个用户它就会告诉你那个用户的信息如果你不写那就是看自己uid是用户的唯一ID是在整个系统中代表他们自己的gid是组唯一的ID在整个系统中代表他们的组也是主组组分为主组和附加组主组就是创建账号时分配的组附加组就是被添加到的其他组这里注意他们的权限一样只是名字不一样不要觉得主组就高一级那如果我想给他刚创建时就加入其他组比如让用户yue同时加入班委和课代表组应该怎么写如果你还是用咱们上面的方法肯定是不成功的错误示范-g是加入主组的主组只能有一个如果咱们想加入多个组还需要一个-G-G这个大写的G代表附加组咱们在这里也写上一个组gid是主组这样yue就加入了课代表组和班委组主组是课代表附加组是班委修改用户所属组大家应该都知道我的世界的模组吧模组叫mod翻译过来就是修改的意思。我们要修改用户的组所以也是mod语法usermod -a -G 用户组 用户名-a追加不移除原来的附加组如果不加这个那它就覆盖了-G 我们上面说的这个是附加组我们在不改变他原来组的同时把lin改成班委组usermod -aG banwei lin你们发现了吗明明没有给他加过一个叫wheel的组那他后面为什么会写这个这是怎么回事wheel是linux的管理员组只有在管理员组的用户才能用sudo命令执行特权并不是所有用户都可以获取到root权限的查询系统里的用户信息getent是查看命令咱们查看系统中的所有用户信息语法getent passwdpasswd是linux的一个数据库专门用来储存系统中所有用户的详细信息你可以这么理解getent是查询系统数据库passwd是数据库连到一起就是查询数据库你会发现上面有很多用户那个不需要管那个是系统创建时创建的用户咱们只看下面的lin、jiang、yue是咱们创建的共有七份信息用户名:密码:用户ID:组ID:描述信息无用:家目录:执行终端密码那里如果显示X那就说明不会用明文给你显示出来执行终端我们后面会讲如果想知道也可以去查一下查看系统全部用户组信息getent是查询系统数据库group是组的数据库那就是查询组的数据库语法getent group和刚才的用户一样上面是系统自己创建的下面是咱们创建的这里面分为三个部分组名称:组认证:组ID小结Linux支持多用户、多用户组用户也可以加入多个组用户组groupadd添加用户组groupdel删除用户组语法groupadd 用户组名这个不支持中文的组添加用户useradd添加用户userdel删除用户。useradd [-g -d] 用户名-g 指定用户的组如果不指定会创建同名组并加入如果存在就直接加入不可以指定不存在的组-d 指定用户家路径如果不指定家目录默认在/home/用户名ll是ls -l的别名别名也就是另一个名字直接输入ll效果等同于ls -l注意/home目录不是家目录不要写~号只要存在一个账号不管它位置在哪儿都不能重新创建一个同名的账号只要用户名存在系统的用户数据库/etc/passwd就没办法创建同名用户。Linux通过用户名和UID唯一标识用户用户名在系统中是全局唯一的执行useradd时他会先检查/etc/passwd如果发现用户名存在会拒绝创建删除用户语法userdel [-r] 用户名-r删除用户的家目录不使用-r时删除时保留家目录。注意这里说的家目录是~不是/home删除的时候看用户叫什么而不是看他的家目录叫什么查看用户所属组用法id [用户名]你写看哪个用户它就会告诉你那个用户的信息如果你不写那就是看自己uid是用户的唯一ID是在整个系统中代表他们自己的gid是组唯一的ID在整个系统中代表他们的组也是主组组分为主组和附加组主组就是创建账号时分配的组附加组就是被添加到的其他组-g是加入主组的主组只能有一个如果咱们想加入多个组还需要一个-G-G这个大写的G代表附加组修改用户所属组mod翻译过来就是修改的意思。语法usermod -a -G 用户组 用户名-a追加不移除原来的附加组如果不加这个那它就覆盖了-G 我们上面说的这个是附加组wheel是linux的管理员组只有在管理员组的用户才能用sudo命令执行特权并不是所有用户都可以获取到root权限的查询系统里的用户信息getent是查看命令咱们查看系统中的所有用户信息语法getent passwdpasswd是linux的一个数据库查询出来共有七份信息用户名:密码:用户ID:组ID:描述信息无用:家目录:执行终端密码那里如果显示X那就说明不会用明文给你显示出来查看系统全部用户组信息getent是查询系统数据库group是组的数据库那就是查询组的数据库语法getent group这里面分为三个部分组名称:组认证:组ID