<code id='xeihs'><strong id='xeihs'></strong></code>

    <fieldset id='xeihs'></fieldset>

    <span id='xeihs'></span>
    1. <acronym id='xeihs'><em id='xeihs'></em><td id='xeihs'><div id='xeihs'></div></td></acronym><address id='xeihs'><big id='xeihs'><big id='xeihs'></big><legend id='xeihs'></legend></big></address>
      <i id='xeihs'></i>

      1. <i id='xeihs'><div id='xeihs'><ins id='xeihs'></ins></div></i>
      2. <tr id='xeihs'><strong id='xeihs'></strong><small id='xeihs'></small><button id='xeihs'></button><li id='xeihs'><noscript id='xeihs'><big id='xeihs'></big><dt id='xeihs'></dt></noscript></li></tr><ol id='xeihs'><table id='xeihs'><blockquote id='xeihs'><tbody id='xeihs'></tbody></blockquote></table></ol><u id='xeihs'></u><kbd id='xeihs'><kbd id='xeihs'></kbd></kbd>
        1. <dl id='xeihs'></dl>

        2. <ins id='xeihs'></ins>

          学习Linux从sudo命令开始

          • 时间:
          • 浏览:4
          • 来源:124软件资讯网

            sudo是允许系统治理员让通俗用户执行一些或者所有的root下令的一个工具  ,如halt ,reboot  ,su等等  。这样不仅淘汰了root用户的上岸和治理时间  ,同样也提高了宁静性  。Sudo不是对shell的一个取代  ,它是面向每个下令的  。它的特征主要有这样几点:

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

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

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

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

            一,安装

            检测是否一经安装了SUDO:

            [root@localhost ~]# rpm -q sudo

            sudo-1.6.8p12-4.1

            若是没有安装,下载软件包举行安装:

            对于大多数系统来说  ,sudo的设置都是相对比力简朴的:

            0) {GetProperty(Content)}gt; cd /;cp sudo-1.6.8p12.tar.gz /

            1) {GetProperty(Content)}gt; tar vxzf sudo-1.6.8p12.tar.gz

            2) 若是是从低版本升级的话  ,升级之前请仔细阅读UPGRADE文件  。

            3) 若是你在编译之前  ,已经为另外一台差别的主机运行了’configure’  ,你必须用make distclean扫除’config.cache’文件  。否则 ,’configure’将不能再运行  。你也可以直接’rm config.cache’.

            4) 阅读’OS dependent notes’看是否支持你的系统  。

            5) {GetProperty(Content)}gt; cd sudo-8p12

            6) 阅读configure文件  ,仔细看其中的’Available configure options’部门  ,看是否要加一些特殊的选项  。这里选项许多  ,不外常用的主要有这么几个主要的设置参数:

            --with-pam 支持使用PAM,使用该选项时要求一个有用的/etc/pam.d/sudo文件

            --cache-file=FILE 将缓存test的效果存到FILE文件中  。

            --help 打印资助  。

            --no-create 不要输出.o文件

            --quiet, --silent 不打印’checking…’信息

            --exec-prefix=EPREFIX 设置包罗sudo 和visudo下令的目录

            --bindir=DIR 将sudo下令安装到EPREFIX/bin

            --sbindir=DIR将visudo下令安装到EPREFIX/bin

            --sysconfdir=DIR 将sudoers设置文件安装到DIR  ,默以为/etc.

            --mandir=DIR将man文件安装到DIR  ,默以为/man.

            --with-CC=path 指定你要使用的c编译器的路径  。

            --with-skey 支持S/Key OTP(一次使用密码)

            --with-opie支持NRL OPIE OTP(一次使用密码)

            --disable-shadow 不支持shadow密码的系统的选项开关  ,sudo默认是编译并使用shadow密码的 。

            --with-sudoers-mode=mode sudoers设置文件模式  ,默以为0440  。

            --with-sudoers-uid sudoers设置文件的所有者id  ,默以为0

            --with-sudoers-gid sudoers设置文件的所有者的组id ,默以为0

            --without-passwd 用户认证无须密码 。

            --with-logging=TYPE 日志类型  ,可以选择’syslog’、’file’或者两种都可以  。

            --with-logpath=path 日志存放的路径和文件名 ,默以为/var/log/sudo.log

            --with-umask 在运行root下令是用umask  ,默认的umask是0022

            --with-passwd-tries=tries sudo写入log日志条件示输入密码的次数  ,默以为3次  。

            --with-timeout=minutes sudo提醒输入密码之前的时间  ,默以为5分钟

            --with-password-timeout=minutes 密码的有用期  ,默以为5分钟 ,0表现密码永远有用  。

            --without-lecture 第一次运行sudo不打印lecture信息

            --disable-root-sudo root用户不能运行sudo 。

            --enable-log-host 记载主机host到日志文件

            --disable-path-info 堕落时  ,不显示sudo的路径 。

            如 输入:./configure --with-timeout=10 --without-lecture --disable-root-sudo --disable-path-info --sysconfdir=/home/config/ --bindir=/bin --sbindir=/sbin

            7) make

            8) make install

            >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

            二,设置,

            编辑设置文件下令:visudo

            默认设置文件位置:/etc/sudoers

            [root@localhost ~]# cat /etc/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

            # Runas alias 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

            [root@localhost ~]#

            可以用visudo编辑sudoers设置文件  ,不外也可以直接通过修改sudoers文件实现  ,不外编辑之前最悦目一下它的sample.sudoers文件  ,内里有一个相当详细的例子可以参考 。

            #第一部门:用户界说 ,将用户分为FULLTIMERS、PARTTIMERS和WEBMASTERS三类  。

            User_Alias FULLTIMERS = millert, mikef, dowdy

            User_Alias PARTTIMERS = bostley, jwfox, crawl

            User_Alias WEBMASTERS = will, wendy, wim

            #第二部门  ,将操作类型分类 。

            Runas_Alias OP = root, operator

            Runas_Alias DB = oracle, sybase

            #第三部门  ,将主机分类 。这些都是随便分得 ,目的是为了更好地治理  。

            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 DUMPS = /usr/bin/mt, /usr/sbin/dump, /usr/sbin/rdump,\

            /usr/sbin/restore, /usr/sbin/rrestore

            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, /usr/sbin/fasthalt

            Cmnd_Alias REBOOT = /usr/sbin/reboot, /usr/sbin/fastboot

            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

            #这里是针对差别的用户接纳差别地计谋  ,好比默认所有的syslog直接通过auth 输出  。FULLTIMERS组不用看到lecture(第一次运行时发生的新闻);用户millert使用sudo时不用输入密码;以及logfile的路径在/var/log/sudo.log而且每一行日志中必须包罗年  。

            Defaults syslog=auth

            Defaults:FULLTIMERS !lecture

            Defaults:millert !authenticate

            Defaults@SERVERS log_year, logfile=/var/log/sudo.log

            #root和wheel组的成员拥有任何权力  。 若是想对一组用户举行界说  ,可以在组名前加上%  ,对其举行设置.

            root ALL = (ALL) ALL

            %wheel ALL = (ALL) ALL

            #FULLTIMERS可以运行任何下令在任何主机而不用输入自己的密码

            FULLTIMERS ALL = NOPASSWD: ALL

            #PARTTIMERS可以运行任何下令在任何主机  ,可是必须先验证自己的密码  。

            PARTTIMERS ALL = ALL

            #jack可以运行任何下令在界说地CSNET(128.138.243.0, 128.138.242.0和128.138.204.0/24的子网)中 ,不外注重前两个不需要匹配子网掩码  ,尔后一个必须匹配掩码  。

            jack CSNETS = ALL

            #lisa可以运行任何下令在界说为CUNETS(128.138.0.0)的子网中主机上 。

            lisa CUNETS = ALL

            #用户operator可以运行DUMPS,KILL,PRINTING,SHUTDOWN,HALT,REBOOT以及在/usr/oper/bin中的所有下令  。

            operator ALL = DUMPS, KILL, PRINTING, SHUTDOWN, HALT, REBOOT,\

            /usr/oper/bin/

            #joe可以运行su operator下令

            joe ALL = /usr/bin/su operator

            #pete可以为除root之外地用户修改密码  。

            pete HPPA = /usr/bin/passwd [A-z]*, !/usr/bin/passwd root

            #bob可以在SPARC和SGI机械上和OP用户组中的root和operator一样运行怎样下令  。

            bob SPARC = (OP) ALL : SGI = (OP) ALL

            #jim可以运行任何下令在biglab网络组中  。Sudo默认“+”是一个网络组地前缀  。

            jim +biglab = ALL

            #在secretaries中地用户资助治理打印机 ,而且可以运行adduser和rmuser下令  。

            +secretaries ALL = PRINTING, /usr/bin/adduser, /usr/bin/rmuser

            #fred能够直接运行oracle或者sybase数据库  。

            fred ALL = (DB) NOPASSWD: ALL

            #john可以在ALPHA机械上 ,su除了root之外地所有人 。

            john ALPHA = /usr/bin/su [!-]*, !/usr/bin/su *root*

            #jen可以在除了SERVERS主机组的机械上运行任何下令  。

            jen ALL, !SERVERS = ALL

            #jill可以在SERVERS上运行/usr/bin/中的除了su和shell下令之外的所有下令  。

            jill SERVERS = /usr/bin/, !SU, !SHELLS

            #steve可以作为通俗用户运行在CSNETS主机上的/usr/local/op_commands/内的任何下令  。

            s12下一页