用户与用户组
多用户多进程的操作系统
什么是用户
用户是系统中执行任务的一个身份
什么是用户组
是用户的一种特殊目的的集合
用户的分类:以uid进行分类
uid=0超级管理员用户root专属
uid=1~999或1~499系统用户不是操作电脑的用户,是软件或者系统自动调用某一个系统用户,系统自动管理
uid>=1000或者500 普通用户,系统使用者自行设定配置的一类用户,可以将普通用户自定义为系统用户
管理用户
用户的配置文件
/etc/passwd以及/etc/shadow(shadow文件专门管理密码)
vim /etc/passwd
root:x:0:0:root:/root:/bin/bash
用户名:密码占位:uid:gid:注释:家目录路径:shell
uid
用户的身份证号,以uid识别不同的编号,系统判断uid,来判断是哪个用户
gid 用户的属组id,主要属组
注释:内容不影响用户任何功能,
shell
外壳,信息的传递和翻译,人和计算机的翻译官,我的命令翻译成二进制给系统,系统翻译成字符给我
cat /etc/shells 用于查看当前系统支持的shell版本
常用shell: /bin/bash 大部分linux系统中的默认shell
/sbin/nologin 无法登录系统,能被系统自动调用
一般是系统用户,不允许登录的,不允许通过账号密码登录
shadow文件
用于存放用户的密码和密码修改等相关时间设定
sshd:!!:17551::::::
第一段:用户名
第二段:密文形式的密码
第三段:上次修改时间(与1970年1月1号相比,单位为天)
用户管理相关命令
1.用于创建用户
语法结构
useradd [选项] 用户名 在/etc/passwd中查看
uid默认使用上一个创建的用户使用的uid+1
useradd -u 数字 用户名 //手动指定uid
gid 默认创建一个与用户同名的组,并将该组作为用户的首选组让用户加入
useradd -g gid|组名 用户名 指定用户的默认属组 (组必须事先存在)
用户创建时将用户加入额外的组(从属组)
useradd -G gid|组名 用户名 (组事先必须存在)
PS:默认设定注释信息为无
useradd -c 字符串 用户名 //手动指定注释
家目录 默认设置用户的家目录为/home下与用户同名的子目录
useradd -d 目录路径 [-m] 用户名
shell默认指定用户的shell为/bin/bash
useradd -s shell路径 用户名
2.用于设定用户密码
passwd [用户名] 即可修改用户密码
1.直接使用命令,表示修改当前用户密码
2.只有root用户可以修改其他用户密码,而普通用户只能修改自己的密码
3.root用户修改密码是不需要原始密码,不需要满足密码的复杂度要求,
但是普通用户修改密码时,必须输入原始密码以及密码需要满足复杂度要求
3.修改用户信息的命令
usermod 选项 用户名
大部分选项等同于useradd命令
对于用户从属组的设定使用的命令是
替换用户从属组 usermod -G 组名|gid 用户
将用户加入新的从属组 usermod -G 组名|gid -a 用户
4.删除一个用户
userdel [选项] 用户名
选项
-r 删除用户的同时,删除用户的家目录和用户的邮箱文件
思考:如何删除一个用户及其全部文件
使用find命令查找并删除
find -user uid -exec rm -rf {} \;
5.组的分类(与用户的关系)
首选组主组
是用户的默认属组,是用户passwd文件中记录的gid对应的用户组,作用用户执行任务时一个组的身份代表
从属组副组
是用户除了首选组以外,还可以加入若干的用户组,这些额外加入的组,被称作用户的从属组
/etc/group
root:x:0:mail:x:12:postfix
组名:密码占位:gid:组内用户(该组为这个用户的从属组)
postfix是mail的从属组
6.组的管理命令
1.新增组
groupadd [选项] 组名
选项
-g 数字 表示指定组的gid
tail -n 1 /etc/group
2.修改组id
groupmod -g 数字 组名
3.删除组
groupdel 组名
请注意被删除的组内不能有任何用户,即该组不是任何一个用户的首选组或者从属组
7.用户使用相关的命令
1.su 用于切换用户
语法格式
su - 用户名
注意:切换使用的用户使用完毕后请使用exit命令退出该用户,不要连续切换用户
2.用于查看用户的信息(属性)
语法格式
id [选项] [用户名]
3.sudo 让普通用户在一定条件下以root用户身份执行命令
语法格式
sudo 命令
注意用户必须成为sudoer才能使用sudo命令
成为sudoer的方法:让用户加入/etc/whell组
这种成为了sudoer的普通用户也成为管理员用户
在/etc/sudoers文件中已经做好了设定,让加入wheel组的用户成为管理员
su passwd root修改root密码