Linux 运维基础:用户管理
Posted 漂亮姐姐1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 运维基础:用户管理相关的知识,希望对你有一定的参考价值。
用户类型
用户类型 | 名称 | uid | 特点 |
---|---|---|---|
管理员用户 | root | 0 | 权力至高无上 |
虚拟用户 | nobody(可自定义) | 1-999 | 用于管理进程 无家目录 不能登录系统 |
普通用户 | 自定义 | 1000+ | 权限有限 |
用户管理基本操作
创建用户
# 创建普通用户danni
useradd danni
# 创建用户,指定用户id,所属组,附属组,用户注释
useradd danni -u 2000 -g danni -G dannis -c "An IT girl"
# 创建虚拟用户 mysql
useradd mysql -M -s /sbin/nologin -c "database manager"
useradd参数说明:
参数 | 说明 |
---|---|
-M | 不创建家目录 |
-s | 设置用户登录方式 |
-c | 设置用户注释 |
-g | 设置用户所属组 |
-u | 设置用户id |
-G | 设置用户的附属组 |
查看用户信息
用户的信息保存在 /etc/passwd
目录下
# 查看用户信息
[root@smartgirl ~]# grep mysql /etc/passwd
mysql:x:1002:1002:database manager:/home/mysql:/sbin/nologin
1 2 3 4 5 6 7
------------------------------------------------------------------------
各字段含义:
1.用户名
2.用户密码,正真的密码保存在/etc/shadow中,此处仅占位
3.用户id
4.所属组id
5.用户注释
6.用户家目录 --- 虚拟用户的家目录实际并不存在
7.用户登录方式 /sbin/nologin ---- 不能登录
修改用户信息
usermod $用户名 $参数 $信息
# 修改用户登录方式 --- 当有员工离职,账号可以设置为不可登录(保留账号)
usermod danni -s /sbin/nologin
删除用户
userdel $用户名
— 不会删除用户的家目录
userdel -r $用户名
— 彻底删除用户,会删除用户家目录
补充:
groupadd $用户组名
— 创建用户组
groupdel $用户组名
— 删除用户组
设置用户密码
交互式设置
passwd $用户名
非交互式设置
echo 密码信息|passwd --stdin $用户名
查看所有用户登录信息
# 根据用户信息空闲时间,当前操作等,可以判断用户的使用系统情况
# 如判断用户是否占用CPU资源过多,是否长时间运行脚本
# 从而判断是否执行了死循环脚本,或者系统被植入病毒
[root@smartgirl ~]# w
05:47:31 up 10:19, 2 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/2 10.0.0.1 01:45 3.00s 0.24s 0.00s w
root pts/3 10.0.0.1 01:45 2:55m 0.03s 0.02s bash
1 2 3 4 5 6 7
----------------------------------------------------------------------
各字段含义:
1. 登录用户用户名
2. pts/x 远程登录系统
tty1 本地登录
echo '请勿继续操作!' >> /dev/pts/2 --- 将在用户终端输出该信息,可用于提醒用户
3. 从哪连接的服务器
4. 登录时间
5. 空闲时间 --- 无操作
6. 用户操作系统 消耗的CPU资源
7. 用户当前操作 ich(执行脚本) bash命令行输入
文件/目录权限
文件/目录权限的设置是用户管理中非常重要的内容,因为Linux中一切皆文件,掌握了文件的控制权,就掌握了系统的控制权,文件权限的管理对服务器的安全至关重要。
文件权限说明
- r 可读
- w 可执行
- x 执行这个文件(脚本文件)
权限配置结论:
- root用户对任何文件都默认有读写权限,即使没有执行权限也可以用sh命令执行文件
- 对于文件来说,写权限和执行权限都需要有读权限支持
- 普通如果想对文件进行操作,必须对文件赋予读的权限
目录权限说明
- r 可读目录中文件的属性
- w 可在目录中添加或删除文件数据信息
- x 可进入到目录中
目录权限配置结论:
- root用户对目录有绝对权限
- 对于目录来说,写权限和读权限都需要有执行权限的配合
- 如果想对目录进行操作,必须对目录赋予执行操作
root用户文件默认权限:644
保证属主可编辑文件,其他用户可读文件
root用户目录默认权限:755
保证属主可编辑目录中文件,其他用户可读取目录信息,并进入到目录
ps:文件是否可以编辑查看,不仅与文件自身的权限有关,还与上一级或上n级目录的权限有关
设置用户文件权限
修改单类型用户权限
属主 — user — u
属组 — group — g
其他用户 — other — o
chmod u+r/w/x
— 添加权限
chmod u-r/w/x
— 减少权限
chmod u=rw
— 直接赋值
修改所有类型用户权限
数值设定:chmod 755 $文件名
符号设定:chmod a=x $文件名
修改文件属主/属组
# 修改属主
chown $属主 $文件
# 修改属组
chgrp $属组 $文件
# 修改属主和属组
chown $属主.$属组 $文件
chown $属主. $文件
# 修改目录的权限
chown -R $属主.$属组 $目录 --- 递归修改(注意参数是大写R)
默认用户文件/目录权限
系统中有一个umask,是文件/目录权限掩码,不同用户的umask值是不一样的,不同用户的umask的值可以是不一样的,umask决定了用户创建的文件/目录的默认权限。
这里只用root用户权限来作说明。
- 默认umask : 0022
- 默认文件权限: 666 - 022 = 644
- 默认目录权限:777 - 022 = 755
文件权限计算:
对于目录,只需要用 777 减去 umask的值即可
但是,对于文件,其情况就比较特殊
若 umask 某一位是奇数,则该位对应的计算结果要+1
若都是偶数,则不需要特殊处理,也就是说:
假如umask是033,那么文件权限是 666 - 033 => 633 + 011 => 644
修改umask
-
临时修改
umask $数字
-
永久修改
vi /etc/profile
文件特殊权限位
文件在系统中一共有12个权限位,除了属主,属组和其他用户rwx一共9个权限位外,还有另外三个,分别时:
- setuid:将用户属主所拥有的能力分配给所有人
chmod u+s $文件名
或chmod 4xxx $文件名
- setgid:将用户属组所拥有的能力分配给所有人
chmod g+s $文件名
或chmod 2xxx $文件名
- sticky bit(粘滞位):可以将不同用户信息放置到共享目录中,实现不同用户数据可以互相查看,但是不可以互相随意修改,可以用于创建一个共享目录
chmod o+t $目录
或chmod 1777 $目录
系统有一个默认的共享目录 /tmp
普通用户提权
- 修改文件/目录 rwx 权限位
- 修改
/etc/sudoers
文件内容,使用sudo命令执行被赋予的权限# 示例 # `visudo` 或 `vi /etc/sudoers` 可对文件进行编辑,推荐使用`visudo`,其有语法检查功能 92 root ALL=(ALL) ALL 93 danni ALL=(ALL) /usr/sbin/useradd ------------------------------------ [danni@smartgirl ~]sudo useradd danni01 # 获得添加用户的权限
- 设置
setuid
/setgid
,赋予普通用户属主/属组的权限
注意:
setuid 权限一般赋予二进制文件的命令文件或者一些可执行的脚本文件
setgid
特殊目录和文件
系统中一个特殊的目录 : /etc/skel/
该目录是用户家目录的样板目录,新创建用户的家目录会参考这个目录
目录中自带的文件有:
文件 | 功能 |
---|---|
.bash_logout | 保存系统退出登录状态时执行的命令 |
.bash_profile | 保存别名和环境变量(只针对某个用户) ,等同于.bashrc |
.bashrc | 保存别名和环境(只针对某个用户) |
/etc/skel
目录的应用:
- 目录中可以存储运维操作规范说明文件
- 调整命令提示符信息
用户家目录中文件被恶意删除,出现问题:命令提示符变为bash-4.2$
可将/etc/skel
目录中的文件复制到用户家目录下,提示符即恢复正常
用户家目录下的特殊文件
.bash_history
— 历史命令记录文件.viminfo
— 样式信息(可设置默认显示行号,文件头信息)
系统中和用户相关的文件
/etc/passwd
— 记录系统用户信息文件/etc/shadow
— 系统用户密码文件/etc/group
— 组用户记录文件/etc/gshadow
—组用户密码信息/etc/shells
— 所有可选登录方式
以上是关于Linux 运维基础:用户管理的主要内容,如果未能解决你的问题,请参考以下文章