关于Linux里的创建账户,首先我们需要理解三个文件。
关于linux的账号文件
注:以下操作建议在超级用户root下执行
shadow密码文件
more /etc/shadow
这个文件是用来保存用户密码
里面的文件从左到右意思为:
root:$abcdef1234:12644:0:99999:7:::
帐号:加密的字符:上次变化到现在的天数(19700101):可变期:要变期:到期前几天通知:::
passwd账号文件
more /etc/passwd
这个文件是用来保存用户名
里面的文件从左到右意思为:
root:x:0:0:root:/root:bin/bash
帐号:密码:UID:GID:说明性文字:家目录:使用的shell类型
虽然上面已经写了很清楚了,但是因为这个文件很重要,所以我还是解释一下,以上面的rachel(也就是截图里的最后一行)账号为例,这里的1000和1000说明rachel这个用户的用户ID(UID)和组ID(GID)都是1000,这里的用户ID不能重复,只能是唯一性的,就和身份证一样,如果用户ID重复了,那是不行的(怎么个不行我也不知道但是就是不行)。
/home/rachel说明rachel账号的家目录是在这个路径下
....中间的意思就是字面意思....
/bin/bash表示rachel这个账号执行的都是bash脚本程序
group组文件
more /etc/group
这个文件是用来保存账号组信息文件
里面的文件从左到右意思为:
root:x:0
组号:密码:组id
这个文件也很重要,组ID也不能重复
直接通过命令创建用户
这个比较简单粗暴(相较于后面的来说)
两个命令直接创建用户和用户密码(简单创建)
创建账号
useradd <账号名>
创建好账号后,可以发现三个文件后面都新增一行
这个账号明明没有密码,但是密码我就是登不上去。。
密码多少我也不知道
给账号创建密码
passwd <那个账号的密码>
这里我输入的是123456
自定义创建账号(复杂的创建)
增加组
groupadd <组名>
指定GID,创建组
groupadd -g <组ID> newgroup
删除组
groupdel <组名>
创建一个超级用户
useradd -u 0 -O -g 0 root1
删除用户(无法删除家目录文件)
userdel <用户名>
彻底删除用户(包含家目录文件)
userdel -r <用户名>
锁定用户
userdel -L <用户名>
解锁用户
userdel -U <用户名>
修改账号密码
passwd <用户名>
将账号添加到指定组
gpasswd -a <用户名> <组名>
将账号移出指定组
gpasswd -d <用户名> <组名>
账号切换
su <用户名>
账号切换(同时切换环境)
su -l <用户名>
查询账号相关信息
id <用户名>
查询组相关信息
groups <组号>
手动创建账号
这个好麻烦
首先要先编辑那三个文件,编辑顺序无所谓,反正编辑就对了
这里我先编辑账号信息
vi /etc/passwd
G(跳到最后一行)
回车(这里应该已经跳到末行)
yy(复制)
p(粘贴)
这里已经复制并粘贴出最后一行了
i(进入编辑模式)
开始编辑(魔改)复制出来的账号文件
这里我新建一个用户名为test的账号,UID和GID都相同(为了方便),家目录是/home/test,执行的命令是bash命令(截图里写错了,应该是/bin/bash)
esc键按一下
:键按一下
输入wq保存退出
然后开始编辑用户组信息
vi /etc/group
G(跳到最后一行)
输入i键直接开始编辑
编辑完成后
esc键按一下
:键按一下
输入wq保存退出
目前新建账号test有了账号信息和组信息,但是还差了个密码
这里可以通过查看shadown文件得以验证
为此所以我们应该还要给它配置密码
passwd test
123456
123456
三个文件都配置好后就完事了吗?
不是的
这里只是配置上创建了test账号的信息
但是实际上没有关于test账号的目录或文件
所以接下来还要创建test的家目录
先切到/home路径下看看有哪些用户家目录
好好好,这里就以rachel用户作为模板吧,复制rachel目录下的所有文件并改个名字叫test
cp -r rachel/ test/
改变新建(被复制)出来的目录的所属者和所属组
chow -R 1002:1002 test/
使用su-l test登录新创建的用户test以此来验证,可以看出创建成功