• 系统安全及应用


    如何让Linux系统更加安全? Linux是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是Linux操作系统。Linux操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。 那么,Linux服务器安全技巧有哪些?

    一、信息安全分类

    设备安全:对物理设备进行安全防护,电压,工作环境,丢失,设备物理损坏
    系统安全:操作系统,访问权限,用户权限,账户密码,漏洞补丁等。
    通讯安全:网络通讯,广播风暴,网络流量攻击,地址伪装,信息窃取等
    数据安全:数据窃取,复制,删除,破解等
    服务安全:各种服务的漏洞,应用程序的BUG等

    二、账号安全基本措施

    1、系统账号

    linux用户:管理员用户 程序用户 普通用户
    /etc/passwd:保存用户基本信息

    root:x:0:0:root:/root:/bin/bash
    
    • 1

    第一列:用户名
    第二列:密码区域(密码保存在/etc/shadow)
    第三列:UID
    第四列:GID
    第五列:描述信息
    第六列:用户宿主目录
    第七列:用户登录shell(/etc/shells)

    /etc/shadow:存放密码相关信息

    root:$6$6aoUuO9cRnSLchHL$bMpOlt5aJgk.66y5o/UJAbuG521HpHiDv6SeA1LGpAx9iMGm4vIKo9MS2g.xoUwy.8RKq6Q4aepaGTYj6ySbP0::0:99999:7:::          16
    cxf:$6$C$u6e.1W78uVdeqmY0yNxyXiFNFOW52gZVkqbMImJXJHJWtVmn2aC0UxPl77M.toeDoMSBEskFiENoHvZwwHny50:17827:0:99999:7:::	1
    zs:$6$IJ5/H9IO$kVswGQH9YgaCiOXeUngw0H7IVQXjuOOSsv39y9akwrOr.jwmgtD/mx4jQHhB7oyQbFl.QvywHSn7IU9VTDcPx.:18346:0:99999:7:::	8
    
    • 1
    • 2
    • 3

    1)第1字段:用户账号名称。
    2)第2字段:使用MD5加密的密码字串信息,当为“*”或“!!”时表示此用户不能登录到系统。若该字段内容为空,则该用户无需密码即可登录系统。
    第一部分:加密类型。
    第二部分:标识符。
    第三部分:用户加密后的密码。
    3)第3字段:上次修改密码的时间,从1970年01月01日算起
    4)第4字段:密码的最短有效天数,默认值为0,表示不进行限制。
    5)第5字段:密码的最长有效天数
    6)第6字段:提前多少天警告用户口令将过期,默认值为7。
    7)第7字段:在密码过期之后多少天内禁用此用户。
    8)第8字段:账号失效时间,默认值为空,表示账号永久可用。
    9)第9字段:保留(未使用)

    /etc/skel:用户宿主目录模板文件夹

    # ls -a
    .bash_logout:用户注销(退出至待登录界面)时执行文件,默认空。
    .bash_profile:当前用户环境变量文件(系统启动时执行的文件)
    .bash_history:  保存了当前用户使用过的历史命令,方便查找
    .bashrc:用户自定义变量文件
    
    • 1
    • 2
    • 3
    • 4
    • 5

    题:现公司有一个规章制度《新制度》,想让新员工的账号中都存在这个文件。
    答:把文件加到/etc/skel/目录下。查看新用户的/home/用户名即可。
    cp 新制度名(例:1.txt) /etc/skel/

    useradd haha
    [root@localhost ~]# ls -a /home/haha/
    .  ..  1.txt  .bash_logout  .bash_profile  .bashrc  .mozilla 
    
    • 1
    • 2
    • 3

    /etc/login.defs:新建用户时,用户属性模板文件(只对新建用户生效)
    MAIL_DIR /var/spool/mail:用户通知邮件
    PASS_MAX_DAYS 99999:密码最长使用期限
    PASS_MIN_DAYS 0:密码最短使用期限
    PASS_MIN_LEN 5:密码最小长度
    PASS_WARN_AGE 7:密码过期提前警告时间
    UID_MIN 1000:用户最小UID
    UID_MAX 60000:用户最大UID
    SYS_UID_MIN 201:系统用户最小UID
    SYS_UID_MAX 999:系统用户最大UID
    GID_MIN 1000:组最小UID
    GID_MAX 60000:组最大UID
    CREATE_HOME yes:是否创建家目录,默认是创建
    UMASK 077:反掩码 755 644
    USERGROUPS_ENAB yes:是否允许删除没有用户的基本组,默认是允许
    ENCRYPT_METHOD SHA512:用户密码的加密方式

    Linux whoami命令用于显示自身用户名称。

    [root@localhost ~]# whoami 
    root
    
    • 1
    • 2

    命令whoami由英文单句“Who am I?(我是谁?)”连接而成,调用该命令时系统会输出当前用户的有效用户名,这一输出效果与Unix命令id-un是相同的。

    2、修改Linux密码过期时间

    Windows用户默认密码过期时间:42天
    Linux用户默认密码过期时间:99999

    ☑ 方法1:

    vim /etc/shadow
    修改99999为30,表示30天后过期
    
    • 1
    • 2

    ☑ 方法2:

    usermod -e 2020-03-30 wwx
    
    • 1

    ☑ 方法3:(适用于新用户)

    vim /etc/login.defs 
    修改:
    PASS_MAX_DAYS   99999
    修改99999为15,表示15天后过期
    
    • 1
    • 2
    • 3
    • 4

    ☑ 方法4:

    chage -M 30 wwx                       -M:密码保持有效的最大天数
    
    • 1

    实验:

    /opt/aaa/haha
    1)创建两个用户zs、ls
    2)创建目录aaa,给了w(写入权限)
    3)进入目录aaa,创建了目录haha,并修改了属主和属组为zs
    4)su到zs,将目录haha删除,结果成功!
    5)exit退出zs,用root用户再次创建目录haha,并修改了属主和属组为zs,登录用户ls查看能否删除
    6)exit退出ls,用root用户再次创建目录haha,并赋予aaa目录粘滞位,测试用户是否还能删除haha目录

    # 命令:
    [root@localhost ~]# useradd zs 
    [root@localhost ~]# useradd ls
    [root@localhost ~]# mkdir /opt/aaa
    [root@localhost ~]# cd /opt/
    [root@cxf opt]# ll
    [root@localhost opt]# ll
    总用量 0
    drwxr-xr-x. 2 root root 6 1223 09:08 aaa
    drwxr-xr-x. 2 root root 6 326 2015 rh
    [root@localhost opt]# chmod o+w aaa/    (o不能省去)
    [root@localhost opt]# ll
    总用量 0
    drwxr-xrwx. 2 root root 6 1223 09:08 aaa
    drwxr-xr-x. 2 root root 6 326 2015 rh
    
    3[root@localhost aaa]# mkdir haha
    [root@localhost aaa]# ll
    总用量 0
    drwxr-xr-x. 2 root root 6 1223 09:15 haha
    [root@localhost aaa]# chown zs:zs haha/
    [root@localhost aaa]# ll
    总用量 0
    drwxr-xr-x. 2 zs zs 6 1223 09:15 haha
    
    4[root@localhost aaa]# su zs
    [zs@localhost aaa]$ rm -rf haha
    [zs@localhost aaa]$ ll
    总用量 0
    [zs@localhost aaa]$ exit
    exit
    
    5[root@localhost aaa]# mkdir haha
    [root@localhost aaa]# chown zs:zs haha/
    [root@localhost aaa]# ll
    总用量 0
    drwxr-xr-x. 2 zs zs 6 1223 09:19 haha
    [root@localhost aaa]# su ls
    [ls@localhost aaa]$ rm -rf haha/             (ls也是可以删除的)
    [ls@localhost aaa]$ ls
    [ls@localhost aaa]$ exit
    exit
    
    [root@localhost aaa]# mkdir haha
    [root@localhost aaa]# cd ..
    [root@localhost opt]# chmod o+t aaa/
    [root@localhost opt]# ll
    总用量 0
    drwxr-xrwt. 3 root root 18 1223 09:22 aaa                        set(主、组)和粘滞(other)全都是在x位上进行表示
    drwxr-xr-x. 2 root root  6 326 2015 rh
    [root@localhost opt]# cd aaa/
    [root@localhost aaa]# su ls
    [ls@localhost aaa]$ rm -rf haha/
    rm: 无法删除"haha/": 不允许的操作
    [ls@localhost aaa]$ exit
    exit
    [root@localhost aaa]# su zs
    [zs@localhost aaa]$ rm -rf haha/
    rm: 无法删除"haha/": 不允许的操作
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62

    3、文件隐藏权限

    chattr:更改权限 chattr:改变文件的属性
    +a:不能删除文件和数据 -a
    +i:不能更改文件和数据 -i
    lsattr:显示权限列表 lsattr:显示文件的属性
    例:

    [root@lala ~]# cp /etc/passwd /etc/passwd.old
    [root@lala ~]# chattr +a /etc/passwd.old
    [root@lala ~]# lsattr /etc/passwd
    ---------------- /etc/passwd
    [root@lala ~]# lsattr /etc/passwd.old 
    -----a---------- /etc/passwd.old
    [root@lala ~]# rm -rf /etc/passwd.old 
    rm: 无法删除"/etc/passwd.old": 不允许的操作
    
    [root@lala ~]# chattr +i /etc/passwd.old 
    [root@lala ~]# vim /etc/passwd.old
    →不允许修改数据
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    4、权限访问控制列表:setfacl

    getfacl:取得某个文件/目录的ACL设置项目 获取目录或文件访问控制列表
    setfacl:设置某个目录/文件的ACL规定

    [root@lala ~]# touch zwl.txt
    [root@lala ~]# ll
    -rw-r--r--. 1 root root    0 326 15:02 zwl.txt
    [root@lala ~]# setfacl -m g:root:rw zwl.txt                       -m,       --modify-acl 更改文件的访问控制列表
    [root@lala ~]# ll zwl.txt
    -rw-rw-r--+ 1 root root 0 326 15:02 zwl.txt
    [root@lala ~]# setfacl -m o:wx zwl.txt 
    [root@lala ~]# ll zwl.txt
    -rw-rw--wx+ 1 root root 0 326 15:02 zwl.txt
    
    [root@lala ~]# getfacl zwl.txt 
    # file: zwl.txt
    # owner: root
    # group: root
    user::rw-
    group::r--
    group:root:rw-
    mask::rw-
    other::-wx
    
    [root@localhost ~]# touch 2.txt
    [root@localhost ~]# getfacl 2.txt 
    # file: 2.txt
    # owner: root
    # group: root
    user::rw-       默认文件权限为644
    group::r--
    other::r--
    
    [root@localhost ~]# setfacl -m g:root:rwx 2.txt 
    [root@localhost ~]# getfacl 2.txt 
    # file: 2.txt
    # owner: root
    # group: root
    user::rw-
    group::r--
    group:root:rwx
    mask::rwx
    other::r--
    
    [root@localhost ~]# setfacl -m o:wx 2.txt 
    [root@localhost ~]# getfacl 2.txt 
    # file: 2.txt
    # owner: root
    # group: root
    user::rw-
    group::r--
    group:root:rwx
    mask::rwx
    other::-wx
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50

    5、强制要求用户更新密码

    再次登录时需要先输入旧密码,再输入新密码,2次

    [root@localhost ~]# useradd qqq
    [root@localhost ~]# echo 123.com | passwd qqq --stdin
    更改用户 qqq 的密码 。
    passwd:所有的身份验证令牌已经成功更新。
    [root@localhost ~]# chage -d 0 qqq               >>-d:指定密码最后修改日期
    [root@localhost ~]# su qqq
    [qqq@localhost root]$ sudo systemctl restart network
    [sudo] password for qqq: 
    sudo:账户或密码过期,重置您的密码并重试
    为 qqq 更改 STRESS 密码。
    (当前)UNIX 密码:
    新的 密码:
    无效的密码: 密码与原来的太相似                 (尴尬)
    新的 密码:                                   --不要过于简单化/系统化
    重新输入新的 密码:
    qqq 不在 sudoers 文件中。此事将被报告。                          //因为你没有配置sudo授权于用户
    [qqq@localhost root]$ sudo -l
    [sudo] password for qqq: 
    对不起,用户 qqq 不能在 localhost 上运行 sudo。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    6、修改历史命令显示条数

    vim /etc/profile
    HISTSIZE=1000			//显示历史命令条数1000修改为10,则只显示10.    /etc/profile
    
    验证:再次history时,则只显示10条
    export HISTSIZE=5		//只适用于当前用户
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    7、切换用户

    su (switch user):切换用户
    普通用户切换到root时需要密码(容易造成root密码泄露),root切换到普通用户无需密码
    su -
    带 - 选项表示切换用户并将使用目标用户的登录Shell环境

    7-1)限制用户使用su命令

    # 1、用户加入wheel组
    gpasswd  -a  用户名  wheel
    
    # 2、修改/etc/pam.d/su文件
    启用auth            required        pam_wheel.so use_uid  (去掉#号)                            required:规定              wheel:轮(但在此命令中的意思是一个组)         auth:授权
    没有经过认证的用户使用su命令的时候,会提示无权限
    [[root@localhost ~]# su haha
    [haha@localhost root]$ su root
    密码:
    [root@localhost ~]# su qqq
    [qqq@localhost root]$ su root
    密码:
    su: 拒绝权限
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    7-2)配置sudo授权:

    利用“命令所有者的身份”去执行命令(不需要切换到该用户,需要提前授权)
    1)visudo
    2)/etc/sudoers 需要用wq!或w!保存
    添加:
    哪些用户 哪些主机=哪些命令
    pkr localhost=/sbin/fdisk,/sbin/reboot
    wwx ALL=/sbin/ifconfig 允许wwx用户在所有主机上使用ifconfig命令
    可以使用通配符*、取反符号!

    验证:

    [root@localhost ~]# su wwx
    [wwx@localhost root]$ cd
    [wwx@localhost ~]$ sudo useradd qqqqq
    [sudo] password for wwx: 
    对不起,用户 wwx 无权以 root 的身份在 localhost.localdomain 上执行 /sbin/useradd qqqqq。
    [wwx@localhost ~]$ sudo ifconfig ens33
    [sudo] password for wwx: 
    ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 192.168.1.1  netmask 255.255.255.0  broadcast 192.168.1.255
            inet6 fe80::a535:642:e9fd:ceb7  prefixlen 64  scopeid 0x20<link>
            ether 00:0c:29:c0:93:18  txqueuelen 1000  (Ethernet)
            RX packets 1165  bytes 84755 (82.7 KiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 1058  bytes 80310 (78.4 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    输入所切换用户的密码就可以使用了

    7-3)查看sudo操作记录

    [root@localhost ~]# visudo       》》添加:Defaults logfile = 保存路径                                  注意:=号两旁必须有空格
    [root@localhost ~]# tail /var/log/sudo 
    [root@localhost ~]# su - haha
    上一次登录:二 1222 23:23:50 CST 2020pts/0 上
    [haha@localhost ~]$ sudo ifconfig
    [sudo] password for haha: 
    [haha@localhost ~]$ sudo systemctl restart network                    
    
    启用日志配置以后,sudo操作过程才会被记录(正确+错误信息都会记录)
    [haha@localhost ~]$ exit
    登出
    
    [root@localhost ~]# tail /var/log/sudo 
    Dec 22 23:17:57 : haha : TTY=pts/0 ; PWD=/home/haha ; USER=root ;
        COMMAND=/sbin/ifconfig
    Dec 22 23:18:11 : haha : TTY=pts/0 ; PWD=/home/haha ; USER=root ;
        COMMAND=/bin/systemctl restart network
    
    sudo -l
    查看当前用户默认条目(可以查看当前用户拥有哪些权限,可以执行哪些命令)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    8、取消Ctrl+Alt+Del重启快捷键

    systemctl mask ctrl-alt-del.target    (对虚拟机暂时无效)
    
    恢复Ctrl+Alt+Del重启快捷键
    systemctl unmask ctrl-alt-del.target 
    systemctl daemon-reload 		//刷新systemd配置                  {daemon:守护进程}
    
    • 1
    • 2
    • 3
    • 4
    • 5

    9、禁用root用户登录某tty终端

    在配置文件中用#注销掉不允许登录的终端即可

    vim /etc/securetty 
    #tty5
    #tty6
    #tty7
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    当服务器在进行备份或调解等维护工作时,若不希望再有新的用户登录系统。
    禁用普通用户登录

    touch /etc/nologin      >就创建个文件即可~
    
    • 1

    原理:利用了shutdown延迟关机的限制机制。如果希望用户登录,则删除此文件或重启即可。

    10、弱口令检测

    一、密码破解的三种方式:

    1.暴力破解:使用密码破解软件,对指定范围的密码进行逐个对应计算。
    2.密码字典破解:用户通过一个现有的密码字典,进行密码匹配。是否能够破解,取决于密码字典中的密码数量。
    3.掩码破解:基于暴力破解的一种指定范围的方式。

    二、使用john破解用户密码

    破解原理:john工具通过扫描 shadow文件,对用户的密码进行反向推算,得到的值与密码字典中的值相同时,则表示该密码对应成功。如果不对,则对比字典中的下一条密码,直到全部对比完密码字典中的密码,或找到相同密码位置。
    john the ripper,开源的密码破解工具,能够在已知密文的情况下快速分析出明文的密码子串,支持MD5、DES等多种加密算法。

    # 1)安装
    tar zxvf john-1.8.0.tar.gz -C /usr/src/
    cd /usr/src/john-1.8.0/src
    make clean linux-x86-64                     //编译内核版本到软件中
    
    # 2)创建测试用户
    useradd zhangsan                      
    passwd zhangsan		123.com
    
    useradd lisi
    passwd lisi		1234.com
    
    # 3)复制/etc/shadow到/tmp,防止源文件/etc/shadow被破坏导致计算机不能使用。并设置权限
    cp /etc/shadow /tmp/
    chmod +r /tmp/shadow
    
    # 4)删除/tmp/shadow文件中不需要破解的用户
    vim /tmp/shadow
    将除了root、zhangsan、lisi的其他用户删掉,wq!保存
    
    # 5)给john的密码字段中添加密码字符串
    cd /usr/src/john-1.8.0/run
    vim password.lst
    添加:
    123.com
    1234.com
    为了减少实验时间,除了“上述两个密码外,其余的都可以删掉”
    
    # 6)开始破解
    【在run目录之下才能执行如下命令】
    ./john /tmp/shadow 
    Loaded 4 password hashes with 4 different salts (crypt, generic crypt(3) [?/64])
    Press 'q' or Ctrl-C to abort, almost any other key for status
    123.com          (cxf)            #此用户之前就存在
    123.com          (zhangsan)
    1234.com         (lisi)
    123.com          (root)
    4g 0:00:00:38 100% 2/3 0.1043g/s 307.3p/s 314.8c/s 314.8C/s 123456..ncc1701   (100%是此工具在password.lst文件中查找的进程)
    Use the "--show" option to display all of the cracked passwords reliably
    Session completed
    
    7)查看破解结果(并不会改变你原有文件中的数据)
    ./john --show /tmp/shadow
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43

    11、扫描工具(语法和类型)

    扫描工具:
    ☑ 主机地址扫描工具:通过ping命令扫描或通过arp广播收集信息【常用,可以扫描网络中可以通讯的主机IP】
    ☑ 端口扫描:查看主机开启的服务端口【通过软件或测试脚本,对指定主机或指定范围的主机进行“后台端口扫描”】
    ☑ 端口漏洞扫描:需要使用软件或脚本进行扫描
    ☑ 系统漏洞扫描:补丁服务(可对本地或远程系统)
    ☑ 病毒木马扫描
    NMAP作用:扫描网络中主机开启的服务端口
    nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting)。它是网络管理员必用的软件之一,以及用以评估网络系统安全。

    NMAP(端口扫描)

    1)安装
    yum -y install nmap
    
    2)测试
    nmap 127.0.0.1
    测试本机开启的服务端口
    22/tcp  open  ssh
    25/tcp  open  smtp
    111/tcp open  rpcbind
    631/tcp open  ipp
    111/udp  open          rpcbind
    5353/udp open|filtered zeroconf        以上服务默认存在
    
    
    nmap -sT 192.168.6.50 (可以远程扫描)
    测试相应主机的TCP端口
    
    nmap -sU 192.168.6.50
    测试相应主机的UDP端口
    
    nmap -sn  192.168.6.0/24   测试整个网段中存在的主机
    选项:
    端口探测一般为-s开头
    -sS  TCP SYN扫描:向目标发送SYN数据包,如果收到ACK就认为目标端口开启
    -sF  TCP FIN扫描:检测防火墙是否强壮。向目标发送FIN数据包,如果收到RST就认为目标端口关闭
    -sP  ICMP扫描:类似于ping检测
    -P0  跳过ping检测
    -v   启用细节模式。
    -sL  仅列出指定网络上的每台主机,不发送任何报文到目标主机:192.168.1.0/24
    -sO  确定目标主机支持哪些IP协议 
    -O   探测目标主机的操作系统
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    拓展:

    Linux内核升级:yum -y install kernel(uname -r:查看内核版本)
    
    • 1

    12、linux清空历史命令(history)

    一、history -c
    该命令可以清空本次登入的所有输出命令,但不清空.bash_history文件,所以下次登陆后,旧命令还将出现,历史命令是存在于当前用户根目录下的./bash_history文件。
    二、echo > /home./用户/.bash_history
    每个用户根目录下都有一个.bash_history文件用于保存历史命令,当每次注销时,本次登陆所执行的命令将被写入该文件。所以可以清空该文件,下次登陆后上次保存的命令将消失,清空效果将在下次登陆生效。

    13、Chage命令 是用来修改帐号和密码的有效期限。

    # 语法
    chage [选项] 用户名
    
    # 选项
    -m: 密码可更改的最小天数。为零时代表任何时候都可以更改密码。
    -M: 密码保持有效的最大天数。                                                       
    -w: 用户密码到期前,提前收到警告信息的天数。 
    -E: 帐号到期的日期。过了这天,此帐号将不可用。 0表示马上过期,-1表示永不过期 
    -d: 指定密码最后修改日期  
    -i: 停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。 -l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。
    -h: 显示帮助信息并退出
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    14、setfacl的用途

    setfacl的用途
    setfacl命令可以用来细分linux下的文件权限。
    chmod命令可以把文件权限分为u,g,o三个组,而setfacl可以对每一个文件或目录设置更精确的文件权限。
    换句话说,setfacl可以更精确的控制权限的分配。
    比如:让某一个用户对某一个文件具有某种权限。

    这种独立于传统的u,g,o的rwx权限之外的具体权限设置叫ACL(Access Control List)
    ACL可以针对单一用户、单一文件或目录来进行r,w,x的权限控制,对于需要特殊权限的使用状况有一定帮助。
    如,某一个文件,不让单一的某个用户访问。

    setfacl的用法

    # 用法: setfacl { -m|-M|-x|-X ... }       {u|g|o|m}     file 
    
    -m,       --modify-acl 更改文件的访问控制列表                    (多种选项结合时,-m一般跟在其他选项的后面)
    -M,       --modify-file=file 从文件读取访问控制列表条目更改
    -x,       --remove=acl 根据文件中访问控制列表移除条目
    -X,       --remove-file=file 从文件读取访问控制列表条目并删除
    -b,       --remove-all 删除所有扩展访问控制列表条目
    -k,       --remove-default 移除默认访问控制列表
              --set=acl 设定替换当前的文件访问控制列表
              --set-file=file 从文件中读取访问控制列表条目设定
              --mask 重新计算有效权限掩码
    -n,       --no-mask 不重新计算有效权限掩码
    -d,       --default 应用到默认访问控制列表的操作(使用-d的话,就会把默认的都加上去,只针对目录哦。)
    -R,       --recursive 递归操作子目录(在使用-R时,记得放在-m前面,否则不可以地)
    -L,       --logical 依照系统逻辑,跟随符号链接
    -P,       --physical 依照自然逻辑,不跟随符号链接
              --restore=file 恢复访问控制列表,和“getfacl -R”作用相反
              --test 测试模式,并不真正修改访问控制列表属性
    -v,       --version           显示版本并退出
    -h,       --help              显示本帮助信息
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    Life needs not only to enjoy the pleasure, but also to think about the pain.

  • 相关阅读:
    (日积月累版)大数据基础知识点1-关系型数据库
    期刊查重会泄露论文吗?
    MySQL_数据库的约束
    Glide源码解析二---into方法
    3.1虚拟化和安装Docker
    一文看懂推荐系统:排序15:DeepFM模型(Factorization-Machine),xDeepFM可不是对DeepFM的改编哦,而是对DCN的改编
    [Studio]Manifest merger failed with multiple errors, see logs 解决方法
    RESTFul:RESTful简介、RESTful的实现、RESTFul案例
    ROS2——分布式通信(十二)
    网络编程套接字应用分享【Linux &C/C++ 】【UDP应用 | TCP应用 | TCP&线程池小项目】
  • 原文地址:https://blog.csdn.net/qq_50573146/article/details/126845202