zoukankan      html  css  js  c++  java
  • sudo命令

    sudo   http://wangchujiang.com/linux-command/c/sudo.html

    su: Switch User

    su -l user -c 'COMMAND'

    # su centos -c 'whoami'  //临时切换身份,运行另外一个用户

    su -l root -c 'COMMAND'

     su -l root

    sudo:

    可以让某个用户不需要拥有管理员的账号和密码,可以执行管理员的权限,就叫sudo授权机制

    授权之后,能够让某用户以另外一个用户的身份临时的运行命令;

                  配置文件:sudoers   /etc/sudoers

    root       ALL=(ALL)    ALL   //哪个用户能够以什么身份执行什么命令

    # sudo -u centos whoami   //管理员以centos的身份运行whoami命令

                         

    %wheel  ALL=(ALL)     ALL    //表示此组内的用户能够以任何身份运行任何命令

    %wheel:表示操作系统上的一个组,默认是以管理员身份运行

    # usermod -a -G wheel hadoop   //管理员将centos加入到wheel组中,

    #id hadoop

    确保/etc/sudoers中此行: %wheel  ALL=(ALL)     ALL    没有被注释

    [hadoop@COS ~]$ sudo fdisk -l

      

    hadoop@COS ~]$ sudo su -    //虽然Hadoop没有管理的密码,但是利用此命令依然可以切换到管理员

     

    # visudo -f /etc/sudoers

    使用visudo编辑/etc/sudoers可以检查语法错误

                         

    who: 运行命令者的身份,user

    where: 通过哪些主机,host

    (whom):以哪个用户的身份, runas

    which: 运行哪些命令,command

    配置项

                           users     hosts=(runas)     commands

    users:  有多个,用,分割

    username

                                   #uid

                                   user_alias  用户别名,是在sudoers文件中单独指定的

                                   %group_name  组名

                                   %#gid   #不能少,固定符号

                             host:

                                   ip

                                   hostname

                                   netaddr  网络地址

                             command:

                                   command name

                                   directory  目录所有命令

                                   sudoedit  编辑sudoers文件,一般授权

                              Alias_Type NAME = item1, item2, ...

                                       NAME: 必须使用全大写字母;

                                       Alias_Type:

                                              User_Alias

                                              Host_Alias

                                              Runas_Alias

                                              Cmnd_Alias

    示例:

    User_Alias NETADMIN = netsuer1, netuser2

    Cmnd-Alias NETADMINCMNDS = /usr/sbin/ip

    NETADMIN        ALL=(root)     NETADMINCMNDS

    #sudo -l  //可以列出当前用户利用sudo使用的所有命令

    #sudo /usr/bin/ip

    #sudo -k  //sudo输入密码后,一定时间内使用sudo命令是不需要输入密码的,使用-k是关闭无密码操作,再次使用sudu时就需要再次输入密码

                       

     Cmnd_Alias USERADMINCMNDS = /usr/sbin/useradd, /usr/sbin/usermod, /usr/bin/passwd [a-z]*, !/usr/bin/passwd root

                  # sudo [-u user] COMMAND

                         -u user: 默认为root;

                         -k: 清除此前记录用户密码;

    示例:

    #visudo -f /etc/sudoers  //添加3行

    User_Alias USERADMIN = poweruser1, poweruser2    //定义用户别名

    Cmnd_Alias USERADMINCMNDS =  /usr/sbin/useradd, /usr/sbin/usermod, /usr/bin/passwd [a-z]*, !/usr/bin/passwd root   //定义命令别名

            /usr/bin/passwd [a-z]*:[a-z]*表示密码不能为空,必须有参数,如果为空就可以更改root密码为空,$ sudo passwd 直接就可以更改root的密码了     

     /usr/bin/passwd后面没有[a-z]*,表示#sudo passwd后面可以没有参数,就表示更改默认用户的密码,即root 的密码

     

    !/usr/bin/passwd root  前加必须!,否则$ sudo passwd可以更改管理员密码,直接排除此表达式:!/usr/bin/passwd root

    USERADMIN ALL=(root) NOPASSWD:USERADMINCMNDS   //定义权限

    # useradd poweruser1

    # useradd poweruser2

    sudo有记录

     

  • 相关阅读:
    【转】免费搭建独立博客,WordPress+独立域名+独立空间
    MongoDB索引
    面向对象
    浏览器为webapp
    转载Chrome浏览器IOS
    浅淡Webservice、WSDL三种服务访问的方式(附案例)
    Plupload
    转载Yale CAS + .net Client 实现 SSO(6)
    java 对Hbase的基本操作
    【精】iOS开发视频教程下载
  • 原文地址:https://www.cnblogs.com/hanshanxiaoheshang/p/9221798.html
Copyright © 2011-2022 走看看