centos 7 selinux开启关闭

本文详细介绍了如何查看SELinux状态及在Linux系统中临时和永久禁用SELinux的方法。通过修改配置文件,可将SELinux状态设为disabled,实现永久关闭。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 查看selinux状态

[root@localhost ~]# sestatus
SELinux status: disabled

2 关闭

零时关闭

[root@localhost ~]# setenforce 0
setenforce: SELinux is disabled

永久关闭修改文件/etc/selinux/config 设置

SELINUX=disabled 即可,重启后就行了
[root@localhost ~]# cat /etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

 

转载于:https://www.cnblogs.com/fisherman-luo/p/10131636.html

### Java 嵌套切面导致的空指针异常解决方案 当遇到Java嵌套切面引起的`NullPointerException`时,问题可能源于多个方面。为了有效解决问题并提供稳定可靠的方案,可以从以下几个角度考虑: #### 1. 确认代理模式的选择 Spring AOP框架支持两种类型的代理:JDK动态代理和CGLIB代理。对于接口类,默认采用的是JDK动态代理;而对于没有接口的具体类,则会使用CGLIB来创建子类作为代理对象。如果目标方法被标记为final或private,在某些情况下可能会造成AOP无法正常工作,进而引发意想不到的行为,比如空指针异常。 为了避免此类情况发生,可以尝试通过配置强制指定一种特定的代理方式[^1]: ```xml <aop:aspectj-autoproxy proxy-target-class="true"/> ``` 这行配置使得即使存在接口的情况下也会优先选用CGLIB代理机制,从而减少因代理选择不当而产生的潜在风险。 #### 2. 配置事务传播行为 有时,嵌套调用中的事务管理也可能成为触发NPE的原因之一。特别是在声明式事务控制下,不同层次之间的交互如果没有妥善设置好相应的传播特性(Propagation),就容易出现问题。确保所有涉及数据库操作的方法都明确定义了合适的事务边界以及它们之间应该如何协作是非常重要的。 例如,可以通过如下方式进行调整: ```java @Transactional(propagation = Propagation.REQUIRED) public void outerMethod() { innerService.innerMethod(); } @Service class InnerServiceImpl implements InnerService { @Transactional(propagation = Propagation.SUPPORTS) public void innerMethod(){ // business logic here... } } ``` 这里设置了外部服务方法遵循默认的REQUIRED策略,即如果有现有事务则加入其中;否则开启新的事务。而内部的服务层方法选择了更宽松的支持已有事务的存在与否(SUPPORTS),这样可以在一定程度上防止不必要的资源锁定争用所造成的异常状况。 #### 3. 检查切入点表达式的准确性 不恰当定义的切入点(Pointcut)可能导致意外的结果,特别是当涉及到多级嵌套结构的时候。错误地匹配到不该拦截的目标函数不仅会影响性能表现,还极有可能破坏正常的程序流程,最终抛出诸如空指针之类的运行期错误。 因此建议仔细审查现有的AspectJ风格的Pointcuts语句,确保其能够精准命中预期的对象集合,并且不会误伤无辜。同时也要注意避免过度泛化的通配符(*)滥用带来的副作用。 #### 4. 使用环绕通知替代前置/后置组合 在实际开发过程中发现,有时候单纯依靠@Before/@AfterReturning这样的简单形式难以满足复杂的业务需求,尤其是在面对深层次嵌套的情形之下更是如此。此时不妨转换思路,转而利用@Around环绕型的通知机制来进行更加灵活的操作处理。 下面给出一段基于此理念改造后的代码片段供参考: ```java @Aspect @Component @Slf4j public class LoggingAspect { @Around("@within(org.springframework.transaction.annotation.Transactional)") public Object logTransaction(ProceedingJoinPoint joinPoint) throws Throwable { try{ long startTime = System.currentTimeMillis(); Object result = joinPoint.proceed(); long endTime = System.currentTimeMillis(); String methodName = joinPoint.getSignature().getName(); log.info("{} executed successfully in {} ms", methodName, (endTime-startTime)); return result; }catch(Throwable t){ throw new RuntimeException(t); } } } ``` 上述例子展示了如何围绕带有`@Transactional`注解的方法实施日志记录功能的同时保持良好的可读性和扩展性。当然具体实现还需根据项目实际情况作出相应修改优化。 #### 5. 调试工具辅助排查 最后但同样重要的一点是要善于借助各种调试手段帮助定位根本原因所在。无论是IDE自带的功能还是第三方插件都可以发挥重要作用。例如Eclipse IDE提供了强大的断点跟踪能力,允许开发者逐步执行代码直至发现问题节点;另一方面像Arthas这类开源诊断平台也具备丰富的特性和应用场景,能够在不停机的前提下实时监控线上环境下的各类指标变化趋势,这对于快速响应突发故障具有不可忽视的价值。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值