首页 > 代码库 > sudo命令

sudo命令

su命令

  switch user的缩写, 意为切换至指定用户执行命令

常用选项

  -c<指令>或--command=<指令>:执行完指定的指令后,即恢复原来的身份;

  -f或——fast:适用于csh与tsch,使shell不用去读取启动文件;

  -l或——login:改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,logname。此外,也会变更PATH变量;

  -m,-p或--preserve-environment:变更身份时,不要变更环境变量;

  -s或--shell=:指定要执行的shell; --help:显示帮助; --version;显示版本信息。

示例

1.切换至root用户,创建user1用户

[centos@localhost root]$useradd user1          # 使用centos用户创建用户失败
bash: /usr/sbin/useradd: Permission denied   
[centos@localhost root]$su -c useradd user1‘  # 切换至root用户下,创建用户
Password:                       # 输入root用户的密码
[centos@localhost root]$tail -2 /etc/passwd    # 确认是否创建成功
centos:x:1001:1001::/home/centos:/bin/bash
user1:x:1002:1002::/home/user1:/bin/bash

2.切换至root用户

[centos@localhost root]$su -              # 切换至root用户, - 表示改变工作目录,且重新载入环境变量
Password: 
Last login: Mon Jun 12 18:55:41 CST 2017 on pts/0
Last failed login: Mon Jun 12 19:02:04 CST 2017 on pts/0
There was 1 failed login attempt since the last successful login.
[root@localhost ~]#su centos             # 切换至centos用户

 

sudo命令

  execute a command as another user, 以其他用户身份临时性地执行命令。可以让获得授权的用户以另一个身份(一般为root用户,或者属组为root)执行命令。

  授权文件/etc/sudoers,只能使用visudo命令,编写该文件

常用选项

  -b    以后台进程的方式运行命令

  -g group  以属组为group的身份运行程序

  -h      查看帮助想你想

  -k    让认证文件失效

  -l     显示当前用户能执行的sudo命令

  -u user    以user的身份运行命令

 

授权文件的配置

1.别名配置

A.主机别名

  Host_Alias     FILESERVERS = fs1, fs2

 

B.用户别名

  User_Alias ADMINS = jsmith, mikem

 

C.命令别名

  Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig   

注意:命令必须为二进制文件全路径

2.给用户授权

A.向centos用户授权,可以进行所有操作

    centos   ALL=(ALL)   ALL

  B.wheel组中的用户可以执行所有操作,且不需要输入密码

    %wheel        ALL=(ALL)       NOPASSWD: ALL

  C.允许centos用户,以无密码地方式执行SOFTWARE中的命令

    Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum

    centos  ALL=(ALL)       NOPASSWD: SOFTWARE  

sudo命令