sudo用法简述

su命令:switch user

用户切换:两种,登录式和非登录式
(1)登录式切换:su - usersu -l user
(2)非登录式切换:su user -c 'COMMAND'

查看帮助文档:man sudo

sudo命令:类似于以管理员身份运行

以另外一个用户身份执行指定的命令
授权机制:通过sudo的授权文件实现,/etc/sudoers

查看帮助文档:man sudoers

授权文件有两类内容:

  • 别名的定义,即为变量;
  • 授权项,可使用别名进行授权,要先定义别名;

授权项(每一行一个授权项)格式:
who where=(runas) commands
user hosts=(runas) commands

谁 通过哪些主机=(以谁的身份) 运行什么命令

查看帮助文档:man visudo
使用visudo编辑/etc/sudoers文件,直接输入visudo命令

注意:用户通过sudo获得的授权,只能以sudo命令来启动;wheel组拥有管理员权限;

sudo命令用法

格式:sudo [options] COMMAND
-u username:以指定用户的身份运行命令;
-l:列出用户能以sudo方式执行的所有命令;
-k:清除(密码)此前缓存用户成功认证的结果;

useradd centos
sudo -u centos whoami 管理员可以任何身份运行任何命令
usermod -aG wheel centos  把用户vuser加入wheel组拥有管理员权限;
echo centos |passwd --stdin centos
id centos
su - centos
[fedora@promote ~]$ sudo -l 输入centos用户的密码才能显示;
(ALL) ALL 表示拥有所有权限;
[fedora@promote ~]$ sudo -u root whoami
显示:root

[fedora@promote ~]$ sudo -u root useradd fedora 以root身份添加用户;
[fedora@promote ~]$ tail /etc/passwd

who:用户
username:单个用户;
#uid:单个用户的ID号;
%groupname:组内的所有用户;
%#gid:组内的所有用户;
user_alias:用户别名;

where:主机地址
ip或hostname:单个主机;
NetAddr:网络地址;支持多种表示格式;
host_alias:主机别名;

whom(ranas):以指定用户身份运行
username:单个用户;
#uid:单个用户的ID号;
runas_alias:以指定用户身份运行;

commands:命令
command:单个命令;
directory:指定目录内的所有应用程序;
sudoedit:特殊权限,可编辑sudoers文件,可用于向其它用户授予sudo权限;

示例:fedora ALL=(root) /usr/sbin/useradd, /usr/sbin/usermod

例如:

[root@promote ~]# echo fedora |passwd --stdin fedora
[root@promote ~]# which useradd
[root@promote ~]# which usermod
[root@promote ~]# visudo 表示编辑/etc/sudoers文件;
(可以使用单个文件放在/etc/sudoers.d目录下)
fedora ALL=(root)   /usr/sbin/useradd, /usr/sbin/usermod

注释:
fedora:定义的用户
ALL=(root):指定用户,不写表示所有用户;
/usr/sbin/useradd, /usr/sbin/usermod 可运行的命令;

[fedora@promote ~]# su - fedora 登录fedora用户;
[fedora@promote ~]$ sudo -l 列出权限;
[fedora@promote ~]$ sudo /usr/sbin/useradd slackware
[fedora@promote ~]$ tail -1 /etc/passwd
[fedora@promote ~]$ sudo -userdel -r slackware 但不能执行此命令;
定义别名的方法

ALIAS_TYPE NAME=item1,item2,...

ALIAS_TYPE:4种,注意书写格式大小写;
User_Alias:用户别名
Host_Alias:很少用,不做说明;
Runas_Alias:很少用,不做说明;
Cmnd_Alias:命令别名

NAME:别名的名称字符,必须使用全大写字母;

例如:

User_Alias USERADMINS=tom,jerry
Cmnd_Alias USERADMINCMNDS=/usr/sbin/useradd, /usr/sbin/usermod, /usr/bin/passwd

USERADMINS   ALL=(root)   USERADMINCMNDS

示例:
Cmnd_Alias USERADMINCMNDS=/usr/sbin/useradd, /usr/sbin/usermod, /usr/bin/passwd [a-z]*,!/usr/bin/passwd root, /usr/sbin/userdel
注意:Cmnd_Alias授权非常有风险的命名时,如passwd命令,一定要谨慎;

例如:

[root@promote ~]# visudo
User_Alias USERADMINS=tom, jerry
Cmnd_Alias USERADMINCMNDS=/usr/sbin/useradd, /usr/sbin/usermod, /usr/bin/passwd, /usr/sbin/userdel
USERADMINS      ALL=(root)     USERADMINCMNDS

[root@promote ~]# su - tom
[fedora@promote ~]$ sudo -l 第一次要输入密码;查看用户拥有的权限;密码保存5分钟;
[fedora@promote ~]$ useradd user1 不能执行;要以sudo运行命令;
[fedora@promote ~]$ sudo useradd user1 添加用户;
[fedora@promote ~]$ tail -1 /etc/passwd 添加成功;
[fedora@promote ~]$ sudo passwd user1 改密码;授权管理员后也可改管理员密码,是授权的漏洞;要定义不能接root字符串;

[root@promote ~]# visudo
修改其中的Cmnd_Alias指令:禁止修改管理员密码;
Cmnd_Alias      USERADMINCMNDS=/usr/sbin/useradd, /usr/sbin/usermod, /usr/bin/passwd [a-z]*,!/usr/bin/passwd root, /usr/sbin/userdel

验证:

[fedora@promote ~]$ sudo -l
[fedora@promote ~]$ sudo passwd root 显示不允许运行;

例如:
普通用户要su - root,如果root用户没有密码,就不能切换root用户;

[fedora@promote ~]$ su - root

但是,授权这个用户能够以sudo的方式运行任何命令:
[fedora@promote ~]$ sudo su - root表示以管理员身份切换管理员;此时只需要当前用户的密码即可运行管理员命令;

这就是为什么普通用户不需要切换管理员身份,仍然能用root身份运行命令;
在安装系统时,不设管理员密码,但是可以把第一个用户授权以管理员身份运行命令;想用管理员时直接用sudo su -

例如:centos用户就授权以管理员身份运行;

[root@promote ~ ]# su - centos
[fedora@promote ~ ]$ sudo su - 要求输入centos密码;

授权任何用户,这个用户就可以以任何用户的身份,运行任何命令;这又是个安全漏洞;
将来在工作中,尽量以普通用户身份直接登录,但是授权这个普通用户的身份以管理员登录即可;使用sudo就能执行所有命令;

使用sudo会记录了日志中;

常用命令标签

NOPASSWD:无需密码执行命令;
PASSWD:需要密码执行命令;

标签之后的所有命令都是生效的;

示例:
fedora ALL=(root) NOPASSWD: /usr/sbin/useradd, /usr/sbin/usermod, PASSWD: /usr/sbin/userdel

注意:在授权需特别谨慎是命令时,要使用sudo方式执行命令需要密码,不但包含passwd命令需要密码,还有包含su命令;

如果能以管理员身份运行su命令,就相当于su到管理员不需要密码;

例如:

[root@promote ~]# su - fedora
[fedora@promote ~]$ sudo -l 使用sudo命令第一次要输入密码;

可以授权sudo命令中,某个命令执行时不需要密码

[root@promote ~]# visudo   使用NOPASSWD标签,表示后面的所有命令都无需密码就可以执行;
fedora ALL=(root)       NOPASSWD: /usr/sbin/useradd, /usr/sbin/usermod, PASSWD: /usr/sbin/userdel

[root@promote ~]# su - fedora
[fedora@promote ~]$ sudo -l  无需密码即可执行;

注意:NOPASSWD标签后的所有命令都无需密码,所以要把NOPASSWD标签写在无需密码的的命令后面;

如果能以管理员身份运行su命令,就相当于su到管理员不需要密码;
例如:fedora能以管理员身份运行su命令,这个用户就相当于管理员了

[root@promote ~]# visudo
fedora ALL=(root)    /usr/bin/su
[root@promote ~]]# su - fedora
[fedora@promote ~]$ sudo -l 输入密码
查看结果:
   (root) /usr/bin/su
[fedora@promote ~]$ sudo su -

此时,普通用户fedora,就以管理员身份登录系统了;所以把用户加入wheel组之前,要慎重考虑;

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,425评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,058评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,186评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,848评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,249评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,554评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,830评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,536评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,239评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,505评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,004评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,346评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,999评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,060评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,821评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,574评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,480评论 2 267

推荐阅读更多精彩内容