LINUX-用户及用户组管理
概述:
Linux是一个多用户、多任务的服务器操作系统,多用户多任务指可以在系统上建立多个用户,而多个用户可以在同一时间内登录同一个系统执行各自不同的任务,而互不影响。Linux用户是根据角色定义的,具体分为三种角色:
超级用户:拥有对系统的最高管理权限,默认是root用户。
普通用户:只能对自己目录下的文件进行访问和修改,具有登录系统的权限,例如上www用户、ftp用户等。
虚拟用户:也叫“伪”用户,这类用户不能登录系统,主要是方便系统管理,满足相应的系统进程对文件属主的要求。
用户和用户组的对应关系有:一对一、一对多、多对一和多对多。
Linux系统中每一个用户都至少属于一个用户组,管理员可以通过对用户组的管理来设置用户对系统的访问权限,从而在一定程度上保证了对系统访问的安全性。
一.用户及用户组管理
1. 文件/etc/passwd和/etc/shadow
是linux系统中最重要的文件之一,使用户能够正常登录linux系统的。
“|” 管道符,作用是把前面的命令的输出再输入给后面的命令。
‘/etc/passwd’ 由 ‘:’ 分割成7个字段,每个字段的具体含义是:
(1) root所在的第一列为用户名,代表用户账号的字符串
(2) x所在的第二列代表存放的该账号的口令,实际存放在/etc/shadow中,用"x"代替
(3) 第三个字段代表用户标识号,即uid,系统识别用户身份的方式,0为root
(4) 第四个字段用户组标识号,即gid,其对应/etc/group 中的一条记录
(5) 第五个字段用于注释说明,无特殊含义
(6) 第六个字段宿主目录,表示用户所处的目录位置,如普通用户的主目录为/home/username,位置可修改
(7) 第七个字段shell,用户登录后所启动的进程,用于将用户下达的指令传给内核; Linux的shell有很多种,如 sh, csh, ksh, tcsh, bash等
'/etc/shadow'这个文件,和/etc/passwd类似,用 ‘:’ 分割成9个字段。比如 bin:*:20186:0:99999:7:::
(1) bin表示用户名,和 /etc/passwd中对应
(2) *表示被加密的用户密码
(3) 20186表示上次更改密码的日期,从1970年1月1日开始计算时间,如上次更改密码的日期为2012年1月1日,则这个值就是 ‘365 x (2012-1970) + (2012-1970)/4 + 1 = 15341’
(4) 0表示过多少天才可以更改密码,默认是0,即不限制。
(5) 99999表示密码多少天后到期。即在多少天内必须更改密码,例如这里设置成30,则30天内必须更改一次密码,否则将不能登录系统,默认是99999
(6) 密码到期前的警告期限,若这个值设置成7,则表示当7天后密码过期时,系统就发出警告告诉用户,提醒用户他的密码将在7天后到期。
7)账号失效期限。若设置值为1,则表示:密码到期且用户未在到期前修改密码,并且再经过1天,账号便会失效,即锁定了。
8)账号的生命周期,与第三段一样,是按距离1970年1月1日多少天算的。表示账号在这个日期前可以使用,到期后账号作废。
9)保留,无意义
2.新增用户组
group [-g GID] groupname
不加 “-g” 则按照系统默认的gid创建组,gid与用户一样从500开始。
3.删除用户组 groupdel
当用户组中包含用户时,需要先删除用户才能删除用户组
4.增加用户 useradd
useradd [-u UID] [-g GID] [-d HOME] [-M] [-s]
‘-u’ 自定义UID
‘-g’ 添加到某用户组中,后面可以跟组id, 也可以跟组名
‘-d’ 自定义用户的主目录
‘-M’ 不建立主目录
‘-s’ 自定义shell
‘useradd’ 不加任何选项直接跟用户名,则会创建一个跟用户名同样名字的组
‘-M’ 选项不建立用户主目录,但在 /etc/passwd文件中仍然有这个字段。
5.删除用户 userdel
userdel [-r] username "-r" 在删除用户时连带用户的主目录一起删除。
6.创建/修改用户密码 passwd
“passwd” 后面不加username则修改当前用户的密码。root账户后面跟普通用户,可修改指定用户的密码。
只有root才可以修改其他用户的密码,普通用户只能修改自己的密码。
mkpasswd命令可以随机生成符串作为一个密码,需要安装 “expect”