Linux之sudo

Linux之sudo

一、sudo简介

sudo是unix/linux平台上的一个非常有用的工具,它允许系统管理员分配给普通用户一些合理的权力,让他们执行一些只有超级用户或其他特许用户才能完成的任务,比如:运行一些像restart,reboot,passwd之类的命令,或者编辑一些系统配置文件,这样不仅减少了用户登录次数和管理时间,也提高了系统安全性。

sudo的特点:限制用户只在某台主机上运行某些命令、详细地记录了每个用户干了什么,能够将日志传到中心主机或者日志服务器、管理员提供配置文件,允许系统管理员集中地管理用户的使用权限和使用的主机(默认存放位置是/etc/sudoers)、使用时间戳文件来完成类似“检票”的系统(如:当用户调用sudo并且输入它的密码时,用户获得了一张存活期5分钟的票)

二、sudo常见用法:

-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 )

三、sudo配置文件/etc/sudoers常用的一些参数说明

查看操作系统已安装sudo

# rpm -qa|grep sudo

sudo-1.8.6p3-19.el6.x86_64

#visudo //编辑该文件

## Allow root to run any commands anywhere

root    ALL=(ALL)       ALL

## Allows people in group wheel to run all commands

# %wheel        ALL=(ALL)       ALL

## Allows people in group wheel to run all commands without a password

# %wheel        ALL=(ALL)       NOPASSWD: ALL

## Allows members of the users group to mount and unmount the

## cdrom as root

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

说明:

root    ALL=(ALL) ALL

root表示被授权的用户,这里是根用户;

第一个ALL表示所有计算机;

第二个ALL表示所有用户;

第三个ALL表示所有命令;

通用格式

user  host run_as  command

user:一位或几位用户,在/etc/group中可以用一个%代替它,组对象的名称一定要用百分号%开头

host:一个或几个主机名

run_as:作为哪个用户运行,常见选项是root和ALL

command:想让用户或组运行的一个或几个根级别命令

如:centos   ALL=(ALL)   useradd,userdel

注:授权centos用户在所有计算机上以root身份运行useradd,userdel命令

注:切换用户,用sudo执行命令时必须重新输入普通用户的密码

让部分用户或者部分主机、已某些特定用户(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 ,!command4

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

例子:让普通用户centos只能在服务器192.168.2.6;192.168.2.7上,执行root能执行命令删除、修改密码,查看服务等

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

# 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.2.6, 192.168.2.7  //允许执行的主机

# User alias specification

# Cmnd alias specification

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

Cmnd_Alias      ADMPW = /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd, !/usr/bin/passwd root

# Defaults specification

# User privilege specification

root    ALL=(ALL) ALL

centos EPG=(ALL) NOPASSWD: SQUID   //root权限,不需要密码验证

centos EPG=(ALL) NOPASSWD: ADMPW

# 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、授权centos用户可以运行fdisk命令完成磁盘管理,以及使用mkfs或mke2fs实现文件系统管理;

2、授权gentoo用户可以运行逻辑卷管理的相关命令

1).新建用户centos,gentoo密码分别为centos、gentoo

2).修改/etc/sudoers配置文件

Cmnd_Alias SYDCMD=/sbin/fdisk,/sbin/mkfs,/sbin/mke2fs

Cmnd_Alias LVCMD=/sbin/lv*

root    ALL=(ALL) ALL

centos ALL=(root) NOPASSWD: SYDCMD

gentoo ALL=(root) NOPASSWD: LVCMD

3).验证

时间: 2024-08-01 22:47:02

Linux之sudo的相关文章

《linux下sudo服务的使用》RHEL6

/bin/ 下放的二进制文件命令都是普通用户可以使用的 Sbin 下放的二进制文件命令都是超级用户root可以使用的   普通用户也想使用Sbin下的文件可以通过sudo来实现: 默认普通用户是不可以使用的: 提示:没有足够大的权限   配置单个用户对某个命令或服务具有使用权 系统默认速冻软件包已经安装可以查看下: 执行 [[email protected] ~]# visudo来生成sudo配置文件.   在文件中添加: 注:赋予redhat用户在本地用户可以使用chkconfig命令,可以写

Linux中sudo配置

Linux下的sudo及其配置文件/etc/sudoers的详细配置. 1.sudo介绍 sudo是linux下常用的允许普通用户使用超级用户权限的工具,允许系统管理员让普通用户执行一些或者全部的root命令,如halt,reboot,su等等.这样不仅减少了root用户的登陆 和管理时间,同样也提高了安全性.Sudo不是对shell的一个代替,它是面向每个命令的.它的特性主要有这样几点: § sudo能够限制用户只在某台主机上运行某些命令. § sudo提供了丰富的日志,详细地记录了每个用户干

linux su,sudo命令

linux su 命令 建议大家切换用户的时候 使用 su - root 这样,否则可能发现某些命令执行不了 关于su .su - 及 sudo的区别 请往下看 1.命令作用 su的作用是变更为其它使用者的身份,超级用户除外,需要键入该使用者的密码. 2.使用方式 su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]] 3.参数说明 -f , –fast:不必读启动文件(如 csh.cshrc 等),仅用于c

Linux 的sudo 和 su

Linux学习笔记之--su.sudo命令使用及区别 摘要:主要对su.sudo命令的功能进行介绍和两者之间的区别.以及使用方式 一:两者之间的区别 su用于用户之间的切换. sudo用于普通用户可以使用root权限来执行指定命令. 二:su.sudo命令介绍 1.su a) su简介 su用于用户之间的切换.但是前面的用户依然保持在登录状态.这种切换如果超级权限用户root向普通或虚拟用户切换不需要密码,而普通用户切换到其它任何用户都需要密码验证. b) su用法 su在不加任何参数,默认为切

Linux su sudo(切换用户)

命令su 语法 : su [-] username 后面可以跟 '-' 也可以不跟,普通用户su不加username时就是切换到root用户,当然root用户同样可以su到普通用户. '-' 这个字符的作用是,加上后会初始化当前用户的各种环境变量,关于环境变量这部分内容阿铭放在后面的章节中讲解. 下面阿铭做个简单的实验来说明加与不加 '-' 的区别: [[email protected] ~]$ pwd /home/test [[email protected] ~]$ su 密码: [[ema

linux下sudo命令[转]

一.sudo简介:    1.概念: sudo是linux下常用的允许普通用户使用超级用户权限的工具,允许系统管理员让普通用户执行一些或者全部的root命令,如halt,reboot,su等等.这样不仅减少了root用户的登陆和管理时间,同样也提高了安全性.Sudo不是对shell的一个代替,它是面向每个命令的. 它的特性主要有这样几点: 1.sudo能够限制用户只在某台主机上运行某些命令. 2.sudo提供了丰富的日志,详细地记录了每个用户干了什么.它能够将日志传到中心主机或者日志服务器. 3

Linux中sudo的用法

在linux中的用户只有2种:root和非root.而非root即普通用户的权限非常低,基本处理自己的home目录,其他好多地方连查看的权利也没有,更不要说安装软件了. 为了避免来回切换root,linux加入了sudo命令,即:可以临时切换的root来执行一些系统命令,用完之后,在返回普通用户,这样既避免长期使用root带来的安全风险, 又有效的减少了切换root的频率. 1.sudo命令的配置主配置文件:/etc/sudoers,不过,系统文档推荐的做法,不是直接修改/etc/sudoers

linux中sudo的用法和sudoers配置详解

摘自:http://zxf261.blog.51cto.com/701797/748756 sudo 是linux下常用的允许普通用户使用超级用户权限的工具,允许系统管理员让普通用户执行一些或者全部的root命令,如halt,reboot,su等等.这样不仅减少了root用户的登陆和管理时间,同样也提高了安全性.Sudo不是对shell的一个代替,它是面向每个命令的.它的特性主要有这样几点:1.sudo能够限制用户只在某台主机上运行某些命令.2.sudo提供了丰富的日志,详细地记录了每个用户干了

关于linux系统sudo权限管理的相关问题

本人初学linux运维,在观看oldboy视频教程后,对学习到的知识进行总结,知识内容均出自oldboy视频教程. ######################################################################################### linux系统中,只有root用户才能添加和删除用户,而在工作中,假如有很多个运维工程师作为普通用户,我们希望一部分的普通用户可以实现只有在root用户下才能实现的操作,但不是能干所有root用能干的事儿