一、Linux 用户介绍
-
什么是用户
- 用户是操作系统提供的一种安全机制
- 用户是权限的化身
-
为何要有用户
- 划分权限,增强安全性
- 每启动一个进程都会与一个用户关联
进程 -> 用户 -> 权限(作用在用户身上) - 组的概念
- 主组:用户本身所在的部门
- 附加组:为用户添加的部门
- 用户与组的关系:
一对一:一个用户可以属于一个组,用户默认就在自己的主组下
一堆多:一个用户可以属于多个组,用户只有一个主组,但可以为用户添加多个附加组
Linux 系统是根据uid区分用户
0 -> 超级管理员
1-200 -> 系统用户
200-999 -> 系统用户
1000+ -> 普通用户
二、用户与组相关文件
-
/etc/passwd 用户基本属性存放位置
[root@localhost ~]# cat /etc/passwd
root:X(小写):0:0:root:/root:/bin/bash用户名:口令:用户标识号:组标识号:注释性描述:主目录:命令解释器
ps:密码位:
一些系统中,存放着加密后的用户口令字。虽然这个字段存放的只是用户口令的加密串,不是明文,但是由于/etc/passwd文件对所有用户都可读,所以这仍是一个安全隐患。因此,现在许多Linux系统(如SVR4)都使用了shadow技术,把真正的加密后的用户口令字存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一个特殊的字符,例如“x”或者“*”。 -
/etc/shadow(影子文件) 用户密码信息存放位置
[root@localhost ~]# cat /etc/shadow
root:
6 6 6zriUs7tq$MsdY4XTnKZDwaq3hbuZQaq54h0WIyKj66Jl
hWiJJ6pTed.U1chyQTlRQt/rjsizk/r.UnnH/haX5HY/MI9wNG1:18554:0:99999:7:::
bin::17834:0:99999:7:::
daemon::17834:0:99999:7:::
省略输入… -
/etc/group 组文件
-
/etc/gshadow:组密码文件
/etc/skel/ 用户的模板
/home/xxx 用户目录
/var/spool/mail/xxx 用户邮箱文件
三、用户管理命令
useradd 添加用户
userdel 删除用户
usermod 修改用户信息
-
创建用户
[root@localhost ~]# useradd demo -
查看用户
[root@localhost ~]# id root # 查看用户信息 uid=0(root) gid=0(root) 组=0(root) [root@localhost ~]# who # 查看当前登录的用户信息 test tty1 xxxx root pts/0 xxxx [root@localhost ~]# whoami # 查看当前登录的用户 root
注意:当创建一个用户时,如果没有指定用户的主组,将会创建一个同名的组作为用户的组组。
-
删除用户
[root@localhost ~]# userdel test 删除用户test,但不删除用户家目录和mail [root@localhost ~]# userdel -r test 携带-r 底删除用户及残留信息
-
useradd命令详解:创建用户时同时指定选项
怎样在Linux系统中添加一个新的用户账户 1) 掌握useradd命令的功能:新增一个用户 2)了解useradd命令的常用选项: 3)-u:指定用户的UID 4)-g:指定用户所属的主组 -G:指定用户所属的附加组 5)-d:指定用户的家目录 6)-c:指定用户的备注信息 7)-s:指定用户所用的shell 8)-e:修改过期时间 9)-M:不创建家目录 10)-r:创建系统用户,uid处于系统用户范围,默认就没有家目录
-
usermod命令
同useradd参数基一致,只不过useradd是添加,usermod是修改 usermod -u 2020 demo # 将demo用户uid改为2020 -u 指定要修改用户的UID -g 指定要修改用户的基本组 -a 将用户添加到补充组。仅与-G选项一起使用 -G 指定要修改用户附加组,使用逗号隔开多个附加组,覆盖原有的附加组 -d 指定要修改用户家目录 -c 指定要修改用户的注释信息 -s 指定要修改用户的bash shell -l 指定要修改用户的登录名 -L 指定要锁定的用户 -U 指定要解锁的用户
-
设置与修改密码
passwd 用户名 root用户可以给自己及其他用户设置密码,普通用户只能设定自己的密码 echo '密码' || passwd --stdin 用户名 非交互式
四、组管理
创建组 groupadd 组名
-g 设置组id
删除组 groupdel 组名
删除组的前提是这个组不属于任何用户的主组
设置组密码
gpasswd 组名
把用户添加到组里
gpasswd -a 用户 组名
把用户从组里删除
gpasswd -d 用户 组名
五、手动创建用户
下面文件的作用的作用 在上面有提到过
-
用户信息准备
-
/etc/passwd
[root@localhost ~]# vim /etc/passwd tom:(x忽略括号):1073:1074:tom:/home/tom:/bin/bash # 按G 移动到末行添加
-
/etc/shadow
tom::18554:0:99999:7:::
-
/etc/group
tom:x:1074
-
/etc/gshadow(group 的加密)
[root@localhost ~]# vim /etc/gshadow [root@localhost ~]# tail -1 /etc/gshadow tom:!::
-
-
准备家目录
Mkdir /home/tom/ # 创建用户文件夹 chown tom.tom /home/tom/ 设置用户访问权限为tom chmod 700 /home/tom/ 设置操作权限 cp -ra /etc/skel/.[!.]* /home/tom/ 拷贝家目录模板 chown tom.tom /home/tom/.[!.]* 家目录设置权限
-
准备邮箱
Touch /var/spool/mail/tom 创建tom用户邮件 chown tom.mail /var/spool/mail/tom 用户权限设置为tom chmod 660 /var/spool/mail/tom 操作权限设置
-
使用账号登录:
su tom 切换成功则为创建成功