Linux中依照账户功能可以分为:超级用户(super user)、普通用户(normal user)。普通用户又可以分为系统用户和真实用户。
超级用户在linux中拥有至高的权力,可以对linux下的各种文件做任何操作,包括读取删除文件,安装卸载硬件,启动停止服务,关机或停止系统等。在linux中超级用户一般用户名通常是root,UID为0。
普通用户在linux中的权力是受到限制的,只能操作自己具备权限的操作。如果没有足够的权限,普通用户是无法调用那些文件的,所以,普通用户对系统的危 害相对要小的很多。linux中我们可以创建4,294,967,295个普通用户。在普通用户中还分为系统用户和真是用户。系统用户是仅限系统本身使 用,我们在安装某些软件的时候,有些软件需要创建自己的用户,这些用户就属于系统用户的一部分。系统用户的UID范围在1---499之间。 真实用户就是我们平时登录的账户,真实用户的UID范围在500——4,294,967,295之间。
本机的用户账号信息通常存放在/etc/passwd中。在/etc/passwd中,每一行就是一个用户信息,每一行用:隔开,共分为七个字段,分别代 表用户名:密码:UID:GID:注释:家目录:shell类型。可以使用id命令来查看用户是否存在,例:id user 在/etc/skel中存放的就是用户的模板信息。
下面来说用户账号的常用命令:useradd、usermod、userdel、passwd
useradd添加用户命令详解:
useradd [-u UID[-o]][-g GROUP] [-g GROUPS..][-d HOME][-s SHELL][-c COMMENT][-p PASSWORD][-n][-r][-m]|[-M]username
-u 指定UID号,如果不设置,系统会默认添加为系统中可用的从小到大排的可用的UID,如果UID已经指定过,useradd会发送错误信息,可以使用-o参数,告诉useradd允许重复UID;
-g 指定群组,注意,在指定前,被指定的group必须存在;
-G 指定次要群组,可以利用“,”隔开来连续指认多个;
-d 指定家目录,默认是在/home下目录名称与用户名相同;
-s 指定用户登录使用的shell;
-c 指定用户的注释信息;
-p 指定用户加密后的密码信息;
-n 该参数是用来设置创建账号是不创建默认群组的,默认情况会创建用的同 同时创建私有用户群组;
-m|-M 指定是否创建家目录。-m是创建,-M为不创建;
-r 指定创建用户为系统用户。
usermod 修改用户命令详解:
usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-l <帐号名称>][-s <shell>][-u <uid>][用户帐号
-L 锁定账号;
-U 解除锁定;
-c 修改用户帐号的备注文字;
-d 修改用户登入时的目录;
-e 修改帐号的有效期限;
-f 修改在密码过期后多少天即关闭该帐号;
-g 修改用户所属的群组;
-G 修改用户所属的附加群组。
-l 修改用户帐号名称。
例:usermod -l newuser uesr 修改user名为newuser
-s<shell> 修改用户登入后所使用的shell。
-u<uid> 修改用户ID。
userdel 删除用户命令:
userdel [-r] userneme
userdel只有-r这个参数,这个参数的作用是删除用户的下列数据:1.用户的主目录(Home Directory)2.用户的邮箱。
passwd命令详解:
在linxu中使用useradd创建一个新用户时,useradd会锁定用户的密码,用户必须要修改密码后其用户才可以使用该账号登陆。
passwd [-d][-k][-l][-S][--stdin] username
-d 删除用户密码,亦会把/etc/passwd 和 /etc/shadow文件中的密码段清空
一旦删除密码,该用户就可以不用密码验证即可登陆系统;
-l 锁定账号,用户一旦锁定,即使用户输入正确密码也会报错,该命令只能root使用,用户无法自己使用此命令锁定自己。
-S 用来显示密码状况,该命令只能由root使用;
-stdin 由标准输入(stdin ,Standard Input)读入密码的本文,再由passwd命令加密成密文类型的密码。
当使用useradd命令创建新账号时,如果没有特殊指定,useradd会根据/etc/login.defs 和 /etc/default/useradd中的定义,作为新创建账号的默认值。
检查账号与密码的有效期限
所有用户包括超级用户和普通用户都可以使用chage -l user 命令来查看账号与密码的有效期限。
另外chage命令也可以更改账号密码的有效期限:
chage [-m MINDAYS] [-M MAXDAYS] [-d LASTDAY] [-I INACTIVE] [-E EXPIREDATE] [-W WARNDAYS] USERS
-m 设置密码修改的最小天数
-M 设置两次修改密码相距的最大天数
-d 指定密码最后修改日期
-I 指定密码过期够锁定账号的天数
-E 设置账户的过期日期。如果EXPIREDATE设置为0,则代表立即过期,如果为-1,则代表永不过期。
-W 设置密码过期前,开始警告的天数。