精华内容
下载资源
问答
  • Linux:死锁避免之系统安全状态

    千次阅读 2018-04-23 21:22:06
    死锁避免方法之一:判断系统安全状态 避免死锁的方法中,允许进程动态地申请资源,但系统在进行资源分配之前,应先计算此次资源分配的安全性。若此次分配不会导致系统进入不安全状态,则将资源分配给进程; 否则...

    想要有顺序地学习Linux,入口在这里哦: Linux:目录索引

    详细的死锁问题,请点击链接:Linux:死锁的产生、防止、避免、检测和解除

    死锁避免方法之一:判断系统安全状态

    避免死锁的方法中,允许进程动态地申请资源,但系统在进行资源分配之前,应先计算此次资源分配的安全性。若此次分配不会导致系统进入不安全状态,则将资源分配给进程; 否则,让进程等待。

    安全状态

    所谓安全状态,是指系统能按某种进程推进顺序( P1, P2, …, Pn),为每个进程Pi分配其所需资源,直至满足每个进程对资源的最大需求,使每个进程都可顺序地完成。此时称 P1, P2, …, Pn 为安全序列。如果系统无法找到一个安全序列,则称系统处于不安全状态。

    例题解释

    假设系统中有三个进程P1、P2和P3,共有12 台磁带机。进程P1总共需要10台磁带机,P2和P3 分别需要4台和9台。假设在T0时刻,进程P1、P2 和P3已分别获得5合、2台和2台,尚有3台未分配,见下表

    进程最大需求已分配可用
    P11053
    P242
    P392

    解答:
    ①首先,如果要满足各进程的最大进程,p1差5台,p2差2台,p3差7台,当前可用资源只有3台
    ②将所有进程推进顺序的情况一一列举:
    1.p1 p2 p3
    3 < 5,p1没法完成,不符合
    2.p1 p3 p2
    3 < 5,p1没法完成,不符合
    3.p2 p1 p3
    3 > 2,p2可以完成;
    p2完成后释放资源,可用资源为5台,5 = 5,p1可以完成;
    p1完成后释放资源,可用资源为10台,10 > 7,p3可以完成;
    所有进程都可以完成,符合
    4.p2 p3 p1
    3 > 2,p2可以完成;
    p2完成后释放资源,可用资源为5台,5 < 7,p3没法完成,不符合
    5.p3 p1 p2
    3 < 7,p3没法完成,不符合
    6.p3 p2 p1
    3 < 7,p3没法完成,不符合
    ③综上,存在一个安全序列p2 p1 p3,即只要系统按此进程序列分配资源,则每个进程都能顺利完成,此时系统便进入安全状态,否则进入不安全状态,

    系统安全状态与死锁的关系

    并非所有的不安全状态都是死锁状态,但当系统进入不安全状态后,便可能进入死锁状态;反之,只要系统处于安全状态,系统便可以避免进入死锁状态。

    展开全文
  • 什么是系统安全状态

    万次阅读 2017-02-24 15:28:50
    系统能按某种顺序如(P1,P2,...,Pn),来为每个进程分配所需要的资源,直至最大需求,使每个进程都可以顺序完成。若系统不存在这样一个安全序列,则称系统处于不安全状态

    指系统能按某种顺序如(P1,P2,...,Pn),来为每个进程分配所需要的资源,直至最大需求,使每个进程都可以顺序完成。若系统不存在这样一个安全序列,则称系统处于不安全状态。

    展开全文
  • 操作系统中不安全状态为何并非一定转为死锁?

    万次阅读 多人点赞 2020-01-31 12:26:41
    在学习避免死锁、银行家算法时,对于安全状态一定不会产生死锁,不安全状态也并非必然转为死锁,不止你是否会疑惑为何处于不安全状态下,不是必然会发生死锁?

    ​ 这个问题出自与避免死锁中的安全状态和非安全状态,在讨论之前,先来解释下安全状态和非安全状态。

    1.系统安全状态

    ​ 所谓安全状态,是指系统能够按某种进程推进顺序(P1,P2,…,Pn)为每个进程分配其所需资源,直至满足每个进程对资源的最大需求,使每个进程都可顺利的执行完成。其中进程的推进顺序(P1,P2,…,Pn)被称为安全序列。如果系统中能找到这样一个安全序列,则称系统处于安全状态。

    ​ 如果系统中无法找到一个安全序列,则称系统处于不安全状态

    ​ 我们通过一个例子来说明安全性。假定系统中有三个进程P1、P2和P3,共有12台磁带机。进程P1总共要求10台磁带机,P2和P3分别要求4台和9台。假设在T0时刻,进程P1、P2和P3已分别获得5台、2台和2台磁带机,尚有3台空闲未分配,如下表所示:

    资源分配图

    ​ 对于上题,我们可以知道T0时刻系统是安全的,因为这是存在一个安全序列(P2,P1,P3)。

    ​ 如果不按照安全序列分配资源,则系统可能会有安全状态进入不安全状态。例如在T0时刻后T1时刻,P3又请求一台磁带机,如果此时分配资源给进程P3,此时的资源分配如下表所示:

    资源分配图

    ​ 我们可以看到,在T1时刻,无法找到一个安全序列,因此在T1时刻系统处于不安全状态。

    2.不安全状态和死锁的关系

    ​ 由上述描述,我们可以得出一个结论,只要系统处于安全状态,系统便不会进入死锁状态;但是另一句话:当系统处于不安全状态时,并非所有不安全状态都必然转换为死锁,就有点懵了。

    安全状态与不安全状态图

    ​ 对于系统处于不安全状态,为什么不是一定会转为死锁状态?按照死锁的发生的四个必要条件:互斥条件、请求和保持条件、不可抢占条件、循环等待条件,只要其中的一个条件不满足就不会发生死锁,这也是预防死锁的理论依据。如果系统中已经设置了预防死锁的策略,那么死锁就不会产生,也就不需要避免死锁算法了,因此,设置了避免死锁策略(或者说是银行家算法)的OS,应当不会破坏四个必要条件中的任一个,这样所施加的限制条件较弱,以期望获得更好的系统性能。

    ​ 由上面的描述,我就在想,如果系统处于安全状态,因为临界资源的不可抢占性,高优先级进程也无法剥夺已经分配出去的进程,那么系统是怎么样才可以让如何推进都无法顺利执行完毕的“死局”得到“一线生机”呢?

    ​ 经过自己的思考(通过结论推过程----’囧‘),和翻看了网上的许多讨论后,觉得以下几点是比较靠谱的:

    ​ 可能一:进程在执行过程中,可能会提前终止。当进程处于不安全状态的时候,因为OS当前资源紧缺或者进程执行过程发生异常,导致某些进程没有继续申请资源而被终止(被kill或异常终止),这样被终止的进程就会释放资源,让OS避开这次死锁。

    ​ 可能二:进程在正常运行过程中,可能会提前释放部分资源。这一点,可能有些同学会疑惑,是不是破坏了请求和保持条件?其实并没有破坏了请求和保持条件,因为破坏请求和保持条件,需要OS必须保证做到:当一个进程在申请资源时,不得持有任何不可抢占资源,所以进程释放掉自己持有的部分资源是没有破坏请求和保持条件的。

    ​ 可能三:进程实际需要的最大资源小于声明的最大需求资源。在安全性检查算法中,使用的数据结构是需求矩阵Need和当前资源数Available,Need由最大需求矩阵Max减去已经分配的Allocation求得,Max是进程事先对自身所需资源的一个最坏情况下的预估(因为要满足运行,必定是>=实际需要的),但是在实际执行的情况中,可能进程实际上用不到这么多的资源,所以有可能就是这相差的资源数可以保证系统并非必然转换为死锁。

    ​ 可能四:进程申请的资源为可消耗性资源。这一点可能许多同学会懵,怎么还跑出了这么一个可消耗性资源的事,我们在资源分类的时候就讲过,资源分为可重用性资源和可消耗性资源,对于可消耗性资源,是可以在进程运行过程中产生的(比如消息),因此对于某些阻塞的进程,虽然当前资源不足,但有可能在有限的时间内可以申请到得以运行完成的资源(可消耗性资源,由别的进程执行过程中产生),因此可以释放掉自己持有的资源,让其他进程因此也可以执行完毕。

    ​ 以上四点是我个人总结的几点原因,个人感觉每种可能都对,查看外文文档,解释偏向于可能三,不过博主自己觉得一、二、四也是对的,毕竟答案不唯一,理论上可行就可以是答案。

    3.总结

    ​ 以上所有观点都是自己的个人观点,如果有哪位大佬有不同的看法或者还有可能五、六、七,都欢迎评论区留言讨论,还请不吝赐教。


    ​ 又到了分隔线以下,本文到此就结束了,本文内容全部都是由博主自己进行整理并结合自身的理解进行总结,如果有什么错误,还请批评指正。

    ​ 本文纯属探讨理论上的可能,另,原创不易,如果能解答你的疑惑,还请点赞支持。

    ​ 如有兴趣,还可以查看我的其他几篇博客,都是OS的干货,喜欢的话还请点赞、评论加关注^_^。

    操作系统武功修炼心法

    展开全文
  • 1)根据经验,选择安装包时应该按最小化原则,即不需要的或者不确定是否需要的就不安装,这样可以最大程度上确保系统安全。 2)如果安装过程落了部分包组或者其他伙伴安装时没选,再安装后可以按如下方式补上安装时...

    1、系统安装最小化

    1)根据经验,选择安装包时应该按最小化原则,即不需要的或者不确定是否需要的就不安装,这样可以最大程度上确保系统安全。

    2)如果安装过程落了部分包组或者其他伙伴安装时没选,再安装后可以按如下方式补上安装时未安装的包组:

    yum groupinstall "Compatibility libraries" "Base" "Development tools"

    yum groupinstall "debugging Tools" "Dial-up Networking Support"

    可以通过yum groupinfo 包组查看具体安装的组件。

    注意:不要使用yum的删除功能删除软件,会删除相关依赖,导致意外问题。

    3) 安装系统补装工具命令

    安装系统后还会有一些基本的工具没装,这时可以根据需求yum来安装下,啥时用啥时装也可。例如:

    yum install tree nmap sysstat lrzsz dos2unix -y

    如果需要更新补丁则执行

    yum update

    2、系统权限最小化

    linux/unix是一个多用户、多任务的操作系统。

    超级管理员(root): root默认在unix/linux操作系统中拥有最高的管理权限。比喻:皇帝。

    普通用户:管理员或者具备管理权限的用户创建的。权限:系统管理仅可以读、看,不能增、删、改。

    权限越大,责任越大。

    可使用如下命令添加一个普通用户账号,并为其设置口令:

    [root@oldboy ~]# useradd luffy

    [root@ oldboy ~]# passwd luffy ###问你新的密码,然后你输入 交互设置密码

    Changing password for user luffy.

    New password:

    BAD PASSWORD: it is too simplistic/systematic #ç提示密码太简单了,但可以不理会。

    BAD PASSWORD: is too simple

    Retype new password:

    passwd: all authentication tokens updated successfully.

    提示:

    非交互式设置密码:还可通过下面的命令一步到位地设置密码(其中,luffy为用户名,密码为123456)。

    echo "123456"|passwd --stdin luffy && history -c

    尝试切换用户角色,命令如下:

    [root@ oldboy ~]# su - luffy <==由root管理员,切换到普通用户luffy

    [luffy@ oldboy ~]whoami<==查看当前用户是什么luffy[luffy@oldboy ] su - root <==切回到root用户

    Password:

    说明:

    1)超级用户root切换到普通用户下面,无需输入对应用户密码,这相当于“皇帝”去“大臣”家里。

    2)普通用户切换到root或其他普通用户下,需要输入切换的对应用户密码。

    3)普通用户的权限比较小,只能进行基本的系统信息查看等操作,无法更改系统配置和管理服务。

    4)符号是普通用户的命令行提示符,#符号是超级管理员的提示符。示例如下: [luffy@ oldboy ~] #普通用户luffy对应的提示符

    [root@ oldboy ~]# #超级管理员root对应的提示符

    5)提示符@前面的字符代表当前用户(可用whoami查询),后面的为主机名(可用hostname查询),~所在的位置是窗口当前用户所在的路径。示例如下:

    [luffy@ oldboy ~]#luffy为当前用户,Oldboy为主机名,~表示当前目录,即家目录。 6)Linux命令提示符由PS1环境变量控制。示例如下: [root@ oldboy ~]# echoPS1

    [\u@\h \W]$

    这里的PS1='[\u@\h \W]′,可以通过全局变量配置/etc/profile文件调整PS1=′[\u@\h\W\t] '。

    注意:PS1必须大写的。

    参数 含义

    \d 代表日期,格式为weekday month date。

    \H 完整的主机名称。

    \h 仅取主机的第一个名字。

    \t 显示时间为24小时格式,如HHMMSS。

    \T 显示时间为12小时格式。

    \A 显示时间为24小时格式HHMM。

    \u 当前用户的账号名称。

    \v BASH的版本信息。

    \w 完整的工作目录名称。家目录会以~显示

    \W 利用basename取得工作目录名称,所以只会列出最后一个目录

    \# 下达的第几个命令

    $ 提示字符,如果是root时,提示符为# ,普通用户则为变量(放东西查看变量的内容)PS1−−−变量的名字−−−−−−藏经阁里面的武功秘籍(葵花宝典)秘籍名字(书名)PS1---查看变量里面的内容---手端着书(葵花宝典) 看书的内容(读书) PS1=新的内容 ---向变量里面放入东西----修改书的内容(升级书) 欲练此功,必先自宫,若不自宫,也能成功。 linux变量名字(书名)大写的一般是自己用(linux环境变量),在哪里都可以用的变量

    3、关闭SELinux       

    SELinux(Security-Enhanced Linux)是美国国家安全局(NSA)对于强制访问控制的实现,这个功能让系统管理员又爱又恨,这里我们还是把它给关闭了吧,至于安全问题,后面通过其他手段来解决,这也是大多数生产环境的做法,如果非要开启也是可以的。

    关闭方式如下

    永久关闭selinux

    # 备份

    cp /etc/selinux/config /etc/selinux/config.bak

    # sed修改,看看结果,不加-i

    sed 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config

    # 确认并使用 sed -i 修改文件内容

    sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config

    # 检查结果

    grep "disabled" /etc/selinux/config

    临时关闭selinux

    setenforce 0

    # 数字0表示Permissive,即给出警告提示,但不会阻止操作,相当于disabled。

    # 数字1表示Enforcing,即表示SElinux为开启状态。

    getenforce # 查看命令

    命令说明:

    setenforce:用于命令行管理SELinux的级别,后面的数字表示设置对应的级别。

    getenforce:查看SELinux当前的级别状态。

    提示:修改配置SElinux后,要想使其生效,必须要重启系统。因此,可配合使用setenforce 0这个临时使其关闭的命令,这样在重启前后都可以使得SElinux关闭生效了,也就是说无须立刻重启服务器了,在生产场景下Linux机器是不能随意重启的(不要给自己找任何理由重启)。

    4、关闭iptables(C6)或Firewalld(C7)防火墙

    关闭防火墙的目的是为了让初学者学习更方便,将来在学了iptables技术后可再统一开启。 在企业环境中,一般只有配置外网IP的linux服务器才需要开启防火墙,但即使是有外网IP,对于高并发高流量的业务服务器仍是不能开的,因为会有较大性能损失,导致网站访问很慢,这种情况下只能在前端加更好的硬件防火墙了。 关闭防火墙的具体操作过程如下:

    CentOS 6.x

    关闭防火墙

    [root@oldboyedu ~]# /etc/init.d/iptables stop 

    [root@oldboyedu ~]# /etc/init.d/iptables stop #<==重复执行下确认已关闭。

    查看是否关闭

    [root@oldboyedu ~]# /etc/init.d/iptables status 

    iptables: Firewall is not running.

    关闭开机自启动命令,前面已经关闭这里就无需执行。

    [root@oldboyedu ~]# chkconfig iptables off 

    [root@oldboyedu ~]# chkconfig --list|grep ipt

    iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off

    CentOS7.x

    关闭防火墙

    [root@oldboyedu ~]# systemctl stop firewalld

    关闭开机自启动

    [root@oldboyedu ~]# systemctl disable firewalld

    查看防火墙状态

    [root@oldboyedu ~]# systemctl is-active firewalld #是否正在运行

    [root@oldboyedu ~]# systemctl is-enabled firewalld #是否开机自启动

    关闭NetworkManager

    [root@oldboyedu ~]# systemctl stop NetworkManager

    [root@oldboyedu ~]# systemctl disable NetworkManager

    5、更改SSH远程默认的22端口

    sed -i 's#\#Port 22#Port 7777#g' /etc/ssh/sshd_config

    service sshd restart

    6、使用国内镜像做yum源

    默认国外的yum源(软件仓库)比较慢,所以换成国内的。

    备份

    mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

    下载新的CentOS-Base.repo 到/etc/yum.repos.d/

    CentOS 5

    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo

    或者

    curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo

    CentOS 6

    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

    或者

    curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

    CentOS 7

    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

    或者

    curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

    之后运行yum makecache生成缓存,此步骤可以不执行。

    7、epel源的安装

    备份(如有配置其他epel源)

    mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup

    mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup

    下载新repo 到/etc/yum.repos.d/

    epel(RHEL 7)

    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

    epel(RHEL 6)

    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo

    epel(RHEL 5)

    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-5.repo

    更换查看帮助的网站mirrors.aliyun.com

    8、关于网络下载命令

    curl

    在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具。

    常用参数

    -o --output,把输出写到该文件中

    -O --remote-name,把输出写到该文件中,保留远程文件的文件名

    -I --head,只显示传输文档,经常用于测试连接本身

    -s --silent,静默模式,不输出任何东西

    -T --upload-file,上传文件

    -V --version,显示版本信息

    -f --fail,只输出错误信息

    -# --progress-bar,用进度条显示当前的传送状态

    -H --header,自定义标题传递到服务器

    -v --verbose,详细显示请求报文结构和响应报文结构信息

    wget 主要用于下载文件

    wget支持HTTP,HTTPS和FTP协议,可以使用HTTP代理。所谓的自动下载是指,wget可以在用户退出系统的之后在后台执行。这意味这你可以登录系统,启动一个wget下载任务,然后退出系统,wget将在后台执行直到任务完成

    wget 可以跟踪HTML页面上的链接依次下载来创建远程服务器的本地版本,完全重建原始站点的目录结构。这又常被称作”递归下载”。

    常用参数

    -V --version,显示 Wget 的版本信息并退出。

    -h --help,打印此帮助。

    -b --background,启动后转入后台。

    -O --output-document=FILE,将文档写入 FILE。

    -q --quiet,安静模式(无信息输出)。

    -v --verbose,详尽的输出(此为默认值)。

    9、安装常用软件

    为了使用方便,可以安装一些常用的软件。

    yum -y install tree nmap sysstat lrzsz dos2unix telnet bash-completion bash-completion-extras vim nc lsof net-tools rsync

    10、升级具有典型漏洞的软件版本

    诸如openssl、openssh、bash爆出很多软件漏洞,在企业场景需要进行修复漏洞操作,步骤如下:

    首先查看相关软件的版本号。

    [root@Oldboy ~]# rpm -qa openssl openssh bash

    openssl-1.0.1e-30.el6.x86_64

    bash-4.1.2-29.el6.x86_64

    openssh-5.3p1-104.el6.x86_64

    执行升级已知漏洞的软件版本到最新,命令如下:

    [root@Oldboy ~]# yum install openssl openssh bash -y

    [root@Oldboy ~]# rpm -qa openssl openssh bash

    openssh-5.3p1-104.el6_6.1.x86_64

    bash-4.1.2-29.el6.x86_64

    openssl-1.0.1e-30.el6_6.5.x86_64

    11、时间同步

    echo '#Timing synchronization time' >/var/spool/cron/root

    echo '*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null' >/var/spool/cron/root

    crontab -l

    12、加大文件描述

    echo '* - nofile 65535 ' >>/etc/security/limits.conf 

    tail -1 /etc/security/limits.conf

    13、别名和环境变量优化

    cat>>/etc/profile.d/color.sh<<EOF

    alias ll='ls -l --color=auto --time-style=long-iso'

    PS1='

    \e[32;1m

    [\u@\h \W]$

    \e[0m

    '

    export HISTTIMEFORMAT='%F-%T '

    EOF

    14、内核优化

    cat >>/etc/sysctl.conf<<EOF

    net.ipv4.tcp_fin_timeout = 2

    net.ipv4.tcp_tw_reuse = 1

    net.ipv4.tcp_tw_recycle = 1

    net.ipv4.tcp_syncookies = 1

    net.ipv4.tcp_keepalive_time = 600

    net.ipv4.ip_local_port_range = 4000 65000

    net.ipv4.tcp_max_syn_backlog = 16384

    net.ipv4.tcp_max_tw_buckets = 36000

    net.ipv4.route.gc_timeout = 100

    net.ipv4.tcp_syn_retries = 1

    net.ipv4.tcp_synack_retries = 1

    net.core.somaxconn = 16384

    net.core.netdev_max_backlog = 16384

    net.ipv4.tcp_max_orphans = 16384

    EOF

    sysctl -p

    15、修改主机名和IP脚本

    [root@oldboy ~]# cat /server/scripts/hostname_ip.sh 

    #!/usr/bin/sh

    if [ # -ne 2 ];then   echo "/bin/sh0 hostname PartIP"

    exit 1

    fi

    hostnamectl set-hostname $1

    sed -i "s#100#$2#g" /etc/sysconfig/network-scripts/ifcfg-eth[01]

    systemctl restart network

    16、更改Linux特殊变量

    临时生效:

    export TMOUT=10        账号超时时间控制台变量(类似于Windows的锁屏)

    export HISTSIZE=5          命令行历史记录数量(历史记录越少越好)

    export HISTFILESIZE=5   命令行命令对应文件的记录数~/.bash_history

    永久生效:

    echo 'export TMOUT=300' >>/etc/profile

    echo 'export HISTSIZE=5' >>/etc/profile

    echo 'export HISTFILESIZE=5' >>/etc/profile

    source /etc/profile

    17、隐藏Linux版本信息

    cat /etc/issue

    >/etc/issue

    >/etc/issue.net

    这时候就没有任何版本信息了

    18、如何防止显示中文乱码(该优化初期建议不优化,直接强制看英文)

    此项优化为可选项,即调整Linux系统的字符集设置,那么,什么是字符集呢?

    简单的说,字符集就是一套文字符号及其编码。目前Linux下常用的字符集有:

    GBK:定长,双字节,不是国际标准,支持的系统不少,实际企业用的不多。

    UTF-8:非定长,1~4字节,广泛支持,MYSQL也使用UTF-8,企业广泛使用。 可通过快捷的命令方式在/etc/sysconfig/i18n中添加如下内容,使其支持中文显示:

    CentOS 6.x修过过程

    [root@ oldboy ~]# echo LANG                ###查看系统当前的字符集 en_US.UTF-8 [root@ oldboy ~]# cat /etc/sysconfig/i18n   #####系统字符集配置文件的位置 LANG="en_US.UTF-8" SYSFONT="latarcyrheb-sun16" [root@Oldboy ~]# cp /etc/sysconfig/i18n /etc/sysconfig/i18n.ori  ####备份 [root@Oldboy ~]# echo 'LANG="zh_CN.UTF-8"'  >/etc/sysconfig/i18n ####修改配置文件 #→相当于用vi /etc/sysconfig/i18n 添加LANG="zh_CN.UTF-8"内容 [root@Oldboy ~]# source /etc/sysconfig/i18n #→使上文修改生效    ###让配置文件生效 [root@Oldboy ~]# echoLANG ###查看系统当前的字符集

    zh_CN.UTF-8

    CentOS 7.x修过过程

    修改/etc/locale.conf这个文件

    提示:

    乱码的核心解决方法:

    系统字符集(utf-8)

    xshell软件的字符集保持一致(utf-8)

    文件使用的字符集一致

    zh_CN.GBK

    注意“zh_CN.UTF-8”的大小写字母。

    这个中文显示配置要跟你自己的SSH客户端的配置一致。

    Linux基础优化与安全重点小结

    不用root登录管理系统,而以普通用户登录通过sudo授权管理。

    更改默认的远程连接SSH服务端口,禁止root用户远程连接,甚至要更改SSH服务只监听内网IP。

    定时自动更新服务器的时间,使其和互联网时间同步。

    配置yum更新源,从国内更新源下载安装软件包。

    关闭SELinux及iptables(在工作场景中,如果有外部IP一般要打开iptables,高并发高流量的服务器可能无法开启)。

    调整文件描述符的数量,进程及文件的打开都会消耗文件描述符数量。

    定时自动清理邮件临时目录垃圾文件,防止磁盘的inodes数被小文件占满(注意Centos6和Centos5要清除的目录不同)。

    精简并保留必要的开机自启动服务(如crond、sshd、network、rsyslog、sysstat)。

    Linux内核参数优化/etc/sysctl.conf,执行sysctl -p生效。

    更改系统字符集为“zh_CN.UTF-8”,使其支持中文,防止出现乱码问题。

    锁定关键系统文件如/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow、/etc/inittab,处理以上内容后把chattr、lsattr改名为luffy,转移走,这样就安全多了。

    清空/etc/issue、/etc/issue.net,去除系统及内核版本登录前的屏幕显示。

    清除多余的系统虚拟用户账号。

    为grub引导菜单加密码。

    禁止主机被ping。

    打补丁并升级有已知漏洞的软件。 新系统 yum –y install 已经在线上用的服务器 web服务器能够停止。

     

    展开全文
  • 安全状态与死锁

    千次阅读 2018-11-28 21:48:19
    :正如申老师所言,当进程处于不安全状态的时候,可能会由于操作系统在期间杀死一些进程等意外情况下而使不安全状态避免向死锁状态的转化。  2&gt;:在我看来,1中的思想可能有点牵强,毕竟在大多数情况下进程都...
  • 操作系统安全机制

    千次阅读 2018-09-16 23:38:37
    版权声明:本文为博主原创文章,未经博主允许不得转载。...操作系统安全性表现 物理上分离:要求进程使用不同的物理实体 时间上分离:具有不同安全要求进程在不同时间运行 逻辑上分离:要求进程...
  • CentOS7 系统安全加固实施方案介绍

    万次阅读 2015-09-23 12:43:48
    CentOS7.0系统安全加固手册 目录 一、用户帐号和环境……………………………………………………………………………………. 2二、系统访问认证和授权………………………………………………………………………………...
  • 一些操作系统安全设置

    千次阅读 2016-06-19 22:26:54
    操作系统通用安全设置 禁用ping命令 通过创建IP安全策略,禁用ping命令。 屏蔽FTP默认欢迎界面
  • 提高系统安全性方法详解

    万次阅读 2017-06-30 15:05:46
    规定的条件是指直接与软件运行相关的使用该软件的计算机系统状态和软件的输入条件,或统称为软件运行时的外部输入条件;规定的时间区间是指软件的实际运行时间区间;规定功能是指为提供给定的服务,软件产品所必须...
  • 操作系统中判断当前是否是安全状态和是否有死锁进程的算法比较类似,请说明二者之间的区别?
  • 无人驾驶系统安全

    千次阅读 2017-02-08 17:08:37
    作者:刘少山,李文超,唐洁 责编:何永灿,欢迎人工智能领域技术投稿、约稿、给文章纠错,请发送邮件至heyc@csdn...本文是无人驾驶技术系列的第九篇,详细介绍针对无人车传感器、操作系统、控制系统、车联网的攻...
  • (7)操作系统安全机制一

    万次阅读 2017-12-30 10:22:19
    操作系统安全机制:自主访问控制、强制访问控制机制、客体重用机制、标识与鉴别机制、可信路径机制、安全审计
  • 一、安全扫描技术1.1 安全扫描技术概念1、安全扫描技术指手工或使用特定的软件工具(安全扫描器),对系统脆弱性进行评估,寻找可能对系统造成损害的安全漏洞。2、安全扫描技术分为系统扫描和网络扫描两大类。 (1)...
  • Windows操作系统安全加固

    千次阅读 2019-03-28 11:55:06
    Windows操作系统安全加固 本页目录 1. 账户管理和认证授权 2. 日志配置操作 3. IP协议安全配置 4. 文件权限 5. 服务安全 6.安全选项 7. 其他安全配置 本文档旨在指导系统管理人员或安全检查人员进行...
  • linux系统安全和应用!

    千次阅读 热门讨论 2021-05-14 16:15:10
    linux系统安全和应用一.账号安全控制1.基本安全措施(1)系统账号清理(2)密码安全控制(3)命令历史注销清除2.用户切换与提取su和sudosusudo3.PAM安全认证二.系统引导和安全控制1.开关机安全控制2.终端及登录控制...
  • 应用系统安全管理

    千次阅读 2017-04-05 17:12:22
    应用系统安全管理 1 身份鉴别 1.1 应用系统采用专用的登录控制模块
  • 系统安全架构包括什么

    千次阅读 2019-09-03 09:23:47
    二、应用系统安全 开发程序的时候,应当事先知道并在代码层面处理大部分常见的安全问题。 1.sql注入 mybatis就使用#比使用$能规避掉很多sql注入攻击。 2.csrf(跨站请求伪造)攻击 大致三种方法,①在filter中...
  • 数据库系统安全机制

    万次阅读 2008-03-22 22:15:00
    1.1.4 数据库系统安全机制数据库安全机制是用于实现数据库的各种安全策略的功能集合,正是由这些安全机制来实现安全模型,进而实现保护数据库系统安全的目标。近年来,对用户的认证与鉴别、存取控制、数据库加密及...
  • Bitlocker、TPM和系统安全

    千次阅读 2018-11-30 06:17:13
    Bitlocker、TPM和系统安全 老狼 UEFI固件、服务器、嵌入式产品、开源硬件从业者 177 人赞了该文章 自从微软在Windows Vista首次引入Bitlocker以来,它已经越来越多的出现在我们的周围。尤其是企业用户,...
  • 信息系统安全法规与制度;计算机防病毒制度;保护私有信息规则。 2)系统的访问控制技术、数据的完整性、数据与文件的加密、通信的安全性、系统的安全性设计。 二、信息系统安全体系 信息安全的5个要素:机密性、...
  • Android操作系统安全

    千次阅读 2012-04-08 21:34:22
     Android在迅猛发展的同时,其安全问题一直没有引起足够的重视,但在2010年6月研究人员发布Android平台的KernelRootkit以来,Android平台的安全问题引来了越来越多的关注,而同时,Android平台的恶意软件也开始流行...
  • 六招轻松搞定你的CentOS系统安全加固 Redhat是目前企业中用的最多的一类Linux,而目前针对Redhat攻击的黑客也越来越多了。我们要如何为这类服务器做好安全加固工作呢? 一. 账户安全 1.1 锁定系统中...
  • Windows2008系统安全日志分析

    千次阅读 2014-05-25 19:07:17
    Windows2008系统安全日志分析 1、IPC连接成功后会生成一个事件ID为4624的安全事件,示例如下: 已成功登录帐户。 主题:  安全 ID: NULL SID  帐户名: -  帐户域: -  登录 ID: 0x0 登录...
  • 聊聊系统设计:有状态、无状态

    千次阅读 2018-05-08 09:45:15
    转载:https://blog.csdn.net/zhoumingp/article/details/50457203上一期从线程安全的角度聊了聊系统设计要注意的事情,这次换个角度继续聊聊系统设计 这次主题围绕系统设计:有状态、无状态惯例,先看栗子网站登录...
  • 一,系统设计:有状态、无状态惯例,先看栗子网站登录校验,很普通的一个功能 对于这个功能我们要如何实现?先分析一下登录校验是个啥意思 举个栗子,比如我们在登陆页输入用户名密码,登录了社交网站 这时候想去...
  • 如何提高Linux系统安全性的十大招数

    千次阅读 2005-12-23 11:44:00
    如何提高Linux系统安全性的十大招数Linux是一种类Unix的操作系统。从理论上讲,Unix本身的设计并没有什么重大的安全缺陷。多年来,绝大多数在Unix操作系统上发现的安全问题主要存在于个别程序中,所以大部分Unix厂商...
  • Linux系统安全加固设置详细教程

    万次阅读 2017-08-12 19:10:40
    对磁盘分区应考虑安全性: 1)根目录(/)、用户目录(/home)、临时目录(/tmp)和/var目录应分开到不同的磁盘分区; 2)以上各目录所在分区的磁盘空间大小应充分考虑,避免因某些原因造成分区空间用完而导致系统...
  • 银行家算法(安全序列)

    万次阅读 2019-11-16 17:48:22
    要解释银行家算法,必须先解释操作系统安全状态和不安全状态。 1)安全状态:如果存在一个由系统中所有进程构成的安全序列P1,…,Pn,则系统处于安全状态。安全状态一定是没有死锁发生。 2)不安全状态:不存在一个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 891,348
精华内容 356,539
关键字:

系统安全状态