- 系统版本:Ubuntu
- 连接终端:Xshell
Linux系统中存在三种用户:root用户、系统用户、普通用户。
系统中的每一个用户都有一个ID(UID),UID是区分用户的唯一标志。① root用户的UID是0;②系统用户的UID范围是1-999(稍微旧一些的系统为1-499)③ 普通用户的UID范围是1000~65535(500-65535)。
用户管理指令
创建用户指令:useradd
所需权限:root
基本格式:useradd [-m\-M\-n\-r][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s \<shell>][-u \<uid>][用户帐号]
参数说明:(指令与指令间,指令与参数间用空格隔开)
-c <备注> 加上备注文字。备注文字会保存在passwd的备注栏位中。
-d <登入目录> 指定用户登入时的起始目录。
-D 变更预设值.
-e < 有效期限> 指定帐号的有效期限。
-f <缓冲天数> 指定在密码过期后多少天即关闭该帐号。
-g <群组> 指定用户所属的群组。
-G <群组> 指定用户所属的附加群组。
-m 自动建立用户的登入目录。
-M 不要自动建立用户的登入目录。
-n 取消建立以用户名称为名的群组.
-r 建立系统帐号。
-s <shell> 指定用户登入后所使用的shell。
-u <uid> 指定用户ID。
useradd使用示例如下:
仅创建一个用户
useradd <username>
此时创建的用户没有登入目录,即没有指定登录后以哪个文件夹作为初始位置,没有指定shell无法执行用户下达的命令,且因为没有设置密码无法使用该用户登录
我们发现在/home 目录下并没有建立名为 user1的文件夹
创建一个仅有备注的用户
useradd -c '起飞!' <username>
此时创建的用户没有登入目录,没有指定shell,且因为没有设置密码无法使用该用户登录
返回根目录并查询用户信息
cd /
cat /etc/passwd
再出现一大片代码的末端我们可以看见我们最近创建的两个用户,其中user3为带备注的用户
创建一个带初始登入目录的用户
useradd -m <username>
此时系统自动在/home文件夹下为user4创建了同名文件夹作为登入目录,没有指定shell,且因为没有设置密码无法使用该用户登录
创建一个指定UID的用户
useradd -u 2000 <username>
创建后查看用户信息,此时创建的用户没有登入目录,没有指定shell,且因为没有设置密码无法使用该用户登录。
在末端看到创建的UID为2000的user5
创建一个用户且把将其初始登入目录设定为特定值
在/home目录下创建usertest文件夹,并创建新用户将初始登入目录指定为usertest文件夹。
cd /
cd /home
mkdir usertest
ls
useradd -d /home/usertest <username>
此时创建的用户拥有登入目录,没有指定shell,且因为没有设置密码无法使用该用户登录。
创建一个指定shell的用户
useradd -s /bin/bash <username>
此时创建的用户没有登入目录,并且系统没有自动建立同名文件夹,但指定了shell,且没有密码不可做为登入用户。(注:shell是用户沟通系统的接口,没配置会导致用户无法执行指令,不同的特定的shell有不同的功能,如指定/usr/sbin/nologin会导致用户登录被拒绝。)
创建一个既含有登入目录又指定shell的用户
useradd -s /bin/bash -m <username>
此时创建的用户既指定了登入目录,又制定了shell,但因为还没有设置密码无法作为登入用户。
密码管理指令passwd
所需权限:root/普通用户
基本格式:passwd [-k] [-l] [-u [-f]] [-d] [-S] [username]
必要参数:
-d 删除密码
-f 强迫用户下次登录时必须修改口令
-w 口令要到期提前警告的天数
-k 更新只能发送在过期之后
-l 停止账号使用
-S 显示密码信息
-u 启用已被停止的账户
-x 指定口令最长存活期
-i 口令过期后多少天停用账户
(注:root用户可以操作所有用户密码,普通用户只能操作自己密码。指令注意区分大小写。)
设置/修改账户密码
passwd <username>
如上图,我们为已经设好登入目录和shell的user8设置密码,设置成功后,user8就可做为远程连接账户了。(注:密码在输入时不显示位数。)
查看指定账户密码状态
passwd -S <username>
当不输入参数username时,默认指定当前账户作为参数。
其中第一列为用户名;
第二列为密码状态(P为密码可用,NP为无密码,L为密码锁定,初始创建的用户密码状态为锁定);
第三列为最后修改时间;
第四列为最小时间,密码最小的生存期,单位为天;
第五列为最大时间,密码最大的生存期,单位为天;
第六列为警告时间,在密码失效前多少天用户开始收到警告提示;
第七列为失效时间,密码的失效时间(-1表示没有失效时间)
删除密码
passwd -d <username>
注:被删除密码的用户将不能作为远程连接账户,且其他普通用户无法通过su指令切换到该用户。