当前位置: > Linux命令 >

sudo命令详解

时间:2020-03-12 13:27来源:linux.it.net.cn 作者:IT
1、初识sudo
  sudo是linux下常用的允许普通用户使用超级用户权限的工具,允许系统管理员让普通用户执行一些或者全部的root命令,如halt,reboot,shutdown、init等等。这样不仅减少了root用户的登陆和管理时间,同样也提高了安全性。sudo是对Shell的一个代替,它是面向每个命令的。
  它的特性主要有这样几点:
  ① sudo能够限制用户只在某台主机上运行某些命令。
  ② sudo提供了丰富的日志,详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志服务器。
  ③ sudo使用时间戳文件——日志来执行类似的“检票”系统。当用户调用sudo并且输入他的密码时,用户获得了一张存活期为5分钟的票(这个值可以在/etc/sudoers设置)。
  ④ sudo的配置文件是/etc/sudores,属性必须为0440,它允许系统管理员集中地管理用户的使用权限和使用主机。
 
2、sudo命令用法
命令解释
  sudo — execute a command as another user(以其他用户身份执行命令)
命令语法
  sudo [ -Vhl LvkKsHPSb ] │ [ -p prompt ] [ -c class│- ] [ -a auth_type ] [-u username│#uid ] command
命令选项
选 项 作 用
-V 显示版本编号
-h 显示版本编号及指令的使用方式说明
-l 显示出自己(执行 sudo 的使用者)的权限
-v 因为 sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过 N 分钟,也会问密码
-k 将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟)
-b 将要执行的指令放在背景执行
-p prompt 可以更改问密码的提示语,其中 %u 会代换为使用者的帐号名称, %h 会显示主机名称
-u username/#uid 不加此参数,代表要以 root 的身份执行指令,而加了此参数,可以以 username 的身份执行指令(#uid 为该 username 的使用者号码)
-s 执行环境变数中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell
-H 将环境变数中的 HOME (家目录)指定为要变更身份的使用者家目录(如不加 -u 参数就是系统管理者 root )
command 要以系统管理者身份(或以 -u 更改为其他人)执行的指令
实例
  ① 查看版本信息
[tom@localhost ~]$ sudo -V
Sudo 版本 1.8.23
Sudoers 策略插件版本 1.8.23
Sudoers 文件语法版本 46
Sudoers I/O plugin version 1.8.23

 
  ② 列出当前用户权限
 
[tom@localhost /]$ sudo -l
匹配 %2$s 上 %1$s 的默认条目:
    !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS
    DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS
    LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY
    LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET
    XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
 
用户 tom 可以在 localhost 上运行以下命令:
    (root) /sbin/useradd
 
  ③ 以root身份使用useradd命令创建cat用户
 
[tom@localhost /]$ sudo -u root useradd cat


 
3、如何编辑配置文件呢?
  编辑sudo的配置文件/etc/sudoers一般不直接使用vi(vi /etc/sudoers)去编辑,因为sudoers配置有一定的语法,直接用vi编辑保存系统不会检查语法,如果有错也会保存从而导致sudo工具无法使用,最好使用visudo命令去配置。虽然visudo也是调用vi去编辑,但是保存时会进行语法检查,有错误会给出提示。
 
  接下来,我们以一个栗子来教会大家该如何配置:
 
//创建tom用户,并为其创建密码
[root@localhost ~]# useradd tom
[root@localhost ~]# echo "123456" | passwd --stdin tom
更改用户 tom 的密码 。
passwd:所有的身份验证令牌已经成功更新。
 
//使用visudo打开配置文件
[root@localhost ~]# visudo
 
//文件中字段很多,我们需要做更改的地方在这里
## Allow root to run any commands anywhere    
root    ALL=(ALL)       ALL
...
//root 表示用户名,如果是用户组,可以写成"%group_name"
//第一个ALL:代表可以执行sudo命令的主机(ALL表示任何主机)
//第二个ALL:代表可以执行sudo命令的时候以哪个用户的身份执行(ALL表示root用户)
//第三个ALL:代表可以sudo可以执行的命令,多个命令可以用","分隔(ALL表示所有命令)
 
//为tom用户添加在任何主机上以root用户身份使用useradd命令的权限
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
tom     ALL=(root)      /sbin/useradd    //可以使用 which 命令查看命令的二进制可执行文件位置
 
[root@localhost ~]# su - tom    //切换到tom用户
[tom@localhost ~]$ sudo -l    //查看tom用户拥有的特殊权限
 
我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:
 
    #1) 尊重别人的隐私。
    #2) 输入前要先考虑(后果和风险)。
    #3) 权力越大,责任越大。
 
[sudo] tom 的密码:
匹配 %2$s 上 %1$s 的默认条目:
    !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin,
    env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS",
    env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE",
    env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES",
    env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE",
    env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
    secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
 
用户 tom 可以在 localhost 上运行以下命令:
    `(root) /sbin/useradd`    //这里说明我们以及添加成功了
 
[tom@localhost ~]$ sudo useradd jerry    //我们以添加一个jerry用户为例作为测试
[tom@localhost ~]$ tail -1 /etc/passwd    //验证/etc/passwd文件是否添加成功
jerry:x:4003:4003::/home/jerry:/bin/bash
 
[root@localhost ~]# tail /var/log/secure    //查看安全日志
Mar 10 22:12:25 localhost sudo:     tom : TTY=pts/0 ; PWD=/home/tom ; USER=root ; COMMAND=/sbin/user         add jerry    //使用tom用户以root身份使用useradd命令创建jerry用户的记录
 
 



(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容