• sudoer解释


    /etc/sudoer

    ## Sudoers allows particular users to run various commands as
    ## the root user, without needing the root password.
    ##
    ## Examples are provided at the bottom of the file for collections
    ## of related commands, which can then be delegated out to particular
    ## users or groups.
    ## 
    ## This file must be edited with the 'visudo' command.
    
    ## Host Aliases
    ## Groups of machines. You may prefer to use hostnames (perhaps using 
    ## wildcards for entire domains) or IP addresses instead.
    # Host_Alias     FILESERVERS = fs1, fs2
    # Host_Alias     MAILSERVERS = smtp, smtp2
    
    ## User Aliases
    ## These aren't often necessary, as you can use regular groups
    ## (ie, from files, LDAP, NIS, etc) in this file - just use %groupname 
    ## rather than USERALIAS
    # User_Alias ADMINS = jsmith, mikem
    
    
    ## Command Aliases
    ## These are groups of related commands...
    
    ## Networking
    # Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool
    
    ## Installation and management of software
    # Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum
    
    ## Services
    # Cmnd_Alias SERVICES = /sbin/service, /sbin/chkconfig
    
    ## Updating the locate database
    # Cmnd_Alias LOCATE = /usr/bin/updatedb
    
    ## Storage
    # Cmnd_Alias STORAGE = /sbin/fdisk, /sbin/sfdisk, /sbin/parted, /sbin/partprobe, /bin/mount, /bin/umount
    
    ## Delegating permissions
    # Cmnd_Alias DELEGATING = /usr/sbin/visudo, /bin/chown, /bin/chmod, /bin/chgrp 
    
    ## Processes
    # Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall
    
    ## Drivers
    # Cmnd_Alias DRIVERS = /sbin/modprobe
    
    # Defaults specification
    
    #
    # Disable "ssh hostname sudo <cmd>", because it will show the password in clear. 
    #         You have to run "ssh -t hostname sudo <cmd>".
    #
    Defaults    requiretty
    
    #
    # Refuse to run if unable to disable echo on the tty. This setting should also be
    # changed in order to be able to use sudo without a tty. See requiretty above.
    #
    Defaults   !visiblepw
    
    #
    # Preserving HOME has security implications since many programs
    # use it when searching for configuration files. Note that HOME
    # is already set when the the env_reset option is enabled, so
    # this option is only effective for configurations where either
    # env_reset is disabled or HOME is present in the env_keep list.
    #
    Defaults    always_set_home
    
    Defaults    env_reset
    Defaults    env_keep =  "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS"
    Defaults    env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"
    Defaults    env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"
    Defaults    env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"
    Defaults    env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"
    
    #
    # Adding HOME to env_keep may enable a user to run unrestricted
    # commands via sudo.
    #
    # Defaults   env_keep += "HOME"
    
    Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin
    
    ## Next comes the main part: which users can run what software on 
    ## which machines (the sudoers file can be shared between multiple
    ## systems).
    ## Syntax:
    ##
    ## 	user	MACHINE=COMMANDS
    ##
    ## The COMMANDS section may have other options added to it.
    ##
    ## Allow root to run any commands anywhere 
    root	ALL=(ALL) 	ALL
    
    ## Allows members of the 'sys' group to run networking, software, 
    ## service management apps and more.
    # %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS
    
    ## Allows people in group wheel to run all commands
    # %wheel	ALL=(ALL)	ALL
    
    ## Same thing 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
    
    ## Allows members of the users group to shutdown this system
    # %users  localhost=/sbin/shutdown -h now
    
    #includedir /etc/sudoers.d
    

    examples

    Below are example sudoers entries. Admittedly, some of these are a bit contrived. First, we allow a few environment variables to pass and then define our aliases:
    # Run X applications through sudo; HOME is used to find the
    # .Xauthority file.  Note that other programs use HOME to find
    # configuration files and this may lead to privilege escalation!
    Defaults env_keep += "DISPLAY HOME"
     
    # User alias specification
    User_Alias	FULLTIMERS = millert, mikef, dowdy
    User_Alias	PARTTIMERS = bostley, jwfox, crawl
    User_Alias	WEBMASTERS = will, wendy, wim
     
    # Runas alias specification
    Runas_Alias	OP = root, operator
    Runas_Alias	DB = oracle, sybase
    Runas_Alias	ADMINGRP = adm, oper
     
    # Host alias specification
    Host_Alias	SPARC = bigtime, eclipse, moet, anchor :
    		SGI = grolsch, dandelion, black :
    		ALPHA = widget, thalamus, foobar :
    		HPPA = boa, nag, python
    Host_Alias	CUNETS = 128.138.0.0/255.255.0.0
    Host_Alias	CSNETS = 128.138.243.0, 128.138.204.0/24, 128.138.242.0
    Host_Alias	SERVERS = master, mail, www, ns
    Host_Alias	CDROM = orion, perseus, hercules
     
    # Cmnd alias specification
    Cmnd_Alias	DUMPS = /usr/bin/mt, /usr/sbin/dump, /usr/sbin/rdump,
    			/usr/sbin/restore, /usr/sbin/rrestore,
    			sha224:0GomF8mNN3wlDt1HD9XldjJ3SNgpFdbjO1+NsQ== 
    			/home/operator/bin/start_backups
    Cmnd_Alias	KILL = /usr/bin/kill
    Cmnd_Alias	PRINTING = /usr/sbin/lpc, /usr/bin/lprm
    Cmnd_Alias	SHUTDOWN = /usr/sbin/shutdown
    Cmnd_Alias	HALT = /usr/sbin/halt
    Cmnd_Alias	REBOOT = /usr/sbin/reboot
    Cmnd_Alias	SHELLS = /usr/bin/sh, /usr/bin/csh, /usr/bin/ksh,
    			 /usr/local/bin/tcsh, /usr/bin/rsh,
    			 /usr/local/bin/zsh
    Cmnd_Alias	SU = /usr/bin/su
    Cmnd_Alias	PAGERS = /usr/bin/more, /usr/bin/pg, /usr/bin/less
    
    Here we override some of the compiled in default values. We want sudo to log via syslog(3) using the auth facility in all cases. We don't want to subject the full time staff to the sudo lecture, user millert need not give a password, and we don't want to reset the LOGNAME, USER or USERNAME environment variables when running commands as root. Additionally, on the machines in the SERVERS Host_Alias, we keep an additional local log file and make sure we log the year in each log line since the log entries will be kept around for several years. Lastly, we disable shell escapes for the commands in the PAGERS Cmnd_Alias (/usr/bin/more, /usr/bin/pg and /usr/bin/less). Note that this will not effectively constrain users with sudo ALL privileges.
    
    # Override built-in defaults
    Defaults		syslog=auth
    Defaults>root		!set_logname
    Defaults:FULLTIMERS	!lecture
    Defaults:millert	!authenticate
    Defaults@SERVERS	log_year, logfile=/var/log/sudo.log
    Defaults!PAGERS		noexec
    The User specification is the part that actually determines who may run what.
    
    root		ALL = (ALL) ALL
    %wheel		ALL = (ALL) ALL
    We let root and any user in group wheel run any command on any host as any user.
    
    FULLTIMERS	ALL = NOPASSWD: ALL
    Full time sysadmins (millert, mikef, and dowdy) may run any command on any host without authenticating themselves.
    
    PARTTIMERS	ALL = ALL
    Part time sysadmins bostley, jwfox, and crawl) may run any command on any host but they must authenticate themselves first (since the entry lacks the NOPASSWD tag).
    
    jack		CSNETS = ALL
    The user jack may run any command on the machines in the CSNETS alias (the networks 128.138.243.0, 128.138.204.0, and 128.138.242.0). Of those networks, only 128.138.204.0 has an explicit netmask (in CIDR notation) indicating it is a class C network. For the other networks in CSNETS, the local machine's netmask will be used during matching.
    
    lisa		CUNETS = ALL
    The user lisa may run any command on any host in the CUNETS alias (the class B network 128.138.0.0).
    
    operator	ALL = DUMPS, KILL, SHUTDOWN, HALT, REBOOT, PRINTING,
    		sudoedit /etc/printcap, /usr/oper/bin/
    The operator user may run commands limited to simple maintenance. Here, those are commands related to backups, killing processes, the printing system, shutting down the system, and any commands in the directory /usr/oper/bin/. Note that one command in the DUMPS Cmnd_Alias includes a sha224 digest, /home/operator/bin/start_backups. This is because the directory containing the script is writable by the operator user. If the script is modified (resulting in a digest mismatch) it will no longer be possible to run it via sudo.
    
    joe		ALL = /usr/bin/su operator
    The user joe may only su(1) to operator.
    
    pete		HPPA = /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root
     %opers		ALL = (: ADMINGRP) /usr/sbin/
    Users in the opers group may run commands in /usr/sbin/ as themselves with any group in the ADMINGRP Runas_Alias (the adm and oper groups).
    The user pete is allowed to change anyone's password except for root on the HPPA machines. Note that this assumes passwd(1) does not take multiple user names on the command line.
    
    bob		SPARC = (OP) ALL : SGI = (OP) ALL
    The user bob may run anything on the SPARC and SGI machines as any user listed in the OP Runas_Alias (root and operator.)
    
    jim		+biglab = ALL
    The user jim may run any command on machines in the biglab netgroup. sudo knows that “biglab” is a netgroup due to the ‘+’ prefix.
    
    +secretaries	ALL = PRINTING, /usr/bin/adduser, /usr/bin/rmuser
    Users in the secretaries netgroup need to help manage the printers as well as add and remove users, so they are allowed to run those commands on all machines.
    
    fred		ALL = (DB) NOPASSWD: ALL
    The user fred can run commands as any user in the DB Runas_Alias (oracle or sybase) without giving a password.
    
    john		ALPHA = /usr/bin/su [!-]*, !/usr/bin/su *root*
    On the ALPHA machines, user john may su to anyone except root but he is not allowed to specify any options to the su(1) command.
    
    jen		ALL, !SERVERS = ALL
    The user jen may run any command on any machine except for those in the SERVERS Host_Alias (master, mail, www and ns).
    
    jill		SERVERS = /usr/bin/, !SU, !SHELLS
    For any machine in the SERVERS Host_Alias, jill may run any commands in the directory /usr/bin/ except for those commands belonging to the SU and SHELLS Cmnd_Aliases. While not specifically mentioned in the rule, the commands in the PAGERS Cmnd_Alias all reside in /usr/bin and have the noexec option set.
    
    steve		CSNETS = (operator) /usr/local/op_commands/
    The user steve may run any command in the directory /usr/local/op_commands/ but only as user operator.
    
    matt		valkyrie = KILL
    On his personal workstation, valkyrie, matt needs to be able to kill hung processes.
    
    WEBMASTERS	www = (www) ALL, (root) /usr/bin/su www
    On the host www, any user in the WEBMASTERS User_Alias (will, wendy, and wim), may run any command as user www (which owns the web pages) or simply su(1) to www.
    
    ALL		CDROM = NOPASSWD: /sbin/umount /CDROM,
    		/sbin/mount -o nosuid,nodev /dev/cd0a /CDROM
    Any user may mount or unmount a CD-ROM on the machines in the CDROM Host_Alias (orion, perseus, hercules) without entering a password. This is a bit tedious for users to type, so it is a prime candidate for 
    
    User_name Machine_name=(Effective_user) command
    
    授权用户 主机=[(切换到哪些用户或用户组)] [是否需要密码验证] 命令1,[(切换到哪些用户或用户组)] [是否需要密码验证] [命令2],[(切换到哪些用户或用户组)] [是否需要密码验证] [命令3]......
    

    /etc/sudoers.d/access

    %app     ALL = (ALL) NOPASSWD: ALL, !/bin/su
    %op      ALL = (ALL) NOPASSWD: ALL, !/bin/su
    
    #查看当前用户sudo权限 
    sudo -l
    

    http://www.blogjava.net/iLinux/archive/2011/12/08/365889.html
    http://www.tecmint.com/su-vs-sudo-and-how-to-configure-sudo-in-linux/

  • 相关阅读:
    使用runOnUiThread更新UI
    Leetcode Symmetric Tree
    EBS 开发中如何动态启用和禁止请求(Current Request)的参数
    c 陷阱与缺陷(一)
    钟浩荣战胜病魔,不负众望重踏传智播客!
    【原创】分布式之elk日志架构的演进
    【强烈谴责】博客园园友随意抄袭他人文章并作为自己原创的行为
    【原创】研发应该懂的binlog知识(下)
    【原创】研发应该懂的binlog知识(上)
    【原创】一个线程oom,进程里其他线程还能运行吗?
  • 原文地址:https://www.cnblogs.com/liujitao79/p/4425206.html
Copyright © 2020-2023  润新知