在ubuntu系统中创建用户,是最基本的操作。与centos7相比,有较大不同。
我们通过案例介绍,讨论用户的创建。
我们知道,在linux中,有三类用户:超级管理员 root 具有完全权限;系统用户 bin sys admin ip等,是不需要登录的服务;普通用户,通过adduser添加的用户,具有较少的权限,仅能操作用户家目录的文件等。
而在linux的ubuntu版本中,又多出两类用户:安装ubuntu系统的源用户xxx,其与root具有相同权限,仅在执行命令时,前面加sudo。在centos7中没有这项设计,而在centos8中有这类设计;通过把普通用户添加到sudo组中,使普通用户具有root权限。
一、环境
主机操作系统Win7,在虚拟机VMware 15中使用guo账号,安装Linux系统,版本为ubuntu 22.04
查看系统发行版本:
lsb_release -a
uname -a
而用-r选项可以查看系统内核
uname -r
二、设置root
在系统安装完成后,并不能用root账号登录。必须先由账号guo为root账号设置密码
sudo passwd root
即使设置了root密码,注销guo用户后,仍然不能使用root登录(通过远程登录同样如此)。
三、创建普通账号
在系统中,创建新的用户或称为账号,一般需要多步操作。因系统设置不同,多有差别。
1. 创建账号
使用adduser创建账号,命令如下:
adduser username
username为要创建的账号名
我们以添加li1用户为例:
我们用guo用户添加普通账号(用户),命令前面要有sudo
执行命令后,需要验证guo身份,成功后才执行添加账号的命令
2.设置密码
期间需要输入两次密码。第一次用于设置密码,第二次用于确认密码。
注意,输入密码时,看不见输入的字符。输入后回车即可。
设置密码需要8位及以上,含有数字、特殊符号、大小写字母等,否则提示有问题。
设置密码后,需要设置账户信息,这里可以采用默认,全部回车,最后输入Y确认即可:
添加用户后,默认会在/home路径下创建一个与用户名相同的用户目录。
3.验证
a.家目录
因为在/home目录下有其他信息,可以搜索一下li1:
切换到li1目录,可以查看一下所有文件:
其中的.kshrc是本人在配置文件中作了其他设置后产生的,默认不存在。
b.id
正常情况下,新的用户其uid和gid都从1000开始,小于1000的为系统用户。
每增加一个新用户,系统将从现有uid和gid中,查看上一个用户账号的uid和gid,加1后再作为新用户的uid和gid。
c.其他信息
执行cat /etc/passwd,也可以查看最近添加的用户
uid小于1000的,是系统账号,位于文件的前方,后面才是普通用户。
tail -5 /etc/passwd
四、创建普通管理员
我们创建一个普通管理员,可以添加sudo后具有root权限(可以执行root才有权执行的命令),以li2为例。先添加用户,再添加到sudo组中,最后验证一下。
1. 添加新用户
方法如前
2.添加到sudo组
让一个普通用户具有更多权限,可以把普通用户添加到sudo组中。
一般是执行visudo命令,为普通用户添加部分管理权限!!!
将新用户添加到sudo组:
adduser username sudo
3.验证
我们利用li2添加一个新用户li3
普通用户确实具有普通管理员功能。
五、删除账号
当我们不需要某一账号时,可以执行删除命令
由普通账号切换到root账号:
su - root
删除账号命令
deluser 用户名
注意:删除普通用户时,家目录及其内容也同时删除
六、案例比较
为了执行命令方便,我们用root身份执行各个命令。
1.命令比较
在centos7中,添加用户的命令是useradd,删除用户的命令是userdel
我们在Ubuntu中能否用此命令呢?
可以使用,但有所不同
执行useradd命令后,并没有添加家目录。可以通过添加选项 -m添加同名家目录
2.shell比较
因为添加用户的命令不同,造成添加家目录的方式也不同,同时,也会造成用户的shell也不同:
useradd命令添加的用户shell
adduser命令添加的用户shell
一个是bash,另一个是sh。这也是提示我们,命令应用有问题。不能把centos7中学习的命令用在ubuntu中。
如在ubuntu中用useradd命令创建一个用户,与用adduser命令基本一致,可以这样:
sudo useradd -m -s /bin/bash username
userdel -r username
对于moduser命令,不能在ubuntu中使用,仍然可以使用usermod命令:
小结
1.在ubuntu中,用命令adduser添加账号/用户,而与centos7中的useradd命令多有不同。
2. 在ubuntu中,用命令deluser username可以直接删除用户账号及家目录,而用centos7中的命令userdel -r username才能达到同样目的。
3. 在ubuntu中,没有moduser命令,centos7中的usermod修改用户信息的命令,同样可以用在ubuntu中。