Linux基础:管理用户和组+控制对文件的访问+监控和管理Linux进程(20210713笔记)

本文概述了Linux系统中的用户和组管理,包括修改密码策略、切换用户权限(su/sudo)、组的概念与操作,以及如何控制文件访问权限、理解Linux文件系统权限和进程管理。涉及了Linux下的进程状态、进程组、作业与会话,以及常用命令的实战应用。
摘要由CSDN通过智能技术生成

用户和组

修改用户密码策略

chage -M 90 -W 7  <用户>  #使用 chage 命令修改密码策略

将刚新建的用户密码策略修改为:每90天改一次密码,警告期为7天

chage -d  数字 <用户>  #指定密码最后修改日期(0则每次登录都要修改)

在这里插入图片描述

普通用户加入root用户组也不会具备root权限,但权限会增加(继承root用户组里的权限)

id <用户名>  #显示用户uid、gid、group

/etc/login.defs文件

修改PASS_MAX_DAYS,更改自当前日期起多少天过期(密码默认最长期限)
PASS_MIN_DAYS 设置密码默认最短期限
PASS_WARN_AGE 设置密码的默认警告周期

/etc/sudoers.d/组名

创建该文件并添加”%组名 ALL=(ALL) ALL"为该组所有成员配置管理权限

vim /etc/sudoers.d/组名

或 echo ”%组名 ALL=(ALL) ALL" >> /etc/sudoers.d/组名
第一个 ALL 指示允许从任何终端、机器访问 sudo
第二个 (ALL) 指示 sudo 命令被允许以任何用户身份执行
第三个 ALL 表示所有命令都可以作为 root 执行
在这里插入图片描述

获取超级用户权限

普通用户一般只能对自己目录下的文件,以及可移动硬盘进行管理。

固定硬盘及其他高 级管理需要root用户权限。

root具有高于文件系统的至高权限。

权限会带来安全的隐患,在 Linux 上一般会通过临时获得超级用户特权,来降低 root 用 户泄露的风险。

使用su切换用户

su  <用户名> #切换用户,不切换环境变量(保留当前用户PATH)。 

su -  <用户名> #切换用户,同时切换环境变量。 

echo $HOME

echo $PATH  #查看路径?

su -c <用户> #以另一个用户身份运行任意程序

exit #退出用户。

使用 su 命令不仅可以用于切换到 root 用户,还可以用于切换到其他用户。

使用 su 命令切换到 root 用户需要输入 root 用户的密码。

使用sudo获取超级用户权限

允许系统管理员让普通用户执行一些或者全部的root命令的一个工具。

这样不仅减少了 root 用户的登陆和管理时间,同样也提高了安全性。

临时获取root权限,输入本用户密码(有时间限制)

sudo <命令>  #在要运行的命令前加上 sudo 即可(默认日志记录到/var/log/secure)

sudo su

① 需借用权限的用户或组,在开头的位置加上%代表组

② 借用哪个主机上哪个用户的权限

③ 借用的命令

组的概念

组是需要共享文件和其他系统资源访问权限的用户的集合,可以对一组用 户授予文件访问权限,实现统一的管理。

在 Linux 中,创建用户的时候会自动以用户名字创建一个同名组。如果后面用户改名了,组的名称不会改。

组也有密码,一般用于提高用户的添加组时候的安全性。

组的类型

主要组:定义在 /etc/passwd 中用户的组

补充组:定义在 /etc/group 中用户的组

使用 id 命令可以用户的主要组和补充组

/etc/group

在这里插入图片描述

用户组的名称

用户组的密码,已经转移到 /etc/gshadow 中,基本很少使用

组 ID(GID)

组成员

/etc/gshadow

在这里插入图片描述

组名:组密码:组管理员:组成员

默认情况,组不设置密码

gpasswd <组名> #设置组密码

管理用户组

新建用户组

groupadd <组名>

创建组时,系统会使用 /etc/login.defs 中指定范围的 GID,一般是1000以后。系 统保留了一定范围的 GID,可以通过 -r 选项来使用这些 GID。该范围由 /etc/login.defs 中的 SYS_GID_MIN 和的 SYS_GID_MAX 来定义。

删除用户组

groupdel <组名>

设置组成员

gpasswd -a <用户> <>  #将用户添加到组

gpasswd -d  <用户> <>  #将用户从组移除 

不同用户间使用逗号分隔。使用 -M 选项添加用户将覆盖组内原有用户。

usermod -G  <1>, <2>,  ...<用户>#将某用户添加到多个组

如果该用户还有其他补充组,将从其他补充组 移除。

设置组管理员

gpasswd -A <用户> <>

设置组管理员,以委派权限的形式让组管理完成对组的管理

修改用户组属性

gpasswd <>  修改组的密码

groupmod [选项] <> 

groupmod -n group01 group1 #使用 -n 选项修改组名称  修改用户组 group1 的名称为 group01

group01 作为 -n 选项的属性先写,group1 作为命令执行的参数写在最后。

groupmod -g 2000 group01 #使用 -g 选项修改 GID  修改用户组 group01 的 GID 为 2000 

控制对文件的访问

解释Liunx文件系统权限

Liunx文件系统基本权限

在这里插入图片描述

数字加权:三个角色各自三项加起来之和

文件可能会继承目录的权限(一般默认不会继承,但可以通过一些配置实现)

r:ls(ll)

w:touch rm mv

x:cd

从命令行管理文件系统权限

修改文件/目录权限

chmod whowhatwhich   <文件/目录>

who:u(用户)、g(组)、o(其他人)、a(全部)

what:+、-、=

which: r、w、x(X)

chomd u+x 1.txt #不考虑原来的权限,直接添加或减少某个权限

chmod u=rwx 1.txt #直接指定某个对象的权限

chmod 777 1.txt #可以使用数字加权法直接指定权限,同时设定三个角色的权限

chmod –R a=rwx test #使用 -R 选项实现递归设置。将 test 目录及子目录子文件的权限都设置为 rwx

在递归设置权限时,如果涉及执行权限,可以使用大写的 X,只递归设置 rw 权限,而不影响原有文件的执行权限(如果原有/无x权限,设置X后权限不变)。因为如果子文件带执行权限就会变成脚本,可能会被执行(漏洞文件、病毒文件)。

修改文件所有者和所属组

chown <用户> <文件/目录>  #修改文件所有者

chgrp <> <文件/目录>  #修改所属组

chown <用户>:<> <文件/目录>  #同时修改文件的所有者和所属组

只有root用户可以修改文件的所有者;而所有者可以修改文件的所属组

chown -R  ... #递归设置所有者所属组

特殊权限

suid(u+s)(4),sgid(g+s)(2),t(o+t)(1)

在这里插入图片描述

特殊权限会显示在执行权限处。如有执行权限将写作小写的s/t;反之,写作大写的S/T(原本没有执行权限)。

rws rwt rwS rwT ——u/g+s o+t

换成数字一共四位:第一位看s/S和t/T的和,其他三位同普通的一样(S、T无x权限不计数)

默认权限

目录是 0777,文档是 0666(所有文件都没有执行权限)

新建文件644,新建目录755

umask的使用:在默认权限的基础上减去 umask 就是新建目录/文件的权限,而不是父目录权限减 umask。在 /etc/bashrc 中定义的 umask 默认是 0002。

只有用户 UID 为200以上,并且用户名和主要组名相同,umask 才是 002。如果不满足这些条件, 那么 umask 将变成 022。

umask 通常还会设置为:

0:其他人将具有对目录和文件的执行权限

027:其他人将没有任何权限,可以确保只有所有者和所属组具有权限。

umask有要求,需要新建的文件/目录具备某些权限

修改umask

到两个配置文件里改

在这里插入图片描述

新建脚本文件
在这里插入图片描述

监控和管理Liunx进程

进程是什么

程序和进程

程序:程序员写好的代码,运行就会发挥某个作用。不会因系统运行而 发生修改。

进程:已启动的可执行程序运行中的实例,就是程序运行起来的 部分,一个程序可能包含多个功能,就会运行多个进程。(系统进程、应用进程)

进程的组成

已分配内存地址空间;

安全属性(所有权凭据和特权);

程序代码 (一个或多个执行线程);

进程状态

进程环境

本地和全局变量;

当前调度上下文;

分配的系统资源(如文件描述符合、网络端口)

父进程和子进程

运行一个新进程时,通过共享上一级进程的地址空间、资源、属性等内容来创建的(fork)

上一级进程称为父进程,当前进程称为子进程。

PID是子进程标识符(每个进程都有唯一的进程ID),父进程是PPID。

父进程在子进程运行期间处于睡眠状态,子进程退出时发出信号令父进程收到而唤醒,清理子条目的进程表

在这里插入图片描述

描述进程状态

多任务处理操作系统中,每个CPU在一个时间点上处理一个进程

进程运行时,它对CPU时间和资源分配的直接要求会有变化

进程分配有一个状态,它随着环境要求而改变
在这里插入图片描述

运行:R

睡眠:S、D、K、I

停止:T

僵停:Z、X

列出进程

查看进程

ps [aux] [lax] [-ef]  #静态显示系统进程

列出信息包括:唯一进程识别符(PID)、CPU 和已经花费的的实时时间、内存、进程 的优先级、进程命令,进程用户,进程状态等等。

top指令 进程动态显示页面

top

方括号中的进程(通常位于顶部)为调度的内核进程

ps

pstree

ps 仅显示一次,如需重复更新进程显示,使用 top 命令(动态查看)

pstree 可以采用树形格式显示,来查看父/子进程关系

控制作业

进程组 process group:协同工作的一个或多个进程就是一个进程组,通常与作业关联。 通过进程组,可以对多个进程进行统一的管理。所有进程都属于某个进程组,每个进程组都有一个组长进程,相应的 PID 就是进程组的进程组 ID。

作业 jobs:在命令行上执行一个命令的时候,就会变成一个作业。一个作业可能是一个进程,也可能是多个进程。作业和进程组相似,主要区别在于作业中某个进程创建的子 进程(fork)不属于作业,属于进程组。

会话 session:会话是一个或多个进程组的集合。一个会话可以有一个控制终端。建立与控制终端连接的会话首进 程被称为控制进程(一般 bash 就是控制进程)。

显示和作业相关的信息:ps -j命令

PID:进程ID;

PPID:父进程ID;

PGID:进程组首进程PID;

SID:会话首进程的PID,一般是shell本身。

PGID和SID通常都是一样的。

教材总结

在这里插入图片描述

练习题

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值