sudo命令与其布局文件,sudo命令的用法

By admin in 美高梅手机版4858 on 2019年4月5日

  sudo是一种权限管理机制,管理员能够授权普通用户去实践root的操作,而不须求精晓root的密码,它依靠于/etc/sudoers那么些文件,可以授权给哪些用户在哪些主机上可见以管理员的身价实施怎么着的治本命令,而且是有限的。/etc/sudoers文件也正是贰个授权表,此文件的权限唯有管理员能够查看并且不提议利用vim编辑器来举办编辑,跟cron1样有特意的编辑命令能够质量评定语法难题,防止产生语法错误导致系统崩溃;针对sudo编辑专门提供了三个发令visudo。

因为root的权能太大,所以Linux下壹般不可能以管理人间接登录,或su –
root去操作,那时我们就需求用到sudo这些命令去支援我们执行一些普通用户未有权力的保管命令。

sudo命令的用法

因为root的权力太大,所以Linux下1般无法以管理人直接登录,或su –
root去操作,那时大家就要求用到sudo这几个命令去帮助大家执行1些普通用户未有权限的管住命令。

sudo命令的表征:

1、授权钦定用户在钦定主机上运营内定的管理命令;

二、详细记录用户根据sudo执行的授命的有关日志新闻;

叁、“检票系统”:时效性认证,用户率先次执行sudo时会须要输入密码来验正用户地点,成功后用户会博得2个有定点存活时间长度的“令牌”;四分钟

何以兑现sudo成效?

/etc/sudoers:授权文件,只好由管理员编辑;但貌似不用vim直接去编辑,因为也许会师世语法错误,所以一般用专用的编写制定工具visudo命令去授权。

/etc/sudoers:

只顾:外号定义: 别称必须利用全大写字符

内置变量:  ALL: 全数用户

User_Alias:

User_Alias NAME = item1, item2, …

item:

用户名

%组名

#UID

$#GID

User_Alias(表示能够行使已经定义的外号)

例:  User_Alias ADMIN =CentOS,%lx,#500

代表定义ADMIN小名,有centos用户,lx组,UID为500的用户

Host_Alias:可以在如何主机上运行

Host_AliasNAME = item1, item2, …

item:

hostname

ip

network

Host_Alias

例:  Host_Alias ALLOWADDR =172.16.37.10,172.16.0.0/16

表示定义ALLOWADD奇骏别称,有ip为17二.1陆.叁7.十,网络地址为17二.1陆.0.0/16

Runas_Alias

Runas_AliasNAME = item1, item2, …

用法和User_Alias相同

Cmnd_Alias:

Cmnd_AliasNAME = item1, item2, …

item:

命令

目录(目录下的拥有命令)

Cmnd_Alias

例:  Cmnd_Alias COMMAND =/usr/sbin/useradd,/usr/sbin/userdel,/usr/sbin

意味着定义COMMAND小名,有useradd,userdel,和/usr/sbin下的具有命令

概念时可取反:Cmnd_AliasPASSWD = /usr/bin/passwd [0-9A-Za-z]*,!
/usr/bin/passwd root

sudo授权:

WHO        HOST=(WHOM)        COMMAND

例:centos  MYPC=(root)  /usr/sbin/useradd

美高梅手机版4858 1

标签:

NOPASSWD:表示标签之后的吩咐都不要输密码

PASSWD:表示标签之后的命令都用输密码

美高梅手机版4858 2

sudo命令与其布局文件,sudo命令的用法。sudo命令:

-l: 查看当前用户可实行的sudo命令;

-u USEBMWX三NAME COMMAND: 以钦命的用户身份实施钦定的COMMAND;

-k: 清除“令牌”

-b COMMAND: 在后台运维钦定的COMMAND

-e /path/to/somefile:修改钦赐的文件;

美高梅手机版4858,例:sudo-u centos useradd user1

Linux教程分享:如何为sudo命令定义PATH环境变量 

Ubuntu的sudo与su命令使用与开启root帐户

sudo: sorry, you must have a tty to run sudo

Linux配置sudo权限

sudo配置最近取得root权限

Linux下化解用户不能履行sudo的法门

Linux系统一管理理员不可不知的命令:sudo

sudo使用之达成权力分配

正文永久更新链接地址:

因为root的权能太大,所以Linux下一般不能够以管理人直接登录,或su –
root去操作,那时大家就须求用到sudo那一个命令去支援大家…

Linux sudo命令与其布局文件/etc/sudoers

sudo命令格式

sudo [options] COMMAND

options:

  -l COMMAND:列出用户可实施或不足实践的授命音讯;
  -k:清除用户成功验证所缓存的时光戳,暗中同意缓存时间戳为4分钟;
  -p:改变询问密码的唤起标志;
  -s<shell>:执行钦命的shell;
  -u<用户>:以钦赐的用户作为新的地方。若不丰硕此参数,则预设以root作为新的身价

sudo命令的性状:

2012-05-04 11:00:56    
本身来说两句     

visudo

用户授权语句的格式:

USERS  LOCATION=(USERNAME|GROUP|runas_alias)  [NOPASSWD|PASSWD] 
COMMAND

实例:root  ALL=(ALL)  ALL
(第三个ALL指网络中的主机;首个ALL指指标用户,以哪个人的身份运营命令;第伍个ALL指命令名)

   user1  ALL=(user2,user3)  /bin/ls, /bin/rm
   user2  localhost=(root)    /bin/touch, /bin/rm
   user3  localhost=(root)    nopasswd:/bin/touch

其中:

  USERS 可以是:
    username:授权用户名;
    %groupname:授权用户组;
    User_alias:授权的用户或界小名

  LOCATION 可以是:
    ip:规则相称的IP地址;
    hostname:规则相配的主机名;
    NetAddr:规则匹配的网段;
    Host_alias:主机别称

  COMMAND 可以是:
    command:命令的相对路径;
    Cmnd_alias:命令的别称组

而有关 Alias 定义的格式:

ALIAS_TYPE  NAME=item1,item2,item3…

瞩目:NAME必须全为大写字母。
  ALIAS_TYPE的档次包含:
    User_Alias:授权用户别称类型
    Host_Alias:主机外号类型
    Runas_Alias:作为哪些用户执行的小名类型
    Cmnd_Alias:命令小名类型

壹、授权钦点用户在钦赐主机上运转钦命的军管命令;

收藏
  
美高梅手机版4858 3自家要投稿

行使实例一

[root@happiness ~]# visudo
    root    ALL=(ALL)       ALL
    user1   ALL=(user2,user3)     /bin/ls  #指定user1能执行user2,user3的ls命令
[root@happiness ~]# su - user1
  Last login: Tue Sep  4 16:09:47 CST 2018 on pts/0
[user1@happiness ~]$ sudo ls /home/user2  #sudo没指定用户时,默认以root执行,而user1没有root的ls权限,故报错
  [sudo] password for user1: 
  Sorry, user user1 is not allowed to execute '/bin/ls /home/user2' as root on happiness.
[user1@happiness ~]$ sudo -u user2 ls /home/user2  #sudo权限可用
  [sudo] password for user1: 
  user2txt
[user1@happiness ~]$ sudo -u user3 ls /home/user2
  ls: cannot open directory /home/user2: Permission denied
[root@happiness ~]# visudo
    root    ALL=(ALL)       ALL

    Defaults:user1        runas_default=user2  #指定user1默认以user2执行ls命令
[root@happiness ~]# su - user1
  Last login: Tue Sep  4 17:08:18 CST 2018 on pts/0
[user1@happiness ~]$ sudo -k
[user1@happiness ~]$ sudo ls /home/user3
ls: cannot open directory /home/user3: Permission denied
[user1@happiness ~]$ sudo ls /home/user2  #默认用user2执行并且不需要输入密码
  user2txt

贰、详细记录用户依据sudo执行的吩咐的相关日志音信;

Linux
sudo命令与其配置文件/etc/sudoers

运用实例二

[root@happiness ~]# visudo
  
  
  
  USERADM ALL=(root) NOPASSWD:COMM1,PASSWD:COMM2
[root@happiness ~]# useradd user1
[root@happiness ~]# useradd user2
[root@happiness ~]# passwd user1
测试结果:
[root@happiness ~]# su - user1
[user1@happiness ~]$ sudo -l  #查看用户所拥有的sudo权限
Matching Defaults entries for user1 on this host:
    requiretty, !visiblepw, always_set_home, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS",
    env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT
    LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE
    LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin

User user1 may run the following commands on this host:
    (root) NOPASSWD: /usr/sbin/useradd, /usr/sbin/usermod, /usr/bin/passwd, !/usr/bin/passwd root, (root) PASSWD:
    /usr/sbin/shutdown, /usr/sbin/reboot
[user1@happiness ~]$ sudo passwd user2  #为user2设置密码
  Changing password for user user2.
  New password:
  [user1@happiness ~]$ sudo passwd root   #不允许更改root密码
  Sorry, user user1 is not allowed to execute '/bin/passwd root' as root on happiness.
[user1@happiness ~]$ sudo shutdown  #执行shutdown需要输入用户密码
  [sudo] password for user1: 

叁、“检票系统”:时效性认证,用户率先次施行sudo时会必要输入密码来验正用户身份,成功后用户会获得四个有定位存活时间长度的“令牌”;6分钟

 

何以贯彻sudo功效?

linux有肯定领会的人有些也会领悟点有关sudo命令。sudo命令核心情想是权力的赋予
,即某些命令的所属用户不是你协调,而你却有权力履行它。可是大家必要小心的是,固然你有权力履行那个命令,不过在执行的时候却仍是以那个命令本人所属用户来形成的[注释1]。(su命令类似sudo命令,可是双方的反差在于前者su是3个粗粒度权限赋予,
www.二cto.com 

/etc/sudoers:授权文件,只好由管理员编辑;但一般不用vim直接去编辑,因为或然会产出语法错误,所以1般用专用的编写工具visudo命令去授权。

对su最棒的接头本身以为是change user running command
permanent。即永久的切换成了su过去的用户,然后以那一个su到的新用户干它能干的整套事情,而sudo则是指在进行某些命令的时候暂且切换成这几个命令的所属用户执行[注释1],而且sudo能够完结以单个命令为单位将权限赋予给其余用户,相比较su显得特别灵活。)

/etc/sudoers:

 

留神:别称定义: 外号必须利用全大写字符

粗粗精通了sudo的机能,那么你通晓怎么布局sudo吗?上面来总结说多美滋(Dumex)(Karicare)下:

停放变量:  ALL: 全体用户

安顿sudo的安顿文件在/etc/sudoers内部,一般通过visudo命令来安全打开编辑。查看/etc/sudoers的用法能够利用命令:
man 伍 sudoers。在/etc/sudoers文件之中首要归纳那两局地:

User_Alias:

  1. 别称设置  www.二cto.com 

User_Alias NAME = item1, item2, …

小名首要不外乎那两种:User_Alias,Host_Alias,Runas_Alias,Cmnd_Alias,分别是用户别称,主机外号,运营用户别名,命令小名。设置那多少个外号的一声令下首即便为了布署方便,那个很类似linux用户群组或是数据库中剧中人物的效应,有了别名便得以批量的给予权力。

item:

安装方法 Alias_Type alias_name = name1, name2, name3, 例如User_阿里as
User一 = user1, user贰, user三。其余品类的alias设置情势类似。

用户名

  1. 真正的sudo entry

%组名

本条正是实在配置怎么样用户能够运用什么命令了(你甚至足以不应用别称设置那部分)。

#UID

格式为:用户名(用户外号)
主机名(主机别称)=[(运营用户也许Runas_Alias)可选] [tag可选]
能够推行的命令(或Cmmd_Alias)  那样描述语法很生硬,不易理解,举事例

$#GID

user1  host1 =
/bin/kill                                                  
                           # user壹 能够在host1上接纳命令/bin/kill

User_Alias(表示能够行使已经定义的别称)

user1  host1 = NOPASSWD:
/bin/kill                                                     # user1能够在host一上行任务令/bin/kill
同时能够不必输入密码(那里就是选用了NOPASSWD

例:  User_Alias ADMIN
=CentOS,%lx,#500

                                                                           
                                          # 这个tag,默认是PASSWD)

表示定义ADMIN别称,有centos用户,lx组,UID为500的用户

user1  host1 = NOPASSWD: /bin/kill , PASSWORD: /bin/ls              #
user一能够在host一上行职务令/bin/kill无需输入密码,可是利用/bin/ls则必要输入密码

Host_Alias:能够在怎么样主机上运行

user1  host1 = (opterator)
/bin/kill                                                          #
user1能够在host一上运用命令/bin/kill可是必须是以operator用户运转那几个命令,等价于

Host_AliasNAME = item1, item2, …

                                                                           
                                          # su -u opertor /bin/kill

item:

user1  host1 = (:group_name)
/bin/kill                                                 # user1能够在host壹上应用命令/bin/kill,且务必以group_name那个用户群组里面包车型地铁用户来运维。

hostname

%group_name host1 =
/bin/kill                                                             
#
所有group_name里面包车型地铁用户都能够在host1上执行/bin/kill(linux中貌似代表全部用户群组用

ip

                                                                           
                                         # %group_name)

network

 

Host_Alias

再举个实在例子,作者事先对sudo
su那几个命令不知底,为啥小编得以直接就su到root用户了吧,连密码都不要求?查看了一下sudoers文本才通晓原来里面有那样1行:

例:  Host_Alias ALLOWADDR =172.16.37.10,172.16.0.0/16

xxx     ALL=NOPASSWD: /bin/su  www.2cto.com 

表示定义ALLOWADD库罗德别名,有ip为172.1陆.3七.拾,互联网地址为17二.16.0.0/1陆

好了,到此结束~,多了流水账一篇~~~^__^

Runas_Alias

 

Runas_AliasNAME = item1, item2, …

注释1:

用法和User_Alias相同

linux中每一种进度皆以有与之有关的UID,GID,分别为可行UID,真实UID,有效GID,真实GID。有效UID,GID是用来判定权限,而真实UID,GID是用来记账(哪个进度属于哪个用户,或记录日志等等)。当配置了sudo
entry后,有效UID里面就隐含了那一个被安插的用户UID,因此权限验证的时候就足以透过。

Cmnd_Alias:

 

Cmnd_AliasNAME = item1, item2, …


item:

 

命令

sudo 是 linux 下同意普通用户使用一级权限的工具,他的安插文件为
/etc/sudoers , 大家能够动用 visudo
对该文件举办编写制定,并且强烈提议使用这几个命令对文件实行编辑,因为那个命令在编写时饱含自动排错和检查语法的功能,这样能够很实用滴珍惜
sudoers 文件不被漏洞万分多地修改掉!

目录(目录下的有所命令)

       一: sudo
设置不输入密码自动登录:

Cmnd_Alias

       1. 用 visudo 编辑
sudoers 文件,暗许景况大家会晤到有”%admin ALL=(ALL) ALL”1行注释 ,
那里的 admin 是八个组名,那里代表属于 admin 组的用户能够有 sudo
权限,可是供给输入密码,要是想不输入密码,能够将此行改为  “%admin
ALL=(ALL) NOPASSWD: NOPASSWD ALL” 即可。

例:  Cmnd_Alias COMMAND =/usr/sbin/useradd,/usr/sbin/userdel,/usr/sbin

       二. 我们精通,sudo
处境下执行 /usr/bin/passwd root , 这一年由于 admin 组的用户继承了
root 一流权限,因而它是足以将 root
的密码修改的,从安全上来讲,那几个是不被允许的,制止那种地方时有发生,能够在
admin 组后边做如下配置, %admin ALL=(ALL)
NOPASSWD:ALL, !/usr/bin/passwd root , 这样把
passwd命令禁止使用掉,则就无法改改 root 的密码了。

代表定义COMMAND别称,有useradd,userdel,和/usr/sbin下的全体命令

       三.
对于普通用户而言,能够独立定义其sudoer的拜访规则:

概念时可取反:Cmnd_AliasPASSWD = /usr/bin/passwd [0-9A-Za-z]*,!
/usr/bin/passwd root

       
首先需求配备部分Alias,那样在底下配置权力时,会有利于一些,不用写大段大段的布局。Alias首要分为四种
        Host_Alias         Cmnd_Alias         User_Alias        
Runas_Alias
1) 配置Host_Alias:正是主机的列表 Host_Alias      HOST_FLAG =
hostname1, hostname2, hostname3 2)
配置Cmnd_Alias:就是允许实施的授命的列表 Cmnd_Alias      COMMAND_FLAG
= command1, command2, command3 3)
配置User_Alias:正是全部sudo权限的用户的列表 User_Alias USER_FLAG =
user1, user2, user3 4)
配置Runas_Alias:正是用户以怎么着地位实施(例如root,只怕oracle)的列表
Runas_Alias RUNAS_FLAG = operator壹, operator2, operator三 5) 配置权力
配置权力的格式如下: USE凯雷德_FLAG HOST_FLAG=(RUNAS_FLAG) COMMAND_FLAG
假设不要求密码验证的话,则根据那样的格式来布局 USERubicon_FLAG
HOST_FLAG=(RUNAS_FLAG) NOPASSWD: COMMAND_FLAG 

sudo授权:

 

WHO        HOST=(WHOM)        COMMAND

例:

例:centos  MYPC=(root)  /usr/sbin/useradd

# Host alias specification
Host_Alias      IP = 172.16.1.100 , 172.16.1.101 。。。。
# User alias specification User_Alias  OK =
test1 , test2 # Cmnd alias specification Cmnd_Alias      OK2 =
/usr/bin/scp , /usr/bin/ssh  
# Defaults specification
# User privilege specification root    ALL=(ALL) ALL support IP=(ALL)
NOPASSWD: Ok2

美高梅手机版4858 4

      

标签:

NOPASSWD:表示标签之后的下令都无须输密码

PASSWD:表示标签之后的通令都用输密码

美高梅手机版4858 5

sudo命令:

-l: 查看当前用户可实施的sudo命令;

-u USECR-VNAME COMMAND: 以钦命的用户身份实施钦赐的COMMAND;

-k: 清除“令牌”

-b COMMAND: 在后台运维钦赐的COMMAND

-e /path/to/somefile:修改钦赐的文件;

例:sudo-u centos useradd user1

Linux教程分享:怎样为sudo命令定义PATH环境变量 
http://www.linuxidc.com/Linux/2014-09/106076.htm

Ubuntu的sudo与su命令使用与开启root帐户
http://www.linuxidc.com/Linux/2008-01/10685.htm

sudo: sorry, you must have a tty to run sudo
http://www.linuxidc.com/Linux/2012-11/75153.htm

Linux配置sudo权限
http://www.linuxidc.com/Linux/2012-10/71795.htm

sudo配置一时半刻取得root权限
http://www.linuxidc.com/Linux/2012-09/69525.htm

Linux下消除用户不可能履行sudo的秘籍
http://www.linuxidc.com/Linux/2012-07/64694.htm

Linux系统一管理理员不可不知的通令:sudo
http://www.linuxidc.com/Linux/2013-07/87855.htm

sudo使用之完结权力分配
http://www.linuxidc.com/Linux/2014-02/96996.htm

正文永久更新链接地址:http://www.linuxidc.com/Linux/2015-05/117379.htm

美高梅手机版4858 6

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 美高梅手机版4858 版权所有