Linux 用户管理:useradd, usermod 和 userdel
用户管理包括从一个用户的创建到删除过程的所有事情。用户管理有三种途径进行。
图形化工具 方法简单,适合新手,确定您不会有什么麻烦。
命令行工具 包括诸如 useradd,userdel,passwd 等命令行工具。它们更多被服务器系统管理员使用。
第三种方法较少使用,那就是直接使用文本编辑器如 vi 等 编辑本地配置文件 。
/etc/passwd
本地用户数据库保存在 /etc/passwd 文件中。
见如上截图,文件中记录通过冒号(:)分隔成7列,从左至右依次为:用户名,一个 x 值列,用户 id,主从属组 id,用户描述,用户家目录和用户登录 shell 。
root(根用户)
根用户(root)是系统中的超级用户,它拥有创建用户、删除用户的所有能力,甚至可以以其它用户身份登录的能力。根用户(root)总是拥有值为 0 的用户 id 。
useradd 命令
使用 useradd 命令,您可以向系统中添加一个用户。
语法:
useradd -m -d /home/<userName> -c "<userName>" <userName>
举例:
$ sudo useradd -m -d /home/xyz -c "xyz" xyz
见如上截图,我们创建一个名为 xyz 的用户,命令选项 -m 意味着创建用户家目录(home directory),-d 选项后跟家目录名,-c 选项后跟用户描述字符串。
xyz 用户创建结果,被系统分配用户 id 为 1004,主从属组 id 为 1004。
/etc/default/useradd 文件
文件 /etc/default/useradd 中包含一些创建用户默认选项。 useradd -D 命令可显示文件中的配置选项。
语法:
$ useradd -D
userdel 命令
使用用户删除命令(userdel)删除一个用户。
语法:
userdel -r <userName>
举例:
$ userdel -r xyz
参看如上截图,首先通过 tail 命令打开 /etc/passwd 文件查看用户账户信息。然后,通过 'userdel -r xyz' 命令删除 xyz 用户。
再次使用 tail 命令检查 /etc/passwd 文件,查看 xyz 用户不存在了。
因此,它已被删除。
usermod 命令
usermod 命令用于修改现存用户的一些属性。
语法:
usermod -c <'newName'> <oldName>
举例:
$ sudo usermod -c 'jhonny' john
参见如上截图,名为 john 的用户通过命令被修改成 jhonny 用户名。
/etc/skel/ 目录
/etc/skel/ 目录包含一些隐含文件和配置文件做为新创建用户默认家目录中的默认文件及配置。当使用创建用户命令的 -m 命令选项时,系统会将此目录下的所有文件拷贝到新创建用户的家目录中。
见如上截图,/etc/skel 目录下内容被列示。
删除用户家目录(Home Directories)
通过使用 userdel -r
命令及选项指示删除用户账户的同时删除其家目录。
语法:
userdel -r <userName>
举例:
$ sudo userdel -r john
见如上截图,用户 john 的账户及其家目录都被删除。
Login Shell (登录外壳程序)
/etc/passwd 文件也告知了用户的 登录外壳程序(login shell) 。
见如上截图,用户 guest 将以 /bin/bash 外壳程序登录,而用户 jtp 将以 /bin/ksh 外壳程序登录。
可使用 usermod 命令改变一个用户的登录外壳程序。
语法:
usermod -s <newShell> <userName>
举例:
$ sudo usermod -s /bin/bash jtp
见如上截图,用户 jtp 的登录外壳程序从 /bin/ksh 改变成 /bin/bash 。
chsh 命令
用户可使用 chsh 命令改变他自己账户的登录外壳程序。
命令 chsh 和 chsh -s 都能改变用户外壳登录程序。
语法:
chsh
见如上截图,命令 chsh 以交互方式将用户 sssit 的登录外壳程序由 /bin/sh 改变成 /bin/bash 。
语法:
chsh -s <newShell>
举例:
$ chsh -s /bin/sh
见如上截图,其登录外壳程序改变到 /bin/sh 。
推荐文章: