linux添加删除修改用户(useradd,passwd,usermod等命令)

发布时间:2019-11-21编辑:脚本学堂
本文介绍了linux下添加、删除、修改用户信息的方法,包括useradd、usermod、passwd、groupadd、finger等命令的用法,一起来学习下。

一、创建用户
1、使用命令 useradd
useradd
功能说明:建立用户帐号。
语  法:useradd [-mMnr][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s ][-u ][用户帐号] 或 useradd -D [-b][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s ]
补充说明:useradd可用来建立用户帐号。帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号。使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中。
参  数:
-c<备注>  加上备注文字。备注文字会保存在passwd的备注栏位中。 
-d<登入目录>  指定用户登入时的启始目录。
-D  变更预设值.
-e<有效期限>  指定帐号的有效期限。
-f<缓冲天数>  指定在密码过期后多少天即关闭该帐号。
-g<群组>  指定用户所属的群组。
-G<群组>  指定用户所属的附加群组。
-m  自动建立用户的登入目录。
-M  不要自动建立用户的登入目录。
-n  取消建立以用户名称为名的群组.
-r  建立系统帐号。
-s   指定用户登入后所使用的shell
-u  指定用户ID。
例:useradd dapi——创建用户dapi
    useradd –e 12/30/2014 pipi2——创建pipi2,指定有效期2014-12-30到期
    用户的缺省UID从1000向后顺序增加,1000以下作为系统保留账号,可以指定UID,
例:useradd –u 1600 pipi3
在创建用户时,需要为新建用户指定一用户组,如果不指定其用户所属的工作组,自动会生成一个与用户名同名的工作组。
创建用户dapi的时候指定其所属工作组pipi,例:useradd -g pipi dapi
  
2、使用 passwd 命令为新建用户设置密码
例:passwd dapi
注意:没有设置密码的用户不能使用。
 
3、命令 usermod 修改用户账户
usermod
功能说明:修改用户帐号。
语  法:usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-l <帐号名称>][-s ][-u ][用户帐号]
补充说明:usermod可用来修改用户帐号的各项设定。
参  数:
-c<备注>  修改用户帐号的备注文字。
-d登入目录>  修改用户登入时的目录。
-e<有效期限>  修改帐号的有效期限。
-f<缓冲天数>  修改在密码过期后多少天即关闭该帐号。
-g<群组>  修改用户所属的群组。
-G<群组>  修改用户所属的附加群组。
-l<帐号名称>  修改用户帐号名称。
-L  锁定用户密码,使密码无效。
-s  修改用户登入后所使用的shell。
-u  修改用户ID。
-U  解除密码锁定。
-------------------------------------------------------
例:将用户 user1的登录名改为  u1,
usermod –l u1 user1
例:将用户 dapi 改到 pipi组中,
usermod –g pipi dapi
例:将用户 user1 目录改为/users/us1
usermod –d /users/us1 user1
 
4、使用命令 userdel 删除用户账户
userdel
功能说明:删除用户帐号。
语  法:userdel [-r][用户帐号]
补充说明:userdel可删除用户帐号与相关的文件。若不加参数,则仅删除用户帐号,而不删除相关文件。
参  数:
-f  删除用户登入目录以及目录中所有文件。
----------------------------------------------------------
例:删除用户user2
userdel user2
例:删除用户 user3,同时删除他的工作目录
userdel –r user3
 
5、查看用户信息
id命令——查看一个用户的UID和GID
例:id user4
finger命令 ——可以查看用户的主目录、启动shell、用户名、地址、电话等信息
例:finger user4
 
二、linux用户组
6、命令 groupadd创建用户组
groupadd –g 888 users
创建一个组users,其GID为888
 
7、命令 gpasswd为组添加用户
只有root和组管理员能够改变组的成员:
例:把 user1加入users组
gpasswd –a user1 users
例:把 user1退出users组
gpasswd –d user1 users

8、命令groupmod修改组
groupmod –n user users       修改组名user为users
/etc/group文件包含所有组
/etc/shadow和/etc/passwd系统存在的所有用户名
修改当前用户所属组的方法
usermod 或者可以直接修改 /etc/paaawd文件即可
 
9、groupdel删除组
groupdel users    删除组users

测试实例:
ubuntu和windows一样,可以任意创建或者删除新的用户,windows下比较简单,ubuntu下需要使用命令,不过操作起来不是很繁琐。
创建ubuntu新用户?
首先打开终端,输入:#sudo adduser ddpp
系统可能会提示以下信息:
 正在添加用户“username”...
 正在添加新组“username”(1001)...
 正在添加新用户“username”(1001)到组“username”...
 创建主目录“/home/username”...
  正在从“/etc、skel”复制文件...
  输入新的 UNIX 口令:(此处大家注意,不是输入你当前用户的密码,而是输入你要创建新用户的密码)
  重新输入新的 UNIX 口令:(再输一次即可)
  passwd:已成功更新密码
  Changing the user information for username
  Enter the new value, or press ENTER for the default
  Full Name []: ddpp (输入新用户的名称)
  Room Number []:
  Work Phone []:
  Home Phone []:
  Other []:
这个信息是否正确? [Y/n] y
 #passwd dapi     注意:没有设置密码的用户不能使用。
 输入新的 UNIX 口令:(此处大家注意,不是输入你当前用户的密码,而是输入你要创建新用户的密码)
 重新输入新的 UNIX 口令:(再输一次即可)
  passwd:已成功更新密码
  到了这一步,新用户已经添加成功了,此时我们可以用 ls /home查看一下,如果显示 username ddpp,则代表用户创建成功。
删除ubuntu用户?
ubuntu删除用户同样是在终端下操作的,需要注意的是,如果要删除的用户当前已登陆,是删除不掉的,提示”userdel: user XXX is currently logged in“必须注销掉当前用户切换为另一个用户下,才能删除。举个例子,刚才我新建立了一个用户为 ddpp 的用户,例如我现在用用户 ddpp 登陆了桌面,此时如果我想删除 ddpp 这个用户,是删除不掉的。正确的操作方法是,我注销掉 ddpp,然后使用 root 登陆到桌面,再删除 ddpp 即可。
删除ubuntu用户的命令:sudo userdel username,删除成功后,系统无任何提示。
 
PS:(其他命令)
userconf
功能说明:用户帐号设置程序。
语  法:userconf [--addgroup <群组>][--adduser <用户ID><群组><用户名称>][--delgroup <群组>][--deluser <用户ID>][--help]
补充说明:userconf实际上为linuxconf的符号连接,提供图形界面的操作方式,供管理员建立与管理各类帐号。若不加任何参数,即进入图形界面。
参  数:
--addgroup<群组>  新增群组。
--adduser<用户ID><群组><用户名称>  新增用户帐号。
--delgroup<群组>  删除群组。
--deluser<用户ID>  删除用户帐号。
--help  显示帮助。
------------------------------------------------------
whois
功能说明:查找并显示用户信息。
语  法:whois [帐号名称]
补充说明:whois指令会去查找并显示指定帐号的用户相关信息,因为它是到Network Solutions 的WHOIS数据库去查找,所以该帐号名称必须在上面注册方能寻获,且名称没有大小写的差别。
---------------------------------------------------------
whoami

功能说明:先似乎用户名称。
语  法:whoami [--help][--version]
补充说明:显示自身的用户名称,本指令相当于执行"id -un"指令。
参  数:
--help  在线帮助。
--version  显示版本信息。
---------------------------------------------------

who

功能说明:显示目前登入系统的用户信息。
语  法:who [-Himqsw][--help][--version][am i][记录文件]
补充说明:执行这项指令可得知目前有那些用户登入系统,单独执行who指令会列出登入帐号,使用的    终端机,登入时间以及从何处登入或正在使用哪个X显示器。
参  数:
-H或--heading  显示各栏位的标题信息列。
-i或-u或--idle  显示闲置时间,若该用户在前一分钟之内有进行任何动作,将标示成"."号,如果该用户已超过24小时没有任何动作,则标示出"old"字符串。
-m  此参数的效果和指定"am i"字符串相同。
-q或--count  只显示登入系统的帐号名称和总人数。
-s  此参数将忽略不予处理,仅负责解决who指令其他版本的兼容性问题。
-w或-T或--mesg或--message或--writable  显示用户的信息状态栏。
--help  在线帮助。
--version  显示版本信息。

----------------------------------------------------
w

功能说明:显示目前登入系统的用户信息。
语  法:w [-fhlsuV][用户名称]
补充说明:执行这项指令可得知目前登入系统的用户有那些人,以及他们正在执行的程序。单独执行w
指令会显示所有的用户,您也可指定用户名称,仅显示某位用户的相关信息。
参  数:
-f  开启或关闭显示用户从何处登入系统。
-h  不显示各栏位的标题信息列。
-l  使用详细格式列表,此为预设值。
-s  使用简洁格式列表,不显示用户登入时间,终端机阶段作业和程序所耗费的CPU时间。
-u  忽略执行程序的名称,以及该程序耗费CPU时间的信息。
-V  显示版本信息。
-----------------------------------------------------

finger

finger命令的功能是查询用户的信息,通常会显示系统中某个用户的用户名、主目录、停滞时间、登录时间、登录shell等信息。如果要查询远程机上的用户信息,需要在用户名后面接“@主机名”,采用[用户名@主机名]的格式,不过要查询的网络主机需要运行finger守护进程。

该命令的一般格式为:
finger [选项] [使用者] [用户@主机]
命令中各选项的含义如下:
-s 显示用户的注册名、实际姓名、终端名称、写状态、停滞时间、登录时间等信息。
-l 除了用-s选项显示的信息外,还显示用户主目录、登录shell、邮件状态等信息,以及用户主目录下的.plan、.project和.forward文件的内容。
-p 除了不显示.plan文件和.project文件以外,与-l选项相同。 
[例]在本地机上使用finger命令。
$ finger xxq
Login: xxq Name:
Directory: /home/xxq Shell: /bin/bash
Last login Thu Jan 1 21:43 (CST) on tty1
No mail.
No Plan. 
$ finger
Login Name Tty Idle Login Time Office Office Phone
root root *1 28 Nov 25 09:17
……
----------------------------------------------------------------

vlock(virtual console lock)
功能说明:锁住虚拟终端。
语  法:vlock [-achv]
补充说明:执行vlock指令可锁住虚拟终端,避免他人使用。
参  数:
-a或--all  锁住所有的终端阶段作业,如果您在全屏幕的终端中使用本参数,则会将用键盘
切换终端机的功能一并关闭。
-c或--current  锁住目前的终端阶段作业,此为预设值。
-h或--help  在线帮助。
-v或--version  显示版本信息。