用户和组
一、Linux用户
-
登录linux系统时,必须通过指定的用户名和密码进行登录。我们的用户名是centos,但是Linux不把我们看作centos,而
是一个数字。 -
在Linux中,用userid(一个32位的二进制整数)来表示用户。可以通过id命令,查看自己的userid;
-
userid为0的表示根用户,即用户名称为root的用户;
-
系统运行的每个进程、所创建的每个文件都有一个userid,这个userid代表运行这个程序的用户,或者文件的所有者;
-
Linux系统中,用户被保存在/etc/passwd文件中,该文件有7列:
- 用户名
- 保存密码
- 用户id
- 主要组id
- 备注信息
- 主目录
- 登录shell
-
密码保存在第二个字段,出于安全考虑,linux采用一种更新叫做“影子密码”,用户的密码被专门保存在/etc/shadow文件中,
root:x:0:0:root:/root:/bin/bash
密码只显示x。
-
三种用户
-
一般用户 userid>=1000
-
超级用户 userid=0
-
系统用户 userid<1000
linux在安装某些软件包时会自动分配它们自己的userid和用户名“mail” “news”等用户名。
-
二、登录Linux的过程
-
先找/etc/passwd文件里是否有这个账户?如果没有则退出,如果有则将该账户对应的UID与GID读出来,并将该帐号的家目录和shell设置也一起读出来;
-
然后核对密码表,这时Linux用进入/etc/shadow查找对应的帐号和UID,然后核对刚才输入的密码和里面的密码是否相符,存放密码的文件/etc/shadow,该文件有9列:
- 用户名
- 加密密码
- 最近更改密码的日期
- 密码不可更改的天数
- 密码需要重新更改的天数
- 密码更改期限前的警告期限
- 密码过期的宽限时间
- 帐号失效日期
- 保留字段
-
如果一切都相符,就进入shell控制阶段。
三、用户和组有关的命令
-
passwd命令:现场调查可以通过passwd命令更改自己的密码,只有自己或者根用户(root)才有权利更改密码。
-
su命令:可以从当前用户切换到其他用户;也可以从普通用户切换到其他用户或者根用户,但需要密码,从根用户切换到其他用户不需要密码。
-
useradd(adduse)命令:根用户通过这两个命令来添加新用户,并且通过passwd设置密
码,这个简单的命令会带来以下操作:-
分配一个新的userid,是/etc/passwd中数字最大的
-
在/etc/passwd中添加一行
-
为用户建立一个新的主目录 /home/cauc
-
在/etc/group中为用户建立一个新的个人组
注意:可以使用 -c选项 存储用户的全称,如果有空格,需用引号把整个字段扩起来。
-
-
groups命令:查看用户所支持的组显示当前登录用户所支持的组
-
usermod命令:创建用户后修改其属性,使用usermod命令的帮助学习下列选项的使用:
-
-l 改变用户的名称
-
-G 改变用户支持的用户组
-
-e “YYYY-MM-DD” 设定失效日期
-
-L 不让他们登录
-
-U 反转-L的效果 -u 修改用户的userid
-
-s 改变shell的实际文件
-
-c 修改用户备注信息
-
-
userdel:删除用户
-r选项,用户的主目录及其以下的所有条目都回被删除。(小心!!)