zoukankan      html  css  js  c++  java
  • sudo

    sudo
    execute a command as another user
    以前学过的要转换用户身份做一个事情的方法有:
    1,
    suid可以在执行一个命令转换身份
    2,
    su - user1 <<EOF
    touch 123
    exit
    EOF
    3,
    su - user1 -c "touch 456"
    管理员有root的密码,在管理时也不用root用户,而用一个普通用户(为了安全,防止用root做误操作)。但是普通用户并没有所有的权限,所以可以在root对这个普通用户授权,让它能够做root能做的事情).
    用处1:用于管理员给只有普通用户密码的助理工程师授于一些相应命令权限,但root密码却不给助理工程师的情形。
    网络路由管理:张三
    服务管理:李四
    磁盘存储管理:王五
    进程管理:马六
    软件包管理:田七
    ......
    用处2:很多公司要求root管理员为了防止误操作,不用root,而用普通用户(sudo授于你所需要的命令权限,但对于很危险的操作,如init等就不授权)sudo来操作
    例1:root授于普通用户abc所有的操作权限
    # vim /etc/sudoers
    91 root ALL=(ALL) ALL
    92 abc ALL=(ALL) ALL --加上这一句表示把所有的相关权限给abc用户
    # su - abc
    $ touch /root/abc --abc不允许在root家目录创建文件
    touch: cannot touch `/root/abc': Permission denied
    $ sudo touch /root/abc --命令前加sudo,第一次使用sudo,会有下面的一段话
    We trust you have received the usual lecture from the local System
    Administrator. It usually boils down to these three things:
    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.
    [sudo] password for abc: --输入的是abc的密码,而不是root的密码,就可以成功创建
    $ sudo ls -l /root/abc --再次用sudo就不需要输入密码了,也可以看到其实还是用的root的身份
    -rw-r--r-- 1 root root 0 Nov 7 09:59 /root/abc
    例2:授于普通用户abc部分权限
    # vim /etc/sudoers
    Cmnd_Alias SERVICES = /usr/bin/systemctl restart sshd,/usr/bin/systemctl restart httpd
    root ALL=(ALL) ALL
    abc ALL=SERVICES
    测试,abc用户使用sudo,只能restart sshd服务和httpd服务
    改成如下
    Cmnd_Alias SERVICES = /usr/bin/systemctl * sshd,/usr/bin/systemctl restart *
    表示可以对sshd做start,stop,status,enable,disable等所有操作
      可以restart后接任何服务
      
    -----------------------------------------------------------------------------------------------
    尝试安装下面的软件
    笔记目录下/arch/safedog_linux64.tar.gz
    安装方法,解压,然后cd到解压目录,执行install.py文件进行安装
    # /etc/init.d/safedog restart
    # systemctl restart safedog
    # sdui
  • 相关阅读:
    MySQL主库异常,从库手动切换为主库方案
    快速搭建应用服务日志收集系统(Filebeat + ElasticSearch + kibana)
    CentOS7设置DNS服务器
    nginx/iptables动态IP黑白名单实现方案
    Python批量复制和重命名文件
    centos 7 配置php运行环境 (新)
    配置Nginx和php-fpm用Sock套接字连接时,找不到php-fpm.sock的原因
    php-fpm nginx 9000端口
    nginx与php-fpm通信的两种方式
    centos 7.2 常用命令useradd的使用
  • 原文地址:https://www.cnblogs.com/skyzy/p/9201427.html
Copyright © 2011-2022 走看看