用户管理主要目录介绍
- /etc/passwd 系统用户记录文件
[root@zin ~]# cat /etc/passwd
root : x : 0 : 0 : root : /root :/bin/bash
以分号分隔
第一列代表用户名
第二列代表用户密码信息
第三列代表用户的uid
第四列代表用户的gid
第五列代表用户的注释信息
第六列代表用户的家目录位置
第七列代表用户登录方式
登陆方式分为1 默认为bash 一个用户通过密码登录一个bash解释器/bin/bash
2 nologin 无法登录用户 /sbin/nologin 虚拟用户专用
- /etc/shadow 用户密码信息记录文件
重要目录 尽量不要让除root用户以外人查看
密文可以破解
[root@zin ~]# cat /etc/shadow
ntp: !! :18092::::::
root:$6$Siclk4SkT9mgxFUN$3dy9/vIsQ2Me5nWaBJ0KkEF3ICroJ6NN0NUYSFVAQ3rK.5oG79AfaO9ffNIloIbo99Q6jmuF72W7gB07n2ApE.::0:99999:7:::
以分号分割
第一列代表用户名称
第二列代表用户密码(!!)代表没有密码 密码以密文形式显示
以下无所谓
- /etc/group 用户组记录文件
- /etc/gshadow 用户组密码记录文件
- 系统用户重要目录
/etc/skel 新建用户的样板家目录
新建一个用户时 会将/etc/skel目录下所有内容复制到新建用户的家目录
- 扩展题 当用户命令提示变形为
-bash-4.2$是为什么 怎么解决
思路:
第一种 查看家目录是否存在 用户uid是否和家目录不符 如果不符合用chown进行修改成为一致或用usermod修改用户名
第二种 查看家目录有没有文件 如果没有在/etc/skel复制所有到家目录即可解决
第三种 利用环境变量PS1修改回原来内容
用户提权操作
- 让用户获得更多权限方法
- 第一种 直接修改文件/目录的权限
chmod命令 修改文件/目录权限
语法:chmod 参数 值 文件/目录
参数:
-R递归赋予权限
值: 赋予权限是可以+赋予权限-减少权限=文件等于xx权限
u单独修改属主权限
g单独修改属组权限
o单独修改其他用户权限
a全部权限一起赋予同样权限
chmod 权限数值 文件直接写权限数值 将所有权限位赋值
特殊值:
u+s 命令绝对路径可以让一个普通用户获得一个命令文件的属主权限
g+s命令绝对权力可以让一个普通用户获得一个命令文件属主的权限u+t 共享目录``` 为一个共享目录赋予下面文件只能属主进行修改其他用户只能查看的权限 - 第二种方法利用chmod命令进行特殊操作]
文件/目录拥有9个普通权限位+3个特殊权限位
setuid(代表值4或s) 可以当普通用户获得一个命令文件的属主权力
setgid(代表值2或s) 可以让普通用户获得一个命令文件属组的权力
sticky bit(代表值1或t) 粘滞位只能对目录进行设置 可以让一个共享目录下的文件只能属主进行修改/删除操作,其他用户只能查看
chmod u+s /bin/vi (所有普通用户都可以像属主一样使用vi)
chmod g+s /bin/vi (所有普通用户都可以像属组一样的权力用vi)
chmod u+t /共享目录
(只有分享到共享目录下文件的属主才可删除或修改 其他用户只能查看)
- 第三种 利用chown命令改变属主属组信息进行夺权
语法chown 参数 新属主.新属主 文件/目录
参数:-R递归替换属主/属组
[root@zin ~]# ll -ad oldboy
drwxrwxrwx 5 1000 1013 54 Jul 25 20:52 oldboy
[root@zin ~]# chown root. oldboy
[root@zin ~]# ll -ad oldboy
drwxrwxrwx 5 root root 54 Jul 25 20:52 oldboy
- 第四种 利用sudo 对指定用户进行提权
具体操作
第一步visudo命令 进入到sudo编辑状态
在第一百行之后加入要为那位用户提权 提取什么权力
[root@zin ~]# visudo
第一列代表用户
第二列代表权限集中管理服务器
第三列代表赋予一个命令的使用权限
配置时注意不能完全放开权力 /usr/bin/*或ALL
可以用取反将命令进行不给予权限 !/usr/bin/vi(不给vi使用权限)
100 root ALL=(ALL) ALL
101 oldboy ALL=(ALL) /usr/bin/vi
(为oldboy用户赋予 vi 命令使用权限)
为一个用户赋予多个权限的时候用逗号隔开
第二步赋予权限后普通用户使用时先输入sudo -l查看自己都被赋予了什么权力 输入用户密码就可以使用
第三步使用sudo赋予的命令需要sudo vi以这种格式书写使用
-
sudo命令 对一个用户进行单独提权
参数:
-l查看被赋予了什么权限
-k清楚sudo缓存
-c检查sudo语法是否出错sudo -c
visudo编辑sudo提权 编辑时自带语法检查
关于用户管理相关命令小结
-
useradd创建用户
语法:useradd 参数 用户名
参数:
-u设置用户的uid信息
-g设置用户的主要属组信息
-G设置用户的附属组信息
-M不为用户设置家目录
-s指定用户shell登录方式(bash或nologin不可登录)
-c修改注释信息
例 创建虚拟用户useradd -M -s /sbin/nologin 用户名 -
usermod修改用户信息
-u设置用户的uid信息
-g设置用户的主要属组信息
-G设置用户的附属组信息
-s指定用户shell登录方式(bash或nologin不可登录)
-c修改注释信息 -
userdel删除用户
语法:userdel 参数 用户
参数:-r彻底删除用户 不留痕迹 -
chmod赋予权限命令
语法:chmod 参数 值 文件/目录
参数:-R递归赋予权限
值:可以用+ - =赋予权限+增加目录/文件权限-减少权限=设置权限
u 为属主赋值
g 为属组赋值
o 为普通用户赋值
a 为所有用户赋值
权限数值 4 2 1
例chmod u+r /etc/oldboy或chmod 741 /etc/oldboy
特殊值:
u+s或4xxx让普通用户获得命令文件属主权限
g+s或2xxx让普通用户获得命令文件属组权限
u+t或1xxx只能对目录设置 让共享目录中的文件只能由属主进行修改删除操作 其他用户只能查看
例chmod u+s /usr/sbin/vi或chmod 4777 /usr/sbin/vi -
chown更改属主/属主信息
语法:chown 参数 新属组名.新属组名 文件
参数:-R递归设置属主属组
例chown root.oldboy /etc/hosts -
passwd设置密码
语法:passwd 密码 用户名
免交互设置密码echo 密码|passwd --stdin 用户名 -
id查看用户信息
语法:id 用户名显示用户uid gid 附属组信息 -
w查看目前登录系统用户信息
语法:w 参数 用户名 或w
[root@zin ~]# w
21:22:39 up 2 days, 7:18, 3 users, load average: 0.00, 0.01, 0.05
当前时间 开机运行时间 登录人数 5,10,15分钟负载情况
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 (服务器端直接登录) Mon09 36:14m 0.03s 0.03s -bash
root pts/0 10.0.0.1 17:55 3:26m 0.15s 0.10s tail -f /var/
root pts/1 10.0.0.1 14:20 7.00s 1.33s 0.00s w
用户名 登录模式 登录ip 登录时间 闲置时间 cpu使用情况 使用状态
可以利用pts号进行单独提示某一个用户
echo 提示语言 >/dev/pts/用户数值
-
chattr锁定/解锁文件
语法:chattr 参数 文件
参数:
-i解锁文件
+i锁定文件
lsattr查看文件状态 - 了解就行的命令
last显示用户曾登录历史记录
lastlog显示系统所有用户登录信息(比较全)
groupadd创建用户组
groupmod修改用户组信息














网友评论