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 ,如需转载请自行联系原作者




相关文章
|
2月前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
381 1
二、Linux文本处理与文件操作核心命令
|
2月前
|
Linux
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
282 137
|
2月前
|
安全 Ubuntu Unix
一、初识 Linux 与基本命令
玩转Linux命令行,就像探索一座新城市。首先要熟悉它的“地图”,也就是/根目录下/etc(放配置)、/home(住家)这些核心区域。然后掌握几个“生存口令”:用ls看周围,cd去别处,mkdir建新房,cp/mv搬东西,再用cat或tail看文件内容。最后,别忘了随时按Tab键,它能帮你自动补全命令和路径,是提高效率的第一神器。
639 57
|
1月前
|
存储 安全 Linux
Linux卡在emergency mode怎么办?xfs_repair 命令轻松解决
Linux虚拟机遇紧急模式?别慌!多因磁盘挂载失败。本文教你通过日志定位问题,用`xfs_repair`等工具修复文件系统,三步快速恢复。掌握查日志、修磁盘、验重启,轻松应对紧急模式,保障系统稳定运行。
335 2
|
2月前
|
缓存 监控 Linux
Linux内存问题排查命令详解
Linux服务器卡顿?可能是内存问题。掌握free、vmstat、sar三大命令,快速排查内存使用情况。free查看实时内存,vmstat诊断系统整体性能瓶颈,sar实现长期监控,三者结合,高效定位并解决内存问题。
214 0
Linux内存问题排查命令详解
|
2月前
|
Unix Linux 程序员
Linux文本搜索工具grep命令使用指南
以上就是对Linux环境下强大工具 `grep` 的基础到进阶功能介绍。它不仅能够执行简单文字查询任务还能够处理复杂文字处理任务,并且支持强大而灵活地正则表达规范来增加查询精度与效率。无论您是程序员、数据分析师还是系统管理员,在日常工作中熟练运用该命令都将极大提升您处理和分析数据效率。
232 16
|
3月前
|
Linux 网络安全 开发工具
技术栈:这50条最常用的 Linux 命令你一定要会!
建议多在终端中实践,遇到不懂的命令就用 man 或 --help 了解详情!
496 0
|
3月前
|
安全 Linux Shell
Linux系统中sudo命令的高效运用技巧。
用户可以通过sudo -l来列出自己目前可执行的命令列表,这有助于用户了解自己的权限范围。
171 0
|
3月前
|
监控 Linux Shell
linux命令
常用 Linux 命令汇总
|
4月前
|
Linux C++
每天一个linux命令(8):cp 命令
cp 命令是 Linux 中用于复制文件或目录的命令。它的名字来源于英文单词 copy。这个命令非常常用,特别是在需要备份文件或创建文件副本时。
236 0