zoukankan      html  css  js  c++  java
  • su和sudo敕令的区别与利用才具

      来源:网海拾




    一. 利用 su 敕令权且切换用户身份

    1、su 的合用前提和威力

    su敕令就是切换用户的工具,若何认识呢?譬喻我们以平居用户beinan登录的,但要添加用户义务,实行useradd ,beinan用户没有这个权限,而这个权限恰恰由root所拥有。料理办法无法有两个,一是插手beinan用户,重新以root用户登录,但这种办法并不是最好的;二是我们没有需要插手beinan用户,可以用su来切换到root下截止添加用户的义务,等义务完成后再插手root。我们可以看到当然经过su 切换是一种对比好的办法;

    经过su可以在用户之间切换,若是超等权限用户root向平居或假造用户切换不需求密码,什么是权利?这就是!而平居用户切换到此外任何用户都需求密码验证;

    2、su 的用法:

    su [OPTION选项参数] [用户]

    -, -l, --login 登录并窜改到所切换的用户状况;

    -c, --commmand=COMMAND 实行一个敕令,然猬缩猬缩出所切换到的用户状况;

    至于更属意的,请参看man su ;

    3、su 的规范:

    su 在不加任何参数,默以为切换到root用户,但没有转到root用户家目次下,也就是说这时当然是切换为root用户了,但并没有窜改root登录状况;用户默许的登录状况,可以在/etc/passwd 中查获得,包孕家目次,SHELL定义等;

    [beinan@localhost ~]  $ suPassword:[root@localhost beinan]# pwd/home/beinan

    su 加参数 - ,表示默许切换到root用户,并且窜改到root用户的状况;

    [beinan@localhost ~]  $ pwd/home/beinan[beinan@localhost ~]  $ su -Password:[root@localhost ~]# pwd/root

    su 参数 - 用户名

    [beinan@localhost ~]  $ su - root 注:这个和su - 是一样的下场;

    Password:

    [root@localhost ~]# pwd

    /root

    [beinan@localhost ~]  $ su - linuxsir 注:这是切换到 linuxsir用户

    Password: 注:在这里输入密码;

    [linuxsir@localhost ~]  $ pwd 注:查察用户此后所处的职位中央;

    /home/linuxsir

    [linuxsir@localhost ~]  $ id 注:查察用户的UID和GID信息,重若是看能否切换过去了;

    uid=505(linuxsir) gid=502(linuxsir) groups=0(root),500(beinan),502(linuxsir)

    [linuxsir@localhost ~]  $

    [beinan@localhost ~]  $ su - -c ls 注:这是su的参数组合,表示切换到root用户,并且窜改到root状况,然后列出root家目次的文件,然猬缩猬缩出root用户;

    Password: 注:在这里输入root的密码;

    anaconda-ks.cfg Desktop install.log install.log.syslog testgroup testgroupbeinan testgrouproot

    [beinan@localhost ~]  $ pwd 注:查察此后用户所处的职位中央;

    /home/beinan

    [beinan@localhost ~]  $ id 注:查察此后用户信息;

    uid=500(beinan) gid=500(beinan) groups=500(beinan)

    4、su的优错偏差池;

    su 着实实在为打点带来苟且,经过切换到root下,能完成所有体系打点工具,只需把root的密码交给任何一个平居用户,他都能切换到root来完成所有的体系打点义务;但经过su切换到root后,也有不安浑因素;譬喻体系有10个用户,并且都介入打点。若是这10个用户都触及到超等权限的运用,做为打点员若是想让此外用户经过su来切换到超等权限的root,必需把root权限密码都通知这10个用户;若是这10个用户都有root权限,经过root权限可以做任何事,这在必定程度上就对体系的宁静形成了威协;想想Windows吧,几乎就是恶梦;“没有不宁静的体系,只要不宁静的人”,我们绝对不克不及担保这 10个用户都能按正常操纵流程来打点体系,此中任何一人对体系操纵的重大失误,都可以或许招致体系崩溃或数据丧失;所以su 工具在多人介入的体系打点中,并不是最好的选择,su只合用于一两个人介入打点的体系,毕竟su并不克不及让平居用户受限的利用;超等用户root密码应该驾驭在少数用户手中,这绝对是真理!所以集权而治的存在仍是有必定事理的;

    二. sudo 受权容许利用的su,也是受限定的su

    1. sudo 的合用前提

    因为su 对切换到超等权限用户root后,权限的无穷制性,所以su并不克不及禁受多个打点员所打点的体系。若是用su 来切换到超等用户来打点体系,也不克不及大白哪些义务是由哪个打点员截止的操纵。特别是搪塞供职器的打点有多人介入打点时,最好是针对每个打点员的技术特长和打点范畴,并且有针对性的下放给权限,并且约定其利用哪些工具来完成与其相干的义务,这时我们就有需要用到 sudo。

    经过sudo,我们能把某些超等权限有针对性的下放,并且不需求平居用户晓得root密码,所以sudo 相搪塞权限无穷定性的su来说,仍是对比宁静的,所以sudo 也能被称为受限定的su ;此外sudo 是需求受权容许的,所以也被称为受权容许的su;

    sudo 实行敕令的流程是此后用户切换到root(或此外指定切换到的用户),然后以root(或此外指定的切换到的用户)身份实行敕令,实行完成后,直接退回到此后用户;而这些的前提是要经过sudo的设置文件/etc/sudoers来截止受权;

    2、从编写 sudo 设置文件/etc/sudoers开端

    sudo的设置文件是/etc/sudoers ,我们可以用他的公用编辑工具visodu ,此工具的所长是在添加礼貌不太正确时,保存插手时会提醒给我们错误信息;设置好后,可以用切换到您受权的用户下,经过sudo -l 来查察哪些敕令是可以实行或按捺的;

    /etc/sudoers 文件中每行算一个礼貌,前面带有#号可以看成是说明的内容,并不实行;若是礼貌很长,一行列不下时,可以用号来续行,这样看来一个礼貌也可以拥有多个行;

    /etc/sudoers 的礼貌可分为两类;一类是别名定义,另一类是受权礼貌;别名定义并不是必需的,但受权礼貌是必需的;

    3、/etc/sudoers 设置文件中别名礼貌

    别名礼貌定义格式如下:

    Alias_Type NAME = item1, item2, ...


    Alias_Type NAME = item1, item2, item3 : NAME = item4, item5

    别名规范(Alias_Type):别名规范包孕如下四种

    Host_Alias 定义主机别名;

    User_Alias 用户别名,别名成员可所以用户,用户组(前面要加%号)

    Runas_Alias 用来定义runas别名,这个体名指定的是“目标用户”,即sudo 允许切换至的用户;

    Cmnd_Alias 定义敕令别名;

    NAME 就是别名了,NMAE的命名是包括大写字母、下划线以及数字,但必需以一个大写字母开头,譬喻SYNADM、SYN_ADM或SYNAD0是合理的,sYNAMDA或1SYNAD是分譬喻理的;

    item 按中文翻译是项目,在这里我们可以译成成员,若是一个体名下有多个成员,成员与成员之间,经过半角,号分隔;成员在必需是有用并幻想存在的。什么是有用的呢?譬喻主机名,可以经过w查察用户的主机名(或ip地点),若是您只是本地机操纵,只经过hostname 敕令就能查察;用户名当然是在体系中存在的,在/etc/paswd中必需存在;搪塞定义敕令别名,成员也必需在体系中幻想存在的文件名(需求绝对途径);

    item成员受别名规范 Host_Alias、User_Alias、Runas_Alias、Cmnd_Alias 制约,定义什么规范的别名,就要有什么规范的成员相配。我们用Host_Alias定义主机别名时,成员必需是与主机相干相联系关系,譬喻是主机名(包孕长途登录的主机名)、ip地点(单个或整段)、掩码等;当用户登录时,可以经过w敕令来查察登录用户主机信息;用User_Alias和 Runas_Alias定义时,必需求用体系用户做为成员;用Cmnd_Alias 定义实行敕令的别名时,必需是体系存在的文件,文件名可以用通配符表示,设置Cmnd_Alias时敕令需求绝对途径;此中 Runas_Alias 和User_Alias 有点类似,但与User_Alias 绝对不是一致个观点,Runas_Alias 定义的是某个体系用户可以sudo 切换身份到Runas_Alias 下的成员;我们在受权礼貌中以实例截止说明注解;别名礼貌是每行算一个礼貌,若是一个体名礼貌一行容不下时,可以经过去续行;一致规范别名的定义,一次也可以定义几个体名,他们中心用:号分隔,

    Host_Alias HT01=localhost,st05,st04,10,0,0,4,255.255.255.0,192.168.1.0/24 注:定义主机别名HT01,经过=号列出成员

    Host_Alias HT02=st09,st10 注:主机别名HT02,有两个成员;

    Host_Alias HT01=localhost,st05,st04,10,0,0,4,255.255.255.0,192.168.1.0/24:HT02=st09,st10 注:下面的两条对主机的定义,可以经过一条来完成,别名之间用:号瓜分;

    注:我们经过Host_Alias 定义主机别名时,项目可所以主机名、可所以单个ip(整段ip地点也可以),也可所以收集掩码;若是是主机名,必需是多台机械的收集中,并且这些机械得能经过主机名相互通信会面才有用。那什么才算是经过主机名相互通信或会面呢?譬喻 ping 主机名,或经过长途会面主机名来会面。在我们局域网中,若是让计较机经过主机名会面通信,必需设置/etc/hosts, /etc/resolv.conf ,还要有DNS做分解,否则相互之间无法经过主机名会面;在设置主机别名时,若是项目是中某个项目是主机名的话,可以经过hostname 敕令来查察外地主机的主机名,经过w敕令查来看登录主机是来源,经过去历来确认此外客户机的主机名或ip地点;搪塞主机别名的定义,看上去有点复杂,实在是很复杂。

    若是您不了了了了Host_Alias 是若何回事,也可以不必设置主机别名,在定义受权礼貌时经过ALL来受室所有可以或许出现的主机情形。若是您把主机方面的知识弄的更了了了了,着实实在需求多多学习。

    User_Alias SYSAD=beinan,linuxsir,bnnnb,lanhaitun 注:定义用户别名,下有四个成员;要在体系中确真实存在的;

    User_Alias NETAD=beinan,bnnb 注:定义用户别名NETAD ,我想让这个体名下的用户来打点收集,所以取了NETAD的别名;

    User_Alias WEBMASTER=linuxsir 注:定义用户别名WEBMASTER,我想用这个体名下的用户来打点网站;

    User_Alias SYSAD=beinan,linuxsir,bnnnb,lanhaitun:NETAD=beinan,bnnb:WEBMASTER=linuxsir 注:下面三行的别名定义,可以经过这一行来完成,请看前面的说明,是不是符合?

    Cmnd_Alias USERMAG=/usr/sbin/adduser,/usr/sbin/userdel,/usr/bin/passwd [A-Za-z]*,/bin/chown,/bin/chmod

    详尽:敕令别名下的成员必需是文件或目次的绝对途径;

    Cmnd_Alias DISKMAG=/sbin/fdisk,/sbin/partedCmnd_Alias NETMAG=/sbin/ifconfig,/etc/init.d/networkCmnd_Alias KILL = /usr/bin/killCmnd_Alias PWMAG = /usr/sbin/reboot,/usr/sbin/haltCmnd_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,/bin,/sbin,/usr/sbin,/usr/bin

    在下面的例子中,有KILL和PWMAG的敕令别名定义,我们可以兼并为一行来写,也就是等价行;

    Cmnd_Alias KILL = /usr/bin/kill:PWMAG = /usr/sbin/reboot,/usr/sbin/halt 注:这一行就代表了KILL和PWMAG敕令别名,把KILL和PWMAG的别名定义兼并在一行写也是可以的;

    Runas_Alias OP = root, operator

    Runas_Alias DBADM=mysql:OP = root, operator 注:这行是下面两行的等价行;至于若何认识Runas_Alias ,我们必需得经过受权礼貌的实例来认识;

    4、/etc/sudoers中的受权礼貌

    受权礼貌是分拨权限的实行礼貌,我们前面所讲到的定义别名重若是为了更苟且的受权援用别名;若是体系中只要几个用户,实在下放权限对比无穷的话,可以不必定义别名,而是针对体系用户直接直接受权,所以在受权礼貌中别名并不是必需的;

    受权礼貌并不是无章可寻,我们只说基础根基一点的,对比复杂的写法,若是您想属意认识受权礼貌写法的,请参看man sudoers

    受权用户 主机=敕令步履

    这三个要素缺一不成,但在步履之前也可以指定切换到特定用户下,在这里指定切换的用户要用( )号括起来,若是不需求密码直接运转敕令的,应该加NOPASSWD:参数,但这些可以省略;举例说明;

    实例一:

    beinan ALL=/bin/chown,/bin/chmod

    若是我们在/etc/sudoers 中添加这一行,表示beinan 可以在任何可以或许出现的主机名的体系中,可以切换到root用户下实行 /bin/chown 和/bin/chmod 敕令,经过sudo -l 来查察beinan 在这台主机上允许和按捺运转的敕令;

    值得详尽的是,在这里省略了指定切换到哪个用户下实行/bin/shown 和/bin/chmod敕令;在省略的情形下默以为是切换到root用户下实行;同时也省略了是不是需求beinan用户输入验证密码,若是省略了,默以为是需求验证密码。

    为了更属意的说明这些,我们可以机关一个更复杂一点的公式;

    受权用户 主机=[(切换到哪些用户或用户组)] [能否需求密码验证] 敕令1,[(切换到哪些用户或用户组)] [能否需求密码验证] [敕令2],[(切换到哪些用户或用户组)] [能否需求密码验证] [敕令3]....

    注解:

    通常[ ]中的内容,是可以省略;敕令与敕令之间用,号分隔;经过本文的例子,可以对照着看哪些是省略了,哪些中央需求有空格;

    在[(切换到哪些用户或用户组)] ,若是省略,则默以为root用户;若是是ALL ,则代表能切换到所无效户;详尽要切换到的目标用户必需用()号括起来,譬喻(ALL)、(beinan)

    实例二:

    beinan ALL=(root) /bin/chown, /bin/chmod

    若是我们把第一个实例中的那行去失,换成这行;表示的是beinan 可以在任何可以或许出现的主机名的主机中,可以切换到root下实行 /bin/chown ,可以切换就职何用户招实行/bin/chmod 敕令,经过sudo -l 来查察beinan 在这台主机上允许和按捺运转的敕令;

    实例三:

    beinan ALL=(root) NOPASSWD: /bin/chown,/bin/chmod

    若是换成这个例子呢?表示的是beinan 可以在任何可以或许出现的主机名的主机中,可以切换到root下实行 /bin/chown ,不需求输入beinan用户的密码;并且可以切换就职何用户下实行/bin/chmod 敕令,但实行chmod时需求beinan输入本人的密码;经过sudo -l 来查察beinan 在这台主机上允许和按捺运转的敕令;

    关于一个敕令步履是不是需求密码,我们可以发现在体系在默许的情形下是需求用户密码的,除非特加指出不需求用户需求输入本人密码,所以要在实行为作之前插手NOPASSWD: 参数;

    有可以或许有的弟兄对体系打点的敕令不太懂,不晓得其用法,这样就影响了他对 sudoers定义的认识,下面我们再举一个最复杂,最有说供职力的例子;

    实例四:

    譬喻我们想用beinan平居用户经过more /etc/shadow文件的内容时,可以或许会出现下面的情形;

    [beinan@localhost ~]  $ more /etc/shadow/etc/shadow: 权限不够

    这时我们可以用sudo more /etc/shadow 来读取文件的内容;就就需求在/etc/soduers中给beinan受权

    于是我们就可以先su 到root用户下经过visudo 来改/etc/sudoers ;(譬喻我们是以beinan用户登录体系的)

    [beinan@localhost ~]  $ su

    Password: 注:在这里输入root密码

    下面运转visodu;

    [root@localhost beinan]# visudo 注:运转visudo 来改 /etc/sudoers

    插手如下一行,插手保存;插手保存,在这里要会用vi,visudo也是用的vi编辑器;至于vi的用法不久不多说了;beinan ALL=/bin/more 表示beinan可以切换到root下实行more 来查察文件;

    退回到beinan用户下,用exit敕令;

    [root@localhost beinan]# exit

    exit

    [beinan@localhost ~]  $

    查察beinan的经过sudo能实行哪些敕令?

    [beinan@localhost ~]  $ sudo -l

    Password: 注:在这里输入beinan用户的密码

    User beinan may run the following commands on this host: 注:在这里了了的说明在本台主机上,beinan用户可以以root权限运转more ;在root权限下的more ,可以查察任何文本文件的内容的;

    (root) /bin/more

    最后,我们看看是不是beinan用户有才智看到/etc/shadow文件的内容;

    [beinan@localhost ~]  $ sudo more /etc/shadow

    beinan 不仅能看到 /etc/shadow文件的内容,还能看到只要root权限下才智看到的此外文件的内容,譬喻;

    [beinan@localhost ~]  $ sudo more /etc/gshadow

    搪塞beinan用户查察和读取所有体系文件中,我只想把/etc/shadow 的内容可以让他查察;可以插手下面的一行;

    beinan ALL=/bin/more /etc/shadow

    题外话:有的弟兄会说,我经过su 切换到root用户就能看到所有想看的内容了,哈哈,对啊。但我们现在不是在报告sudo的用法吗?若是主机上有多个用户并且不晓得root用户的密码,但又想查察某些他们看不到的文件,这时就需求打点员受权了;这就是sudo的所长;

    实例五:演习用户组在/etc/sudoers中写法;

    若是用户组呈现在/etc/sudoers 中,前面要加%号,譬喻�inan ,中心不克不及有空格;�inan ALL=/usr/sbin/*,/sbin/*

    若是我们在 /etc/sudoers 中加上如上一行,表示beinan用户组下的所有成员,在所有可以或许的出现的主机名下,都能切换到root用户下运转 /usr/sbin和/sbin目次下的所有敕令;

    实例六:演习作废某类步伐的实行:

    作废步伐某类步伐的实行,要在敕令步履前面加上!号; 在本例中也出现了通配符的*的用法;

    beinan ALL=/usr/sbin/*,/sbin/*,!/usr/sbin/fdisk 注:把这行礼貌插手到/etc/sudoers中;但您得有beinan这个用户组,并且beinan也是这个组中的才行;

    本礼貌表示beinan用户在所有可以或许存在的主机名的主机上运转/usr/sbin和/sbin下所有的步伐,但fdisk 步伐除外;

    [beinan@localhost ~]  $ sudo -l

    Password: 注:在这里输入beinan用户的密码;

    User beinan may run the following commands on this host:(root) /usr/sbin/*(root) /sbin/*(root) !/sbin/fdisk[beinan@localhost ~]  $ sudo /sbin/fdisk -lSorry, user beinan is not allowed to execute '/sbin/fdisk -l' as root on localhost.

    注:不克不及切换到root用户下运转fdisk 步伐;

    实例七:别名的运用实际;

    倘使我们就一台主机localhost,能经过hostname 来查察,我们在这里就不定义主机别名了,用ALL来受室所有可以或许出现的主机名;并且有beinan、linuxsir、lanhaitun 用户;重若是经过小例子能更好认识;sudo当然复杂好用,但能把说的了了了了着实实在是件难事;最好的办法是多看例子和man soduers ;

    User_Alias SYSADER=beinan,linuxsir,�inan

    User_Alias DISKADER=lanhaitunRunas_Alias OP=rootCmnd_Alias SYDCMD=/bin/chown,/bin/chmod,/usr/sbin/adduser,/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd rootCmnd_Alias DSKCMD=/sbin/parted,/sbin/fdisk 注:定义敕令别名DSKCMD,下有成员parted和fdisk ;SYSADER ALL= SYDCMD,DSKCMDDISKADER ALL=(OP) DSKCMD

    注解:

    第一行:定义用户别名SYSADER 下有成员 beinan、linuxsir和beinan用户组下的成员,用户组前面必需加%号;

    第二行:定义用户别名 DISKADER ,成员有lanhaitun

    第三行:定义Runas用户,也就是方针用户的别名为OP,下有成员root

    第四行:定义SYSCMD敕令别名,成员之间用,号分隔,最后的!/usr/bin/passwd root 表示不克不及经过passwd 来变动root密码;

    第五行:定义敕令别名DSKCMD,下有成员parted和fdisk ;

    第六行:表示受权SYSADER下的所有成员,在所有可以或许存在的主机名的主机下运转或按捺 SYDCMD和DSKCMD下定义的敕令。更为大白遥说,beinan、linuxsir和beinan用户组下的成员能以root身份运转 chown 、chmod 、adduser、passwd,但不克不及变动root的密码;也可以以root身份运转 parted和fdisk ,本条礼貌的等价礼貌是;

    beinan,linuxsir,�inan ALL=/bin/chown,/bin/chmod,/usr/sbin/adduser,/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root,/sbin/parted,/sbin/fdisk

    第七行:表示受权DISKADER 下的所有成员,能以OP的身份,来运转 DSKCMD ,不需求密码;更为大白的说 lanhaitun 能以root身份运转 parted和fdisk 敕令;其等价礼貌是:

    lanhaitun ALL=(root) /sbin/parted,/sbin/fdisk

    可以或许有的弟兄会说我想不输入用户的密码就能切换到root并运转SYDCMD和DSKCMD 下的敕令,那应该把把NOPASSWD:加在哪里为好?认识下面的例子吧,能了了了了的;

    SYSADER ALL= NOPASSWD: SYDCMD, NOPASSWD: DSKCMD

    5、/etc/sudoers中此外的未尽事情;

    在受权礼貌中,另有 NOEXEC:和EXEC的用法,本人查man sudoers 认识;另有关于在礼貌中通配符的用法,也是需求认识的。这些内容不久不多说了,毕竟只是一个入门性的文档。soduers设置文件要多复杂就有多复杂,要多难就有多难,就看本人的使用了。

    6、sudo的用法;

    我们在前面讲的/etc/sudoers 的礼貌写法,终极的目标是让用户经过sudo读取设置文件中的礼貌来完成受室和受权,以便更调身份来截止敕令操纵,进而完成在其权限下不成完成的义务;

    我们只说最复杂的用法;更为属意的请参考man sudo

    sudo [参数选项] 敕令

    -l 列出用户在主机上可用的和被按捺的敕令;一样普通设置好/etc/sudoers后,要用这个敕令来查察和测试是不是设置正确的;

    -v 验证用户的时候戳;若是用户运转sudo 后,输入用户的密码后,在短时候内可以不必输出口令来直接截止sudo 操纵;用-v 可以跟踪最新的时候戳;

    -u 指定以以某个用户实行特定操纵;

    -k 删除时候戳,下一个sudo 敕令要求用求供应密码;

    举列:

    首先我们经过visudo 来改/etc/sudoers 文件,插手下面一行;

    beinan,linuxsir,�inan ALL=/bin/chown,/bin/chmod,/usr/sbin/adduser,/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root,/sbin/parted,/sbin/fdisk

    然后列出beinan用户在主机上经过sudo 可以切换用户所能用的敕令或被按捺用的敕令;

    [beinan@localhost ~]  $ sudo -l 注:列出用户在主机上能经过切换用户的可用的或被按捺的敕令;

    Password: 注:在这里输入您的用户密码;

    User beinan may run the following commands on this host:

    (root) /bin/chown 注:可以切换到root下用chown敕令;

    (root) /bin/chmod 注:可以切换到root下用chmod敕令;

    (root) /usr/sbin/adduser 注:可以切换到root下用adduser敕令;

    (root) /usr/bin/passwd [A-Za-z]* 注:可以切换到root下用 passwd 敕令;

    (root) !/usr/bin/passwd root 注:可以切换到root下,但不克不及实行passwd root 来变动root密码;

    (root) /sbin/parted 注:可以切换到 root下实行parted ;

    (root) /sbin/fdisk 注:可以切换到root下实行 fdisk ;

    经过下面的sudo -l 列出可用敕令后,我想经过chown 敕令来窜改/opt目次的属主为beinan ;

    [beinan@localhost ~]  $ ls -ld /opt 注:查察/opt的属主;

    drwxr-xr-x 26 root root 4096 10月 27 10:09 /opt 注:获得的答案是归属root用户和root用户组;

    [beinan@localhost ~]  $ sudo chown beinan:beinan /opt 注:经过chown 来窜改属主为beinan用户和beinan用户组;

    [beinan@localhost ~]  $ ls -ld /opt 注:查察/opt属主是不是曾经窜改了;

    drwxr-xr-x 26 beinan beinan 4096 10月 27 10:09 /opt

    我们经过下面的例子发现beinan用户能切换到root后实行窜改用户口令的passwd敕令;但下面的sudo -l 输入又明文写着不克不及变动root的口令;也就是说除了root的口令,beinan用户不克不及变动外,此外用户的口令都能变动。下面我们来测试;

    搪塞一个平居用户来说,除了变动本身的口令以外,他不克不及变动此外用户的口令。但若是换到root身份实行敕令,则可以变动此外用户的口令;

    譬喻在体系中有linuxsir这个用户, 我们想尝试变动这个用户的口令,

    [beinan@localhost ~]  $ passwd linuxsir 注:不经过sudo 直接运转passwd 来变动linuxsir用户的口令;

    passwd: Only root can specify a user name. 注:失败,提醒仅能经过 root来变动;

    [beinan@localhost ~]  $ sudo passwd linuxsir 注:我们经过/etc/sudoers 的定义,让beinan切换到root下实行 passwd 敕令来窜改linuxsir的口令;

    Changing password for user linuxsir.

    New UNIX password: 注:输入新口令;

    Retype new UNIX password: 注:再输入一次;

    passwd: all authentication tokens updated successfully. 注:窜改乐成。




    版权声明: 原创作品,允许转载,转载时请务必以超链接方式标明文章 原始情由 、作者信息和本声明。否则将究查司法责任。

  • 相关阅读:
    Struts整合Spring3时注意
    Android组件通讯之BroadcastReceiver应用闹钟服务
    Android组件通讯之Pending Intent与Notification
    Android组件通讯之Service的基础绑定
    Android网络编程之Web Service初步(服务器端搭建)
    Android数据存储之ContentProvider调用联系人数据
    Android网络编程之Socket方式上传对象序列化文件(服务器端)
    Android组件通讯之可跨进程的远程Service调用
    Android网络编程之Web Service初步(客户端)
    Android网络编程之Socket方式上传对象序列化文件(客户端)
  • 原文地址:https://www.cnblogs.com/zgqjymx/p/1976193.html
Copyright © 2011-2022 走看看