创建用户
在Linux中创建用户可以使用两种指令 adduser
和 useradd
,其区别可参考这篇文章。
在 ubuntu 中使用 adduser
会更方便地创建用户。
语法
sudo adduser username
示例
其需要使用 root
用户才能创建用户,需要输入当前用户的密码,如果未指定组,会自动创建同名组并将其添加到组中,自动创建家目录。然后要求输入该用户的密码与相关信息。
useradd
则需要指定一系列信息。
语法
useradd [-mMnr][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s <shell>][-u <uid>][用户帐号]
或
useradd -D [-b][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s <shell>]
参数说明
-c<备注>
加上备注文字。备注文字会保存在passwd的备注栏位中。-d<登入目录>
指定用户登入时的起始目录。-D
变更预设值.-e<有效期限>
指定帐号的有效期限。-f<缓冲天数>
指定在密码过期后多少天即关闭该帐号。-g<群组>
指定用户所属的群组。-G<群组>
指定用户所属的附加群组。-m
自动建立用户的登入目录。-M
不要自动建立用户的登入目录。-n
取消建立以用户名称为名的群组。-r
建立系统帐号。-s<shell>
指定用户登入后所使用的shell。-u<uid>
指定用户ID。
示例
- 创建
test2
用户,指定家目录为/home/test2
,如果未有家目录则自动创建家目录/home/test2
,指定shell为/bin/bash
注意如果为有指定的组,需要先自行创建改组。
注意此时是 test2
用户是没有密码的,需要手动添加密码,否则无法登录用户。可以使用 passwd
设置密码,passwd
具体可看这篇文章。
添加用户之后,会在 /etc/passwd
中添加一个记录
/etc/passwd
文件内容非常规律,每行记录对应一个用户
这里的密码 x
并不是真正的密码,密码存放在 /etc/shadow
中,需要 root 用户才能查看
同 /etc/passwd
文件一样,文件中每行代表一个用户,同样使用 :
作为分隔符,不同之处在于,每行用户信息被划分为 9 个字段。每个字段的含义如下:
用户名:加密密码:最后一次修改时间:最小修改时间间隔:密码有效期:密码需要变更前的警告天数:密码过期后的宽限时间:账号失效时间:保留字段
切换用户
su
(英文全拼:switch user) 命令用于变更为其他使用者的身份,除 root
外,需要键入该使用者的密码。
语法
su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]]
-f 或 --fast
不必读启动档(如 csh.cshrc 等),仅用于 csh 或 tcsh-m -p 或 --preserve-environment
执行 su 时不改变环境变数-c command 或 --command=command
变更为帐号为 USER 的使用者并执行指令(command)后再变回原来使用者-s shell 或 --shell=shell
指定要执行的 shell (bash csh tcsh 等),预设值为 /etc/passwd 内的该使用者(USER) shell--help
显示说明文件--version
显示版本资讯- -l 或 --login
这个参数加了之后,就好像是重新 login 为该使用者一样,大部份环境变数(HOME SHELL USER等等)都是以该使用者(USER)为主,并且工作目录也会改变,如果没有指定 USER ,内定是 rootUSER
欲变更的使用者帐号ARG
传入新的 shell 参数
示例
变更帐号为 root 并在执行 ls 指令后退出变回原使用者
su -c ls root
变更帐号为 root 并传入 -f 参数给新执行的 shell
su root -f
变更帐号为 clsung 并改变工作目录至 clsung 的家目录(home dir)
su - clsung
切换用户
hnlinux@runoob.com:~$ whoami //显示当前用户
hnlinux
hnlinux@runoob.com:~$ pwd //显示当前目录
/home/hnlinux
hnlinux@runoob.com:~$ su root //切换到root用户
密码:
root@runoob.com:/home/hnlinux# whoami
root
root@runoob.com:/home/hnlinux# pwd
/home/hnlinux
切换用户,改变环境变量
hnlinux@runoob.com:~$ whoami //显示当前用户
hnlinux
hnlinux@runoob.com:~$ pwd //显示当前目录
/home/hnlinux
hnlinux@runoob.com:~$ su - root //切换到root用户
密码:
root@runoob.com:/home/hnlinux# whoami
root
root@runoob.com:/home/hnlinux# pwd //显示当前目录
/root
切换用户后可以使用 exit
命令切换回来
删除用户
Linux userdel
命令用于删除用户账号。userdel
可删除用户账号与相关的文件。若不加参数,则仅删除用户账号,而不删除相关文件。
语法
userdel [-r][用户帐号]
参数说明
r
删除用户登入目录以及目录中所有文件
实例
- 删除用户账号及工作目录
sudo userdel -r test2