zoukankan      html  css  js  c++  java
  • su sudo 限制root远程登录

    su命令

    su用来切换用户。

    su -  用户    是完全切换,就是变成另一个用户。

    su 用户       是不完全切换,变量还是上一个用户。

    注释:完全切换,就是在切换时加载用户的环境变量.bash_history,.bash_logout,.bash_profile

    通过-c参数来不切换用户,以这个用户的身份来执行一些命令:

    [root@tingaolinux ~]# su - -c "touch /tmp/tingao.111" tingao

    [root@tingaolinux ~]# ls -lt /tmp/ |head

    总用量 128

    -rw-rw-r--  1 tingao tingao      0 11月 21 18:11 tingao.111

    [root@tingaolinux ~]# id tingao

    uid=1009(tingao) gid=1009(tingao) 组=1009(tingao),1010(grp2)

    常见的su用法root用户操作的以下步骤):

    • 1.useradd -M can1 创建一个没家目录的用户。
    • 2.mkdir /home/can1 创建家目录
    • 3.cp -r /etc/skel/* /home/can1 给用户家目录里复制进一个模版的家用户变量(/etc/skel)
    • 4.chown can1:can1 /home/can1 更改用户家目录的属主属组为改用户

    sudo命令

    sudo给普通用户授权root用户的身份。

     

    visudo打开sudo的配置文件"/etc/sudoers.tmp" 112L, 3938C

     最核心的部分:

       ALL  指的是在哪里

    (ALL)指的是主机用户

    后面的ALL 表示所有的命令,也可以自定义命令

     

    正常情况下,普通用户ls root/目录是没有权限的

     

    第一次执行需要输入密码,第二次就不用输入密码

    第一次输入英文显示如下:

    翻译:

     不让用户输入密码

     

    切换到user1

    [root@tingaolinux ~]# su - user1

    上一次登录:二 11月 21 01:28:52 CST 2017pts/0 上

    su: 警告:无法更改到 /home/user1 目录: 没有那个文件或目录

    -bash-4.2$ su root

    密码:

    [root@tingaolinux ~]# mkdir /home/user1

    [root@tingaolinux ~]# cp /etc/skel/.bash* !$

    cp /etc/skel/.bash* /home/user1

    [root@tingaolinux ~]# chown  user1:user1 /home/user1

    [root@tingaolinux ~]# su - user1

    上一次登录:三 11月 29 20:50:31 CST 2017pts/0 上

    [user1@tingaolinux ~]$ sudo  ls  /root/

     

      测试

    [tingao@tingaolinux ~]$ sudo ls /root

    [sudo] tingao 的密码:

    111  1.txt.bak anaconda-ks.cfg.1  tingao

    [tingao@tingaolinux ~]$ sudo cat /root/1.txt.bak

     

     

    用户组

    就是说,一些用户用到了同样的命令,可以把这些命令放到一个用户组里,对用户组进行操作。

    例如:$wheel用户组

     

     修改 sudoers 文件注意事项

    1、操作时最好用 echo >>追加,不过 cat sed 同样也可以实现(不常用)

    2、修改完成后一定记得检查语法 visudo -c

    3、确保/etc/sudoers 默认的权限是 440(防止权限误用)

    4、及时验证修改的配置是否正确

    5、确保知道 root 密码,以便普通用户可以通过 sudo su -命令切换

    6、修改授权某用户权限成功后,切换到用户下面,用 sudo -l 来查看自己拥有哪些权限

    限制root用户远程登录

    如果root用户的密码被盗窃了,而你的服务器又没有限制使用密匙登录,那么就悲剧了。所以,限制root远程登录还是有一定的必要性的。那么怎么操作呢?

    我们想一想,首先ssh那里应该禁止掉。但是禁止掉那里的话,我们想用root用户进行一些操作怎么办呢?对,可以用su命令切换过去,但是我们知道,在切换的时候需要输入密码,而我们root的密码又不能随便给普通用户。这时候我们想到了sudo命令,它里面有一个NOPASSWD选项,可以避免我们输入密码

    关闭ssh配置的root登录:

    修改/etc/ssh/sshd_config:

    #LoginGraceTime 2m
    PermitRootLogin no


    重启服务:
    systemctl  restart sshd.service

    然后以普通用户身份登录后切换root登录 sudo  su  - root

     备注:

    可以给普通用户设置部分权限,不要全部授予权限。

    禁用掉root用户登录后:

    可以给一个用户授予sudo权限,之后自己用这个用户切换到root用户下。或者都不给普通用户sudo权限,自己实体机登录root,不远程登录。

    然后其他用户授予部分权限。

  • 相关阅读:
    Euclid's Game (简单博弈)
    “科大讯飞杯”第十七届同济大学程序设计预选赛暨高校网络友谊赛(部分题解)
    牛客小白月赛4 (B 博弈论)
    博弈--尼姆博弈
    C# .net中获取台式电脑中串口设备的名称
    打印出C# 中float ,double 在内存中的存放形式
    VS2010 C++ 创建COM组件
    .net 中两个日期算经过的月份数
    一种计算MD5的实现方法
    将文件从程序集中复原
  • 原文地址:https://www.cnblogs.com/pta188/p/8719790.html
Copyright © 2011-2022 走看看