zoukankan      html  css  js  c++  java
  • Linux命令总结--su sudo visudo命令

    1.简介

          su 是switch user的缩写,可以临时修改当前的用户环境切换到另一个用户中去,这样不会改变其工作目录,只是将环境变量做客相应的改变。

          sudo 用于指定某个用户在某台主机上可以执行某些命令.sudo可以让用户以其他的身份来执行指定的命令,默认的身份为root.在/etc/sudoers中设定了可执行sudo命令的用户.该文件需要用专门的命令

          visudo 用于修改文件

    2. 格式及常用选项

    su 的格式

    su [option]... [-] [USER [ARG]...]

    su的常用选项

    -c 切换的用户执行完命令后就回复现在的用户身份。

    -    改变身份的同时,也改变工作目录

    空 改变身份,但是不改变工作目录

    -f , –fast:不必读启动文件(如csh.cshrc 等),仅用于csh或tcsh两种Shell。

      -l , –login:加了这个参数之后,就好像是重新登陆一样,大部分环境变量(例如HOME、SHELL和USER等)都是以该使用者(USER)为主,并且工作目录也会改变。如果没有指定USER,缺省情况是root。

      -m, -p ,–preserve-environment:执行su时不改变环境变数。

      -c command:变更账号为USER的使用者,并执行指令(command)后再变回原来使用者。

      –help 显示说明文件

      –version 显示版本资讯

      USER:欲变更的使用者账号,

      ARG: 传入新的Shell参数。

    在/etc/sudoers中定义sudo语句的语法格式为:
    who  where = (who)  what 解释为
    谁,可以在那些主机上以谁的身份,执行什么命令.
    例:tom 192.168.0.1=(root) /usr/bin/useradd,...,...,

     其中who,where,(who),what分别可以定义为一个组.分别叫做用户组,主机组,身份组和命令组.他们的语法格式为.
     关键字    组名(全部大写) = 组内成员,组内成员,.....
     
     定义用户组
     User_Alias      USERGNAME = USERNAME,USERNAME
        其中SUERNAME接受的表示方式为:a、用户名
                                      b、%groupname 系统用户组名
                                      c、+netgroup  net组
                                      d、otheruser_alias 其它组。
                                     
    定义主机组
     Host_Alias      HOSTGNAME = HOSTIP,..,.....
       HOSTIP接受的表示方式为:a、HOSTNAME   主机名
                               b、IP_ADDR    IP地址
                               c、NETWORK(/NETMASK) 网络地址
                               d、OTHERHOSTGNAME   其他主机组
                              
    定义运行身份
       Runas_Alias   RUNGNAME = RUNUSERNAME
       RUNSUERNAME接受的表示方式为:a、#uid  uid
                                    b、%group 以系统组的身份
                                    c、ALL  以所有人的身份
    定义命令组
       Cmmd_Alias    CMMGDNAME  = COMMAD,COMMAD...
        COMMAD接受的命令格式为:a、/dir/to/commd   命令的全路径
                                b、/dir/to/commd ARG  加参数
                                c、/dir        整个目录中的命令
        命令组中可以用PASSWD,NOPASSWD,!
        其中PASSWD表示该标签以后所有命令用sudo执行时输入密码。
            NOPASSWD表示该标签以后的所有命令不用输入命令
            “!”表示不能执行该条命令
    在sudoers中有其语法格式和样例。可以用#man sudoers查看 

    sudo的常用选项

    -l显示出自己(执行sudo的使用者)的权限

      -v因为sudo在第一次执行时或是在N分钟内没有执行(N预设为五)会问密码,这个参数是重新做一次确认,如果超过N分钟,也会问密码

      -k将会强迫使用者在下一次执行sudo时问密码(不论有没有超过N分钟)

      -b将要执行的指令放在背景执行

      -pprompt可以更改问密码的提示语,其中%u会代换为使用者的帐号名称,%h会显示主机名称

      -uusername/#uid不加此参数,代表要以root的身份执行指令,而加了此参数,可以以username的身份执行指令(#uid为该username的使用者号码)

      -s执行环境变数中的SHELL所指定的shell,或是/etc/passwd里所指定的shell

      -H将环境变数中的HOME(家目录)指定为要变更身份的使用者家目录(如不加-u参数就是系统管理者root)

    3.su 和 sudo 的区别

    su用于用户之间的切换

    sudo 用于用户能够使用root权限执行指定的命令。。

  • 相关阅读:
    [视频教程] 如何在docker环境下的纯净ubuntu系统中安装最新版nginx
    [视频教程] 如何在Linux深度系统deepin下安装docker
    某业务自助开通账户问题排查
    将博客搬至CSDN
    某业务付费统计脚本问题排查
    [PHP] 存储改造中的逻辑和清理遗留的问题
    [PHP] 运维新增服务器导致的附件上传失败问题
    [PHP] 近期接手現有的企邮前端框架业务所遇困难
    [Linux] 编写Dockerfile文件自动构建镜像
    [PHP] 持续交付Jenkins安装
  • 原文地址:https://www.cnblogs.com/hanjiali/p/13940319.html
Copyright © 2011-2022 走看看