用户
多用户多任务:多个用户在同一个系统中同一时间执行的不同的任务,他们互不影响
权限管理机制:每一个用户拥有自己的权限
系统默认自带的超级管理用户:root
企业中,一般使用普通用户来对系统进行管理
用户的分类
以CentOS 7为例
超级管理员用户
享有最高权限,具备系统中的所有权限(一般为root),UID为0
root的用户信息:uid=0(root) gid=0(root) 组=0(root)
系统用户
别称“伪用户”,无法登录系统,一般系统默认持有如bin,nobody等,其主要作用是支撑系统运行,方便系统管理,系统用户没有家目录和/var/mail/下的邮件目录,UID为1-999
普通用户
有权限限制,只能对自己目录下的文件进行操作,可以登录系统,UID>=1000
用户和用户组的关系
一个用户至少包含一个组,一个组里可以有多个用户,同一个用户可以同时属于多个组
添加用户
useradd [参数] 用户名
[参数]:
创建一个不能登录的用户:useradd -s /sbin/nologin 用户名
指定家目录创建用户:useradd -d 指定的家目录 用户名
指定唯一的UID创建用户:useradd -u uid 用户名
指定已存在的GID创建用户:useradd -g gid/组名 用户名
创建用户时同时为其添加附加组:useradd -G gid/组名 用户名
创建系统用户:useradd -r 用户名
指定用户的登录shell为/sbin/nologin:useradd -s /sbin/nologin 用户名
指定用户的描述字段:useradd -c 描述字段 用户名
创建该用户时不为其创建家目录:useradd -M 用户名
查看用户
id:直接使用id命令,默认查看当前用户的信息 UID GID Groups
id 用户名:查看指定用户的信息 UID GID Groups
重点:可以使用id命令判断一个用户是否存在
whoami:也可查看当前正在使用的用户
查看系统中所有用户的信息:cat /etc/passwd
依次为:用户名:密码占位符:用户标识UID:组标识GID:描述:用户家目录:登录shell
判断一个用户是否可以登录,看 登录shell
如果登录shell为
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash 则该用户可以登录到系统
如果登录shell为
/bin/nologin
/sbin/nologin 则该用户不能登录到系统
查看可用的登录shell:cat /etc/shells
若某用户为服务器上的某个服务提供支持,那么出于安全起见该用户不被允许登录
useradd -s /sbin/nologin -r 用户名
修改用户
usermod [参数] 用户名
[参数]
修改某用户登录shell,使其不可登录:usermod -s /sbin/nologin 用户名
修改用户的UID:usermod -u uid 用户名
修改用户名:usermod -l 新名字 旧名字
用户正在被使用导致无法修改其属性的报错
usermod: user user01 is currently used by process 6684
解决方案:利用pkill 指定用户将该用户对应的进程杀死:pkill -9 -u 用户名
修改用户所属的主组:usermod -g gid/组名 用户名
修改用户的附加组(覆盖修改):usermod -G gid/组名 用户名
修改用户的附加组(在原有基础上添加):usermod -aG gid/组名 用户名
锁定用户密码,使其密码无效:usermod -L 用户名
解除用户密码锁定:usermod -U 用户名
修改用户描述字段:usermod -c 描述字段 用户名
修改并移动用户家目录:usermod -md 修改后的家目录路径 用户名
-m是修改,-d是移动,通常情况下二者连用
删除用户
userdel [参数] 用户
删除该用户所有的内容,包括用户的家目录,用户本身,用户邮件文件:userdel -r 用户名
关于用户密码
修改用户密码:passwd 用户名
直接使用passwd命令不加用户名,修改当前用户密码
/etc/shadow中存放是用户的密码信息(第二列为已被加密的密码)
非交互式修改密码(脚本):echo "密码" | passwd --stdin 用户名
切换用户:su - 用户名
组
添加组
groupadd [参数] 组名
创建组并指定组的gid:groupadd -g gid 组名
查看组
查看系统中所有组的信息:cat /etc/groups
依次为:组名:密码占位符:GID:用户,成员
查看用户的组:groups 用户名
修改组
修改组名:groupmod -n 新组名 旧组名
修改组的gid:groupmod -g 新的gid 组名
添加用户到组:gpasswd -a 用户名 组名
添加多个用户到同一个组:gpasswd -M 用户①,用户② 组名
从组中删除用户:gpasswd -d 用户名 组名
指定组的管理员:gpasswd -A 用户名 组名
组密码文件:/etc/gshadow
依次为:组名:密码:组管理员:组员
删除组
groupdel 组名
如果该组是某个用户的主组,也就是说这个组是在创建用户的时候创建的,那么不能用groupdel删除,用 userdel -r ,删除用户,组自然就被删除
实例:给普通用户提权
方法一
①使用 visudo 命令 或 vim /etc/sudoers,编辑配置文件
②用 :100 将光标定位到100行,按i键进入编辑模式,在下面的空行处添加 用户名 ALL=(ALL) ALL ,wq!保存退出
方法二
将普通用户添加至 wheel组
wheel组:系统自带的组,该组的成员具有管理员权限,gid为10
给用户添加wheel组:usermod -aG wheel/10 用户名
给wheel组添加用户:gpasswd -a 用户名 wheel
在创建用户时添加wheel组为附加组:useradd -G wheel/10 用户名
提权成功后,普通用户执行命令时在命令的前面加sudo
帮助手册
help
指令 --help
[ ] 表示可选项,即需要则用,不需要不用
{ } 表示必选项,即里面的选项为必用
| 表示或者,比如:a|b的意思是a或者b只能选其中一个
特殊情况:
{a | b} 意思是a或b必选一个
[a | b] 意思是要么一个不选,要么选a或b其中一个
<> 这个符号有些特殊,有些命令中是必选,但是有些命令中是可选
... 表示多个,此符号前面是什么就是多个什么,比如:file...那就表示多个文件
man手册
man 指令
man手册比help更加详细
八类man手册:
1.一般命令
2.系统调用库
3.c标准库
4.设备文件
5.配置文件
6.游戏相关
7.杂项 //所谓杂项,其大部分都是没办法很好分给其他8类的帮助
8.系统管理相关命令
9.内核(rhel5) //从rhel6开始,因为内核类的命令较少,将其废弃
其中,一类,八类可以获取命令的使用方法 ,五类可以获取配置文件的使用方法或相关信息
可以通过上方两侧知道该命令在第几类man手册中
进入man手册后常用快捷键:
空格键翻页
enter键翻行
g:定位到手册顶部
G:定位到手册底部
q:退出
/关键字:高亮所有关键字
关键字之间切换:
n 按关键字往下翻
N 按关键字往上翻
free:查看系统中内存的使用情况
df:查看系统磁盘使用情况