linux命令:sudo浅谈

简介:

sudo命令简介:

     使得某一个用户作为另一个用户执行命令  

1.配置文件为:/etc/sudoers

     配置文件格式:  

格式:      who    which_hosts=(runas) command      

   who:表示哪一个用户        which_hosts:哪一个主机  

   runas:以什么用户身份执行    command:执行什么命令 

查看sudo相关执行的日志文件为:/var/log/secure


对于多个用户,登陆多台服务器,以多个身份执行,多个命令,需定义别名: 

    who:User_Alias   用户别名

    which_hosts:Host_Alias   主机别名

    runas:Runas_Alias  以什么用户身别名  

    command:Cmnd_Alias  命令别名       

别名必须全部并且只能使用大写英文字母的组合:

 用户别名定义格式:

  User_Alias USERADMIN = 系统用户名,%组名,还可以包含其它已经定义的用户别名

用户别名:可以包含:系统用户名,组名(格式:%组名),其它已定义的用户别名 中间以,隔开


 主机别名定义格式:

  Host_Alias HOSTADMIN = 主机名,ip地址,网络地址段,其它已定义的主机别名

 

 Runas_Alias别名格式:

  Runas_Alias RUNASNAME = 用户名,%组名,其它的已定义的Runas别名

 

 Cmnd_Alias命令别名格式:

  Cmnd_Alias COMMANDNAME = 命令路径,目录(此目录内的所有命令),其它事先定义过的命令别名

Usage:使得hadoop用户可以执行所有主机的useradd usermod命令

vim /etc/sudoers  编辑sudo配置文档,在最后一行添加以下内容:

 hadoop ALL=(root) /usr/sbin/useradd,/usr/sbin/usermod

2.命令功能:

 使得某一个用户作为另一个用户执行某台主机上的命令  

3.命令参数:

   -l:列出当前用户可以使用的所有sudo类命令

   -k:让认证信息失效 (默认sudo会记住密码5分钟)

   添加标签: NOPASSWD:   PASSWD:

4.命令实例:

1、使得hadoop用户可以执行所有主机的useradd usermod命令

 vim /etc/sudoers  编辑sudo配置文档,在最后一行添加以下内容:

 hadoop ALL=(root) NOPASSWD: /usr/sbin/useradd,/usr/sbin/usermod 

  NOPASSWD: 表示标签后的所有命令都不需要用密码

 hadoop ALL=(root) NOPASSWD: /usr/sbin/useradd, PASSWD: /usr/sbin/usermod

  PASSWD:表示需要用密码,


   2、使用别名方式启用sudoers配置文件

     vim /etc/sudoers

 User_Alias USERADMIN = hadoop,%hadoop,%useradmin #表示hadoop用户,hadoop组,useradmin组

 Cmnd_Alias USERADMINCMND = /usr/sbin/useradd,/usr/sbin/usermod,/user/bin/passwd [A-Za-z]*,! /usr/bin/passwd root #命令别名,表示可以通过sudo执行useradd usermod /user/bin/passwd [A-Za-z]* 表示执行passwd命令后面必须带至少一个字母  !/usr/bin/passwd root 表示不能执行passwd root 命令(!为取反)修改root用户密码


  USERADMIN    ALL=(root) NOPASSWD: USERADMINCMND

 

[john@localhost root]$ sudo /usr/sbin/passwd root

口令:

john is not in the sudoers file.  This incident will be reported.



[john@localhost ~]$ sudo /usr/bin/passwd

Sorry, user john is not allowed to execute '/usr/bin/passwd' as root on localhost.localdomain.

[john@localhost ~]$ sudo /usr/bin/passwd donggen

Changing password for user donggen.

New UNIX password: 

BAD PASSWORD: it is WAY too short

Retype new UNIX password: 

passwd: all authentication tokens updated successfully.



  

    

  







本文转自wang650108151CTO博客,原文链接:http://blog.51cto.com/woyaoxuelinux/1887356 ,如需转载请自行联系原作者




相关文章
|
7天前
|
Linux
Linux系统之whereis命令的基本使用
Linux系统之whereis命令的基本使用
50 23
Linux系统之whereis命令的基本使用
|
21天前
|
网络协议 Unix Linux
深入解析:Linux网络配置工具ifconfig与ip命令的全面对比
虽然 `ifconfig`作为一个经典的网络配置工具,简单易用,但其功能已经不能满足现代网络配置的需求。相比之下,`ip`命令不仅功能全面,而且提供了一致且简洁的语法,适用于各种网络配置场景。因此,在实际使用中,推荐逐步过渡到 `ip`命令,以更好地适应现代网络管理需求。
34 11
|
2月前
|
Linux Shell
Linux 10 个“who”命令示例
Linux 10 个“who”命令示例
100 14
Linux 10 个“who”命令示例
|
2月前
|
Ubuntu Linux
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
203 20
|
2月前
|
Linux
linux查看目录下的文件夹命令,find查找某个目录,但是不包括这个目录本身?
通过本文的介绍,您应该对如何在 Linux 系统中查看目录下的文件夹以及使用 `find` 命令查找特定目录内容并排除该目录本身有了清晰的理解。掌握这些命令和技巧,可以大大提高日常文件管理和查找操作的效率。 在实际应用中,灵活使用这些命令和参数,可以帮助您快速定位和管理文件和目录,满足各种复杂的文件系统操作需求。
143 8
|
2月前
|
网络协议 Linux 应用服务中间件
kali的常用命令汇总Linux
kali的常用命令汇总linux
128 7
|
3月前
|
Linux 数据库
Linux中第一次使用locate命令报错?????
在Linux CentOS7系统中,使用`locate`命令时出现“command not found”错误,原因是缺少`mlocate`包。解决方法是通过`yum install mlocate -y`或`apt-get install mlocate`安装该包,并执行`updatedb`更新数据库以解决后续的“can not stat”错误。
61 9
|
3月前
|
监控 网络协议 Linux
Linux netstat 命令详解
Linux netstat 命令详解
|
3月前
|
运维 监控 网络协议
运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面
本文介绍了运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面,旨在帮助读者提高工作效率。从基本的文件查看与编辑,到高级的网络配置与安全管理,这些命令是运维工作中的必备工具。
290 3
|
3月前
|
Linux
在 Linux 系统中,`find` 命令
在 Linux 系统中,`find` 命令
57 1