码迷,mamicode.com
首页 > 系统相关 > 详细

Linux-sudo详解

时间:2015-07-11 06:46:08      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:linux   alias   sudo   

晚上没事干,翻看自己以前的笔记,将关于sudo的笔记稍作整理,记录下来。

sudo可以以另外一个用户的身份通过某个主机执行某些命令,但是不需要切换到该用户(有点类似于suid),仅仅可以执行指定的命令(一般来讲都是以root身份来执行一些管理类的命令)。

sudo的配置文件/etc/sudoers,该文件只有root用户和root组可查看:

技术分享

该文件可以直接vim编辑,但不建议这么做,因为vim不会检查该文件的语法错误,若语法有错,则有可能造成系统级别的问题。推荐是visudo命令进行编辑。

语法格式:谁可以通过哪些主机连接进来以谁的身份执行哪些命令

who   which_host=(runas)     command

who:可以使用用户别名,将某些用户定义到一个组中统一管理

which_host:可以使用主机别名,将某些主机定义到一个组中统一管理

runas:runas_alias

commad: cmnd_alis,可以使用命令别名,将某些命令定义到一个组中统一管理


sudo的别名机制,别名的名字全部且只能使用大写字母,man sudoers查看关于别名的定义。

用户别名,可以包含用户的用户名,组名(%组名),还可以包含其他已经定义好的用户别名(!可以取反 !test  除了test用户之外)

技术分享


主机别名:可以包含主机名,IP地址,网络地址或者是其他定义好的主机别名

技术分享

命令别名:命令要使用绝对路径,此目录内的所有命令,或者其他定义好的命令别名

技术分享

runas别名:用户名,%组名,其他定义好的runas别名

技术分享


sudo具体设置:

如:管理员可以通过任何主机以任何用户的身份执行所有命令

技术分享

定义jack2用户可以通过所有主机以root用户执行useradd,usermod命令

技术分享

sudo默认情况在用户第一次输入密码后,5分钟之内不需要再次输入密码,sudo -k命令可以清除密码缓存,让此前输入的认证信息失效:

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

sudo -k 让认证信息失效

sudo也可以定义用户不需要输入密码,即可执行命令,在命令之前加入NOPASSWD即可

技术分享

上面方式表名执行useraddusermod都不需要密码,如果现在需要执行useradd不需要密码但执行usermod需要输入密码,则需要以下定义

技术分享

使用别名:

技术分享


/var/log/secure记录所有sudo 相关操作的所有日志

技术分享


本文出自 “diannaowa” 博客,请务必保留此出处http://diannaowa.blog.51cto.com/3219919/1673089

Linux-sudo详解

标签:linux   alias   sudo   

原文地址:http://diannaowa.blog.51cto.com/3219919/1673089

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!