1.和用户相关的文件
cat /etc/passwd 记录系统用户信息文件
第一列: 用户名
第二列: 用户密码信息
第三列: 用户的uid信息
第四列: 用户的gid信息
第五列: 用户的注释信息
mysql(manager database user)
www (manager web server)
第六列: 用户家目录信息
第七列: 用户登录系统方式
/bin/bash --- 通用的解释器
/usr/bin/sh --- 等价于/bin/bash
/usr/bin/bash
/sbin/nologin --- 无法登录系统
/usr/sbin/nologin
/etc/shadow* --- 系统用户密码文件
/etc/group* --- 组用户记录文件
/etc/gshadow* --- 组用户密码信息
2.系统用户相关命令
a.i 创建用户
useradd xxx
a.ii 创建虚拟用户
useradd -M -s /sbin/nologin
-M 不创建家目录
-s 指定使用的shell方式
-u 指定用户uid数值信息 useradd xxx -u 1001
-g 指定用户所属的主要组信息 useradd xx -g root
-G 指定用户所属的附属组信息
-c 添加指定用户注释说明信息
3.修改用户信息
usermod
-s 修改用户的登录方式
-g 修改用户的主要的组信息
-G 修改用户的附属组信息
c 修改用户的注释信息
修改用户shell信息
usermod hhh -s /sbin/nologin
删除用户信息
userdel xxx
userdel -r xxx 彻底删除用户以及其家目录
用户密码设置
passwd xxx - 交互式密码
echo 12345 | passwd -- stdin
企业中设置密码和管理密码的方式
01. 密码要复杂12位以上字母数字及特殊符号
02. 保存好密码信息
03. 大企业用户和密码统一管理(相当于活动目录AD)
openldap域
用户信息统一保存在一个用户管理服务器中 用户的家目录中的文件 用户密码 用户名称
04. 动态密码:动态口令,第三方提供自己开发也很简单。
4.用户组相关命令(group命令用的不多)
groupadd xxx 创建用户组=useradd xxx -g xxx
# groupmod 修改用户组信息
# groupdel 删除用户组信息
5.用户属主属组设置命令
chown 修改属主和属组信息
chown -R 递归修改目录属主和属组信息
6. 用户信息查看命令
id root 显示用户信息命令 (uid gid)
w root 显示正在登陆系统的用户信息
01. 什么用户登录到了系统中
02. 登录的方式
pts/x 远程登录系统
tty1 本地登录
echo "请不要修改恢复hosts文件配置" >/dev/pts/1 - 可以发送到其他主机桌面
03. 从哪连接的服务器
04. 登录时间
05. IDLE 空闲时间
06. 用户操作系统 消耗的CPU资源时间
07. 用户在干什么
7.sudo
普通用户提权方法:
1.登陆root用户 su - root
2.root用户给指定文件权限 chomd o+rwx
3.sudo
a 怎么进行授权:
visudo == vi /etc/sudoers
93 oldboy ALL=(ALL) /usr/sbin/useradd, /usr/bin/rm
visudo -c --- 配置好的文件语法检查
/etc/sudoers: parsed OK
b 如何验证oldboy已经获取了root用户能力
sudo -l
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
[sudo] password for oldboy:
User oldboy may run the following commands on oldboyedu:
(ALL) /usr/sbin/useradd, /usr/bin/rm
c 执行root用户可以执行的命令
[oldboy@oldboyedu ~]$ sudo useradd hhh
[oldboy@oldboyedu ~]$ sudo rm -f /etc/hosts
rm -f 之间一定要备份!
cp /etc/hosts /etc/hosts.bak
cp /etc/hosts{,.bak}
扩展配置方法:
1) 授权单个命令或多个命令 /usr/sbin/useradd, /usr/bin/rm, ,
2) 授权单个命令目录或多个命令目录 (需要排除部分特权命令) /usr/sbin/*, !/usr/sbin/visudo , /usr/bin/*
3) 不需要输入用户密码,可以直接sudo方式执行命令 NOPASSWD: /usr/sbin/*, !/usr/sbin/visudo , /usr/bin/*
8.su 与 su -的区别
su 只修改部分坏境变量
su - 修改全部环境变量 (一般用su -)
env命令查看环境变量路径
9.设置特殊权限位
setuid: 4
权限设置方法:
chmod u+s 文件信息
chmod 4755 文件信息
在属主权限位多出s信息
总结: setuid权限位设置,将文件属主拥有的能力,分配给所有人
setgid: 2
chmod g+s /bin/cat
chmod 2755 /bin/cat
总结: setgid权限位设置,将文件属组拥有的能力,分配给所有用户组
sticky bit:粘滞位: (创建一个共享目录) 1
作用:
可以将不同用户信息放置到共享目录中,实现不同用户数据可以互相查看,但是不可以互相随意修改
设置方法:
chmod o+t 目录信息
chmod 1777 目录信息
系统中已经准备好了一个共享目录,权限位1777
[root@oldboyedu ~]# ll -d /tmp/
drwxrwxrwt. 10 root root 4096 Apr 25 09:35 /tmp/
10.总结用户权限设置方法
01. 直接切换用户 su - (*)
优势: 简单快捷
劣势: 风险太高(root权限泛滥)
02. 修改数据文件权限 9位权限位 属主信息
优势: 只针对某个数据文件进行修改 只针对某个用户进行授权
劣势: 需要了解权限位功能
03. 采用sudo提权方式
优势: 可以利用文件编辑指定用户有哪些指定权限 sa运维部门 dev开发人员
劣势: 配置规划复杂
04. 修改数据文件权限 3位权限位
优势: 设置权限简单方便
劣势: 设置好的权限所有用户都拥有
11.重要文件上锁
如何防范系统中的重要文件不被修改(root用户也不能修改)
给文件加上锁头
目的: 使root用户也不能直接修改相应文件
设置方法:chattr +i /etc/passwd
解锁:chattr -i /etc/passwd
查看上没上锁 lsattr /etc/passwd