Linux 是一个多用户多任务的操作系统,用户管理成了Linux的一部分。对用户的管理和权限管理,是为了更好的调配Linux的资源,以及更安全的操作Linux系统。
1:认识比较重要的几个用户管理文件,/etc/passwd,/etc/shadow,/etc/group,
存储用户登录和用户基本属性的文件 /etc/passwd。以‘:’ 分为7个字段。
1):‘root’登录用户名。
2):‘x’ 用户口令替代符。早期的linux的登陆口令加密存放这里。基于安全,把登陆口令加密放到了/etc/shadow.
3):‘0‘ uid 。取值范围系统登录用户centos6:1-499。centos7:1-999。普通用户centos6:500+,centos7:1000+
4)‘0’ gid 。组id
5):‘root’ 备注,主要备足电话号码,家庭住址等等。
6):‘/root’家目录
7):shell,用户登录后要启动一个进程,用来将用户下达的指令传给内核,这就是shell。Linux的shell有很多种sh, csh, ksh, tcsh, bash等,而Redhat/CentOS的shell就是bash。查看/etc/passwd文件,该字段中除了/bin/bash外还有/sbin/nologin比较多,它表示不允许该账号登录。如果你想建立一个账号不让他登录,那么就可以把该字段改成/sbin/nologin,默认是/bin/bash.
存储用户口令及先关信息的文件 /etc/shadow
1):登陆用户名
2):登录口令后加密密码。
3)上次更改密码的日期,这个数字是这样计算得来的,距离1970年1月1日到上次更改密码的日期,例如上次更改密码的日期为2012年1月1日,则这个值就是 ‘365 x (2012-1970) + (2012-1970)/4 + 1 = 15341’. 因为如果是闰年,则有366天。
4)要过多少天才可以更改密码,默认是0,即不限制。
5)密码多少天后到期。即在多少天内必须更改密码,例如这里设置成30,则30天内必须更改一次密码,否则将不能登录系统,默认是99999,可以理解为永远不需要改。
6)密码到期前的警告期限,若这个值设置成7,则表示当7天后密码过期时,系统就发出警告告诉用户,提醒用户他的密码将在7天后到期。
7)账号失效期限。你可以这样理解,如果设置这个值为3,则表示:密码已经到期,然而用户并没有在到期前修改密码,那么再过3天,则这个账号就失效了,即锁定了。
8)账号的生命周期,跟第三段一样,是按距离1970年1月1日多少天算的。它表示的含义是,账号在这个日期前可以使用,到期后账号作废。
9)作为保留用的,没有什么意义。
组文件 /etc/group
以‘:’分割为4个字段。 分别为组名 ,口令(x是替代符,真正的加密密码放在/etc/gshadow),组标识号,组内用户名。
2:用户管理
useradd [option] ... user 添加用户
-u: 自定义uid 。centos 6: 系统用户 1-499,普通用户500+。centos7:系统用户500+
普通用户1000+
-r:创建系统用户。
-g :归属某个gid ,是必须存在的。
-d:自定义家目录
-M:没有家目录
-s:指定默认的shell。
-e:设定账户到期时间根式YYYY-MM-DD。
-G:指定附加组,多个一‘,’隔开。
创建一个用户为uid504,归属test 组,附加组为database,mysql,自定义家目录,无法登陆的shell,用户。
usermod [option] ... user 修改用户信息
-d :修改家目录。
-s:修改shell。
-u:更改uid。
-G:修改用户所属的附加组 -a,同时使用。
修改用户的家目录为新位置时,用户原来的文件是不会被移动至新家;-m选项可实现同时将其迁至新的家目录
-l:修改登陆名
-L:锁定用户
-U:解锁。
修改用户名centos,更改家目录,更改shell,更改用户组,添加用户组无效。
userdel [option] ...user 删除用户
-r 删除家目录。
3:组管理
groupadd [option] groupname 添加组,组是容器,用户存放用户,更好的调配用户资源。
-g :指定gid
-r :创建系统组
groupmod [option] groupname 修改组
-g:修改组Id
-n:修改组名
groupdel 删除组
4:用户管理的其他命令
who:查看正在登陆的用户
whoami: 毫无疑问我是谁
w:查看系统负载情况。
第一行从左面开始显示的信息依次为:时间,系统运行时间,登录用户数,平均负载。第二行开始以及下面所有的行,告诉我们的信息是,当前登录的都有哪些用户,以及他们是从哪里登录的等等。其实,在这些信息当中,最重要的 ‘load average:’ 后面的三个数值。
第一个数值表示1分钟内系统的平均负载值;第二个数值表示5分钟内系统的平均负载值;第三个数值表示15分钟系统的平均负载值。这个值的意义是,单位时间段内CPU活动进程数。当然这个值越大就说明你的服务器压力越大。一般情况下这个值只要不超过服务器的cpu数量就没有关系,如果服务器cpu数量为8,那么这个值若小于8。cat /proc/cpuinfo 查看cpu信息。
id [option] user :列出用户和组的信息。
su:切换用户。
su USERNAME: 非完全切换;非登录式切换
su - USERNAME或su -l USERNAME: 完全切换;登录式切换
passwd user :更改密码。只有root才能修改其他用户的密码。其他用户只能修改自己的密码。