博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
18.8. sudo, sudoedit - execute a command as another user
阅读量:5909 次
发布时间:2019-06-19

本文共 2406 字,大约阅读时间需要 8 分钟。

debian:~# apt-get install sudo

18.8.1. /etc/sudoers

sudo的配置文件是/etc/sudoers,visudo修改时会锁住sudoers文件,保存修改到临时文件,然后检查文件格式,确保正确后才会覆盖sudoers文件. 必须保证sudoers格式正确,否则sudo将无法运行.

/etc/sudoers

# /etc/sudoers## This file MUST be edited with the 'visudo' command as root.## See the man page for details on how to write a sudoers file.#Defaults        env_reset# Host alias specification# User alias specification# Cmnd alias specification# User privilege specificationroot    ALL=(ALL) ALL# Uncomment to allow members of group sudo to not need a password# (Note that later entries override this, so you might need to move# it further down)%sudo ALL=NOPASSWD: ALL

sudo group

neo@debian:/etc/mysql$ cat /etc/group | grep 'sudo'sudo:x:27:neo

18.8.2. /etc/sudoers

visudo调用的默认编辑器是vi,如果要临时使用其他编辑器,在该命令前加上EDITOR环境变量即可.

[root@netkiller ~]# EDITOR=vim visudo

18.8.3. 设置示例

>1 允许neo用户从任何主机登录,以root的身份执行/usr/sbin/useradd命令neo   ALL=(root) /usr/sbin/useradd >2 允许jam用户从任何主机登录,以root的身份无密码使用sudo执行/sbin/iptables -n -t filter -L jam   ALL=(ALL) NOPASSWD: /sbin/iptables -n -t filter -L >3 neo用户从任何主机登录,以root的身份执行自定义命令链里面的命令Cmnd_Alias USERCOMMAND = /sbin/route,/sbin/ifconfig,/bin/ping,/sbin/dhclient,/usr/bin/net,/sbin/iptables,/usr/bin/rfcomm,/usr/bin/wvdial,/sbin/iwconfigneo   ALL=(root)    USERCOMMAND

18.8.4. NOPASSWD

ubuntu NOPASSWD sudo的时候不需要输入密码

%admin ALL=(ALL)ALL改为%admin ALL=(ALL) NOPASSWD: NOPASSWD: ALL

用户

www localhost=NOPASSWD: /bin/cat, /bin/ls

18.8.5. 允许或禁止命令

命令前面加‘!’可以禁止用户运行该命令

neo ALL = (root) /bin/mount, /bin/umount, !/bin/mount /data0dba ALL = /bin/mount /u0[1-5], /bin/umount /u0[1-5]

18.8.6. Cmnd_Alias 用法

Cmnd_Alias 定义命令别名

Cmnd_Alias WEBMASTER = /srv/nginx/sbin/nginx, /srv/php/sbin/php-fpm, !/srv/mysql/bin/mysqlwww localhost = NETWORKING, SERVICES, DELEGATING, PROCESSES, WEBMASTER

自定义用户组(以所有的身份)执行自定义的命令链里的命令

Cmnd_Alias USERCOMMAND = /sbin/route,/sbin/ifconfig,/bin/ping,/usr/sbin/mtr,/bin/traceroute,/usr/bin/top,/bin/df,/usr/bin/free,/usr/bin/du,/bin/ls,/bin/date,/usr/bin/lessUser_Alias    ADMINS = user1, user2ADMINS	ALL=(ALL)	USERCOMMAND

18.8.7. wheel 组

## Allow root to run any commands anywhereroot    ALL=(ALL)       ALLneo     ALL=(ALL)       ALL%wheel  ALL=(ALL)       ALL

18.8.8. 注意事项

1 修改sudo记录密码的时间Defaults:用户名 timestamp_timeout=20eg:Defaults:redhat timestamp_timeout=202 默认sudo命令只能在tty上执行,注释掉下面选项可以使程序调用sudo命令Defaults    requiretty

原文出处:Netkiller 系列 手札

本文作者:陈景峯
转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。

你可能感兴趣的文章
查找(AVL平衡二叉树)
查看>>
POJ2406 Power Strings(KMP)
查看>>
极值问题(acms)
查看>>
SVN Hooks的介绍及使用
查看>>
JAVA核心编程教学
查看>>
APP的广告模式
查看>>
判断一个字符是否为数字的两种方法(C/C++)
查看>>
600. Non-negative Integers without Consecutive Ones
查看>>
axios 拦截 , 页面跳转, token 验证(自己摸索了一天搞出来的)
查看>>
区块链初始化与实现POW工作量证明
查看>>
C++的Json解析库:jsoncpp和boost .
查看>>
如何将经纬度利用Google Map API显示C# VS2005 Sample Code
查看>>
基于html5 canvas和js实现的水果忍者网页版
查看>>
Android 知识梳理
查看>>
【反射】使用反射来获取注解原数据信息-类信息-方法信息等
查看>>
如何合理的规划jvm性能调优
查看>>
莫比乌斯反演初步与实际应用
查看>>
开发人员可以提高效率的chrome插件推荐
查看>>
1.4.运维平台之硬件CMDB
查看>>
性能测试分享:性能测试工具开发的案例分享(下)
查看>>