sudo命令简介

1.sudo介绍

sudo是linux下常用的允许普通用户使用超级用户权限的工具,允许系统管理员让普通用户执行一些或者全部的root命令,如halt,reboot,su等等。这样不仅减少了root用户的登陆 和管理时间,同样也提高了安全性。Sudo不是对shell的一个代替,它是面向每个命令的。它的特性主要有这样几点:

  § sudo能够限制用户只在某台主机上运行某些命令。

  § sudo提供了丰富的日志,详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志服务器。

  § sudo使用时间戳文件来执行类似的“检票”系统。当用户调用sudo并且输入它的密码时,用户获得了一张存活期为5分钟的票(这个值可以在编译的时候改变)。

  § sudo的配置文件是sudoers文件,它允许系统管理员集中的管理用户的使用权限和使用的主机。它所存放的位置默认是在/etc/sudoers,属性必须为0411。

2.配置文件/etc/sudoers

它的主要配置文件是sudoers,linux下通常在/etc目录下,如果是solaris,缺省不装sudo的,编译安装后通常在安装目录的 etc目录下,不过不管sudoers文件在哪儿,
sudo都提供了一个编辑该文件的命令:visudo来对该文件进行修改。
强烈推荐使用该命令修改 sudoers,因为它会帮你校验文件配置是否正确,如果不正确,在保存退出时就会提示你哪段配置出错的。

言归正传,下面介绍如何配置sudoers

首先写sudoers的缺省配置:

#############################################################

# sudoers file.

#

# This file MUST be edited with the ‘visudo‘ command as root. 

#

# See the sudoers man page for the details on how to write a sudoers file.

#

# Host alias specification

# User alias specification

# Cmnd alias specification

# Defaults specification

# User privilege specification

root    ALL=(ALL) ALL

# Uncomment to allow people in group wheel to run all commands

# %wheel        ALL=(ALL)       ALL

# Same thing without a password

# %wheel        ALL=(ALL)       NOPASSWD: ALL

# Samples

# %users  ALL=/sbin/mount /cdrom,/sbin/umount /cdrom

# %users  localhost=/sbin/shutdown -h now

##################################################################

1. 最简单的配置,让普通用户support具有root的所有权限

执行visudo之后,可以看见缺省只有一条配置:

root    ALL=(ALL) ALL

那么你就在下边再加一条配置:

support ALL=(ALL) ALL

这样,普通用户support就能够执行root权限的所有命令

以support用户登录之后,执行:

sudo su -

然后输入support用户自己的密码,就可以切换成root用户了

2. 让普通用户support只能在某几台服务器上,执行root能执行的某些命令

首先需要配置一些Alias,这样在下面配置权限时,会方便一些,不用写大段大段的配置。Alias主要分成4种

Host_Alias

Cmnd_Alias

User_Alias

Runas_Alias

1) 配置Host_Alias:就是主机的列表

Host_Alias      HOST_FLAG = hostname1, hostname2, hostname3

2) 配置Cmnd_Alias:就是允许执行的命令的列表

Cmnd_Alias      COMMAND_FLAG = command1, command2, command3

3) 配置User_Alias:就是具有sudo权限的用户的列表

User_Alias USER_FLAG = user1, user2, user3

4) 配置Runas_Alias:就是用户以什么身份执行(例如root,或者oracle)的列表

Runas_Alias RUNAS_FLAG = operator1, operator2, operator3

5) 配置权限

配置权限的格式如下:

USER_FLAG HOST_FLAG=(RUNAS_FLAG) COMMAND_FLAG

如果不需要密码验证的话,则按照这样的格式来配置

USER_FLAG HOST_FLAG=(RUNAS_FLAG) NOPASSWD: COMMAND_FLAG

配置示例:

############################################################################

# sudoers file.

#

# This file MUST be edited with the ‘visudo‘ command as root.

#

# See the sudoers man page for the details on how to write a sudoers file.

#

# Host alias specification

Host_Alias      EPG = 192.168.1.1, 192.168.1.2

# User alias specification

# Cmnd alias specification

Cmnd_Alias      SQUID = /opt/vtbin/squid_refresh, /sbin/service, /bin/rm

# Defaults specification

# User privilege specification

root    ALL=(ALL) ALL

support EPG=(ALL) NOPASSWD: SQUID

# Uncomment to allow people in group wheel to run all commands

# %wheel        ALL=(ALL)       ALL

# Same thing without a password

# %wheel        ALL=(ALL)       NOPASSWD: ALL

# Samples

# %users  ALL=/sbin/mount /cdrom,/sbin/umount /cdrom

# %users  localhost=/sbin/shutdown -h now

时间: 2024-08-04 05:00:02

sudo命令简介的相关文章

su和sudo命令简介

一.su命令简介及用法 1.su命令简介 su用于用户之间的切换.但是前面的用户依然保持在登录状态.这种切换如果超级权限用户root向普通或虚拟用户切换不需要密码,而普通用户切换到其它任何用户都需要密码验证. 2.常用用法说明 普通用户在使用su命令时不加参数及使用参数-所带来的结果是有区别的: su在不加任何参数,默认为切换到root用户,这里需要输入root用户的密码,但没有转到root用户家目录下,也就是说这时虽然是切换为root用户了,但并没有改变为root登录环境: su 加参数 -

sudo命令:解决使用Linux命令行时出现的错误提示

你在使用 Linux 命令行时曾经得到过"拒绝访问(Permission denied)"的错误提示吗?这可能是因为你正在尝试执行一个需要 root 权限的操作.例如,下面的截图展示了当我尝试复制一个二进制文件到一个系统目录时产生的错误. shell 的拒绝访问 那么该怎么解决这个错误?很简单,使用 sudo 命令. 用 sudo 运行命令 用户运行此命令后会被提示输入他们(自己)的登录密码.一旦输入了正确的密码,操作将会成功执行. 毫无疑问,sudo 是任何在 Linux 上使用命令

[docker] 02 CentOS安装docker(包含失败),安装命令简介,以及docker核心概念

主要内容: 一.安装docker(包含卸载重新安装) 二.配置docker服务 三.安装命令简介 四.docker核心概念 一.安装docker 1.1. 通过uname -r查看系统版本,为什么要查看系统版本呢?因为docker对CentOS有以下要求: a. CentOS 7及以后的版本 b. 64位操作系统 c. 内核版本至少3.10 1.2. 支持devicemapper存储类型 sudo yum update sudo yum install -y device-mapper-pers

Linux操作系统下的Sudo命令

查看.修改或者执行某些命令需要root用户的权限,如果不想直接切换到root用户,就可以使用sudo命令.sudo命令用于针对单个命令授予临时权限.sudo仅在需要时授予用户权限,减少了用户因为错误执行命令损坏系统的可能性.使用方法是在原有命令之前加上sudo+空格.用法示例:以root用户的身份修改主机名为zhidao$ sudo hostname zhidao

3.7 su命令 3.8 sudo命令 3.9 限制root远程登录

3.7 su命令 3.8 sudo命令 3.9 限制root远程登录 3.7 su命令 su aming su - aming 切换用户的时候要加上 su - 这样才切换的彻底 切换到user5下面 因为之前 user5 的用户被锁定了 在切换到root下 更改下user5 的密码 但是前缀显示 -bash-4.5  是因为user5 用户没有家目录 先查看变user5的 所属主 所属组 退出aming 进入root用户 创建一个 目录 但是这样 前缀还是一样,是因为 /home/user5/

sudo命令

某个用户能够以另外一个用户的身份通过哪些主机执行什么命令 1,文件在/etc/sudoers 打开的命令是:visudo 一个sudo条目:who which_hosts=(runas) commands 别名必须全部而且只能使用 大写英文字母的组合 用户别名:User_Alias USERRADMIN= 用户的用户名 组名:使用%引导 还可以包含其他已经用户别名 Host_Alias 主机名 IP 网络地址 其他主机别名Runas_Alias: 用户名 %组名 其它的Runas别名Cmnd_A

使用sudo命令

1.Centos7 默认所有用户都不可以使用sudo,我希望让经理组中的用户可以使用sudo命令,并且使用sudo命令不需要输入密码. Visudo –f /etc/sudoers %jingli   ALL=(ALL)          NOPASSWD: ALL

sudo命令詳解

1.sudo命令功能:控制指定用戶 通過哪些遠程主機 以哪個用戶身份 执行哪些命令 sudo配置文件在/etc/sudoers /etc/sudoers:輸寫格式 誰 通過遠程主機=(以誰的身份) 執行這些命令 例如:root ALL=(ALL) ALL root用戶通過任意遠程主機以所有用戶身份執行所有命令 注意:man sudoers 可查看详细的输写格式 2.別名定義:別名取名必須全部使用大寫字母,當后面有多個,用逗號隔開 别名之间可以嵌套. 用户别名     User_Alias    

[转]linux sudo 命令

转自:http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/11/11/2245341.html “Sudo”是Unix/Linux平台上的一个非常有用的工具,它允许系统管理员分配给普通用户一些合理的“权利”,让他们执行一些只有超级用户或其他 特许用户才能完成的任务,比如:运行一些像mount,halt,su之类的命令,或者编辑一些系统配置文件,像/etc/mtab,/etc /samba/smb.conf等.这样以来,就不仅减少了root