用户管理
一、linux中用户存在的意义:
我们知道在linux系统中是多户的,若从单个户用这个角度切入,那用户存在的意义就是每个用户有自己的权限所在,它只能做自己该作的事,不能 影响和干扰其它用户的工作。这样的工作方式才会是安全的、秩序稳定的。
二、linux中用户组存在的意义:
和生活中一样,有些东西是私人的,有些东西是公共的,有些工作一个人就可以完成,有些工作就需要多个用户协同合作完成,用户组就是针对这一实际情况出现的。
其实简单来说,用户就是来限制权限的,用户组就是用来放权限的。在这样的工作方式下,linux系统变成了一个有弹性的系统,不那么刻板。所以理解好这一点,才能对linux用户的管理有更好的掌握。
三、linux中用户的查看方式:
- 当前工作用户的查看 : whoami 如下图:
- 系统中的用户的查看
id username ###### 查看指定用户的uid gid 和它所属的所有的组。
id -u username ###### 查看指定用户的uid
id -g username ######查看指定用户的gid
id -G username #######查看指定用户的所有属组
id -n username ####### 显示名字而不显示数字
四、用户的切换:
命令 su - username
在切换用户过程中有两点需要特别注意:
- 一是要注意 那一小横‘ - ’ 的意思,我想要说的是切换用户时一定得记住不能漏掉它,它代表连同用户环境的切换。简单点说,不加那一小横的切换用户就是换汤不换药,加上就是如假包换的换用户。 通过下图的对比就很容易发现二者的区别:
- 第二就是要注意在每一切换户用之后,记得要用命令 exit或ctrl d 退出一下,不要一直使用命令su 去切换用户,因为如果不退出继续切换,每切换一次就打开一个shell,这样会大量浪费系统的资源。最后就会不能再切换户用。
五、用户信息在系统中的存储:
与用户相关的信息分布在系统中的五个文件中,下面依次介绍:
- /etc/passwd 文件
该文件中记录了系统中所有的用户的基本信息,如下图一为这个文集中我随即截的片段,图二是我们的普通用户的基本信息:
图一
图二
冒号将用户信息分成了七个部分,每个部分分别表示不同的含义。
第一部分代表:用户名 第二部分代表用户密码 第三部分为用户的uid 第四部分为用户的gid 第五部分为用户说明
第六部分为用户的家目录 第七部分代表了用户的默认的shell类型
- /etc/group
这个文件放置的是用户组相关的信息。
文件里的每行代表一个用户组与它的相关信息,冒号将一行分为四个部分,每个部分代表不同含义:
第一部分代表组名 第二部分代表组密码 第三部分代表组的gid 第四部分表示组的成员
- /etc/shadow
这个文件里面的信息是与用户登陆认证相关的信息,非常重要,文件的内容我们后文再详细讨论。
- /etc/skel/.*
这个文件中的文件都是隐藏文件,当使用useradd命令新建用户时,该目录下的所有文件都会被作为模板被复制到用户的家目录里,这些文件主要是用户的配置文件,也称用户骨文件。
- /etc/home
用户的家目录,所有新建的用户默认都会放在该目录下面。
六、用命令对用户进行管理:
1.用户的建立
为了在做实验过程中实验现象更明显,我们先介绍一条用户信息监控命令:
watch -n 1 'tail -n 3 /etc/passwd /etc/group; ls -l /home'
现在我们来看一下建立用户的命令以及几个参数的含义:
useradd username ###### 创建一个名为username的用户
useradd -u 6666 username ###### 指定创建的用户的uid为6666
useradd -g 1111 username ###### 指定新创建用户时,用户属于gid为1111的这个用户组,前提是gid为1111的这个用户组得事先存在或者提前创建。
useradd -G 2222 username ###### 指定新创建用户时,用户属于gid为2222.的这个附属组,前提是gid为1111的这个附属组得事先存在或者提前创建。
useradd -c "nice user" usraname ####### 指定新创用户的用户说明
useradd -d /home useraname ###### 指定创建新用户的家目录
useradd -s /bin/bash useraname ########## 指定新创用户的默认shell
实验过程的步骤就是,1. 用指定参数创建用户看监控现象 2. 删除用户。 然后试验每个参数的现象。
2.用户的删除以及用户组的创建:
userdel username #########删除用户在/etc/passwd /etc/group /etc/shadow 这些目录中的信息,但会遗留用户的配置文件
userdel -r username ####### 彻底删除用户
groupadd groupname ###### 建立新的用户组
groupadd -g 6666 ####### 用指定的组id建立新用户组
groupdel groupname ####### 删除用户
3.更改用户信息:
更改用户信息命令 usermod
usermod -l 新名称 原名称
usermod -u 1111 username ######## 更改用户的uid
usermod -g 2222 username ######## 更改用户的初始组
usermod -G 3333 username ######## 更改用户的附加组
usermod -aG 4444 username ####### 添加用户的附加组
usermod -G " " username ###### 清空用户的附加组
usermod -c "nice user" username ##### 更改用户说明
usermod -d /home/terry username #### 更改用户家目录的指向
usermod -md /home/terry username #####更改用户的家目录
usermod -s /bin/bash username ##### 更改用户的默认shell
usermod -L username ###### 冻结用户
usermod -U username ##### 解锁用户
七、用户的认证信息:
用户的认证工作是运维人员的工作,所以熟练掌握/etc/shadow 这个文件的内容的含义以及对其进行管理是非常必要的!
首先我们来放张图看看该文件的详细内容:
由图可以发现,一个用户的认证信息被冒号分成了九个部分,每个部分分别代表不同的含义,下面我们一次来进行说明。
1.第一部分:用户的名称
2.第二部分:用户密码
passwd username #### 修改用户密码
passwd -l username ######### 在用户密码前加入两个‘!!’
passwd -u username ######
usermode -L username ###### 在用户密码前加入一个‘!’
usermod -U username ###### 密码为空时不能使用
passwd -S username #######查看用户的密码信息
usermod -d username ###### 清空用户密码
若将默认shell改为 /sbin/nologin,那么就算用户有密码有不能登陆主机。
3.第三部分:用户密码最后一次被更改的时间
passwd -e username ###### 初始化用花修改密码的时间
chage -d n usrname ######### 可以修改用户的最后一次修改密码的时间。n为任意数
第四部分:用户密码最短有效期
passwd -n 1 username ######## 用户密码在一天之内不能被更改
chage -m 1 username #########
第五部分、用户密码最长有效期:
passwd -x 30 username ####### 30天内密码有效
chage -M 30 usrname #######
第六部分、密码警告期限:
passwd -w 2 username ####### 密码过期前两天发出警告
chage -W 2 username #######
第七部分、 用户非活跃天数:
passwd -i 1 username ##### 用户密码过期后仍可登陆系统的天数
chage -I 1 usrname #####
第八部分、 用户到期日:
chage -E 2.018-10-30 wisdom ##### 用户wisdom在30号那天会被冻结
第九部分、暂未启用!
哈哈哈,谢谢品尝,欢迎大爷再来