Linux下的用户管理
本文使用平台:Windows10下安装虚拟机VMware Workstation. 操作系统为centos 6.7
本文涉及文件有:/etc/passwd(存放用户信息), /etc/shadow(存放用户密码),/etc/group(存放用户组信息)
本文关键字:useradd、usedel、passwd、groupadd、groupdel
本文主要内容有:Linux下添加用户、删除用户、设置用户密码、创建组、添加用户到指定组、更改用户所在组、复制用户到制定组、修改用户组名、修改用户名、删除组。
前言: Linux是支持多用户登录的,我们在登录Linux主机时,在输入完账号和密码时,Linux会先查找/etc/passwd文件中是否存在这个账号,如果没有就跳出,否则就读取该账号的userID和groupID、根目录、shell。然后核对密码表,在/etc/shadow中找出我们刚刚输入的账号和userID,核对我们输入密码是否正确。一切正确即可登录到当前用户shell。
1、 添加用户
1.1 命令介绍
命令功能 | 添加用户 |
命令名称 | useradd |
该命令格式 | Useradd [-u uid][-g group][-d home][-s shell] -u:直接给出userID -g:直接给出GID -d:直接将根目录建立在已存在目录 -s:定义shell |
1.2 命令实践
第一步:查看当前Linux下存在多少用户(ls/home);
第二步:使用useradd命令添加用户(useraddgebilaowang);
第三步:查看是否添加成功(ls/home)。
2、删除用户
2.1 命令介绍
命令功能 | 删除用户 |
命令名称 | userdel |
命令使用格式 | userdel [-r] user_name |
2.2 命令实践
第一步:使用userdel命令删除用户(userdel –r gebilaowang)
第二步:查看是否成功删除(ls/home)
3、删除用户时出现的常见问题
3.1 问题:一般在使用userdel命令时经常忘记加 –r 选项了,这样会直接导致不会删除用户的宿主目录,同时下一次要重建一个同名的用户却又提示用户已被使用,如果要删除却发现用户不存在,下面使用命令格式给大家有一个比较清晰的认识。
3.2 解决方案:find / -name“user_name”
出现”与\user_name”有关的文件,删除完即可。
3.3 命令实践
4、设置用户密码(passwd)
在默认情况下,添加完用户后并没有对设置用户的密码,因此建立用户账号基础存在也不能登录系统。需要使用passwd命令对用户账号设置密码才可以登录。
4.1 命令实践
5、创建组(groupadd)
在实际的管理工作中,如果我们一个一个的去管理账号,会增加大量的工作量同时在工作过程中可能出现不必要的错误。那么我们便可以使用“用户组”的概念来解决这些问题。
什么是用户组?
用户组是一个局域相同特性的用户的集合,在同一个组中的所有用户具有相同的权限。一般情况下我们使用useradd创建用户的同时系统会自动创建和用户同名的用户组,但是有些时候我们需要单独的创建用户组,便可以使用groupadd命令来实现,命令格式如下:
groupadd [-g gid][-o][-r][-f]group
创建一个为:teacher组为例:
创建一个teacher_2组,同时组ID为892.
6、添加用户到组
在创建组之后,我们可以使用下列3中方法将用户添加到相应的组里面去,一般有以下几种情况。
6.1 创建用户时指定所属用户组
例:创建一个wanglaoshi_1的用户,同时这个用户属于teacher组,这个时候系统就不会再建立与用户名相同的用户组账号了。命令格式为:
Useradd –ggroup_name user_name
操作例程:
6.2 更改用户的用户组
举个简单的例子,比如王老师从教研1组被调到了教研2组,此时就需要更改他的所属群组。
命令格式:
usermod –ggroup_name(要转入的群组:教研2组) user_name(被转入的人:王老师)
具体操作:
6.3 将用户添加到其他组
简而言之,就是王老师这礼拜被暂时抽调到教研2组工作,可能下礼拜就回教研1组,所以希望其同时属于教研1组和教研2组,那么便可以通过usermod–G命令来实现了。
命令格式:
usermod –Ggroup_name(教研2组名) user_name(用户名)
操作实例:
Groups wanglaoshi_1 查看王老师所属群组
Usermod –Gteacher_1 wanglaoshi_1 转移复制王老师至teacher_1组
Groupswanglaoshi_1 第二次查看王老师所在组
6.4 修改用户组和用户名
(修改用户组)命令格式: groupmod –n new_group_name old_group_name
(修改用户名)命令格式: usermod –l new_user_name old_user_name
6.5 删除组
命令格式:groupdel group_name