【CentOS实用篇】之sudo

在普通用户登录中,很多需要管理员权限的命令无法执行,虽然提升了root的安全性,难免会影响了部分工作的进行,此时可以使用sudo命令进行授权,允许普通用户在特定时间内,利用特定的身份权限去执行特定的指令。

sudo能够授权指定用户在指定主机上运行某些命令。如果未授权用户尝试使用sudo,会提示联系管理员
sudo可以提供日志,记录每个用户使用sudo操作
sudo为系统管理员提供配置文件,允许系统管理员集中地管理用户的使用权限和使用的主机
sudo使用时间戳文件来完成类似“检票”的系统,默认存活期为5分钟的“入场券”

普通用户临时切换其他用户权限需要知道用户的密码,安全性大大降低,在执行完毕后,切回自身原有身份

[feng@c7 root]$ su -l root -c "hostname"
Password: 
c7
[feng@c7 root]$ 
sudo的文件列表

软件包 sudo-1.8.6p7-20.el7.x86_64
帮助手册 man 5 sudoers
配置文件 /etc/sudoers
日志文件 /var/log/secure
数据库文件 /var/db/sudo

数据库里记录时间戳信息:
普通用户在使用sudo执行命令时,需要输入自己的用户口令,
以验证用户的安全性,口令的保存时间为五分钟,
五分钟之后执行命令需要重新输入口令

配置文件也可以存放在文件夹/etc/sudoers.d/,针对每个非管理员用户创建独立的管理文件
配置文件支持通配符glob

配置文件规则

1、别名定义:不是必须的
2、授权规则:必须的
授权规则格式
用户 登入主机=(代表用户) 命令
示例:root ALL=(ALL) ALL
格式说明:
user:运行命令者的身份
host::通过哪些主机
(runas):以哪个用户的身份
command::运行哪些命令

属性

-b:在后台执行指令;
-h:显示帮助;
-H:将HOME环境变量设为新身份的HOME环境变量;
-k:结束密码的有效期限,也就是下次再执行sudo时便需要输入密码;
-l:列出目前用户可执行与无法执行的指令;
-p:改变询问密码的提示符号;
-s:执行指定的shell;
-u<用户>:以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份;
-v:延长密码有效期限5分钟;
-V :显示版本信息。

修改配置文件,用账户feng挂载光盘

第一步:编辑/etc/sudoers文件,在配置中添加授权feng挂载光盘的命令,在sudoers配置中,要执行的命令需要写下完整的路径。
在配置文件/etc/sudoers中,root ALL=(ALL) ALL定义了root可以执行最高权限,这条配置同时定义在root的UID不为0的时候的权限

## Allow root to run any commands anywhere 
root    ALL=(ALL)       ALL
feng    ALL=(ALL)       /usr/bin/mount /dev/sr0 /mnt/cdrom

第二步:在feng账户登录下,用sudo命令发起挂载授权请求,注意光盘挂载的路径必须和配置中完全一样,避免出错

[feng@c7 root]$ sudo mount /dev/sr0 /mnt/cdrom
[sudo] password for feng: 
mount: /dev/sr0 is write-protected, mounting read-only
[feng@c7 root]$ df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda2       52403200 3846176  48557024   8% /
devtmpfs          485304       0    485304   0% /dev
tmpfs             499980      84    499896   1% /dev/shm
tmpfs             499980   13528    486452   3% /run
tmpfs             499980       0    499980   0% /sys/fs/cgroup
/dev/sda5       41922560   32964  41889596   1% /app
/dev/sda1        1038336  172120    866216  17% /boot
tmpfs             100000      16     99984   1% /run/user/42
tmpfs             100000       0    100000   0% /run/user/0
/dev/sr0         8086368 8086368         0 100% /mnt/cdrom
授权feng取消挂载光盘

授权同一个用户可执行多条命令,在前一个命令后面用逗号 , 隔开。在umount命令中,如果后面不写路径,将授权取消所有的挂载

## Allow root to run any commands anywhere 
root    ALL=(ALL)       ALL
feng    ALL=(ALL)       /usr/bin/mount /dev/sr0 /mnt/cdrom,/usr/bin/umount /mnt.cdrom
[feng@c7 root]$ sudo umount /mnt/cdrom
[sudo] password for feng: 
[feng@c7 root]$ df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda2       52403200 3846268  48556932   8% /
devtmpfs          485304       0    485304   0% /dev
tmpfs             499980      84    499896   1% /dev/shm
tmpfs             499980   13528    486452   3% /run
tmpfs             499980       0    499980   0% /sys/fs/cgroup
/dev/sda5       41922560   32964  41889596   1% /app
/dev/sda1        1038336  172120    866216  17% /boot
tmpfs             100000      16     99984   1% /run/user/42
tmpfs             100000       0    100000   0% /run/user/0
创建非管理员用户的独立授权配置文件

在文件夹/etc/sudoers.d/下,我们可以根据不同的用户创建不同的授权配置文件文件,独立授权,方便管理。
以下步骤重新授权feng挂载光盘和取消挂载光盘并实施命令

[root@c7 sudoers.d]#vim feng

feng    ALL=(ALL)       /usr/bin/mount /dev/sr0 /mnt/cdrom,/usr/bin/umount /mnt/cdrom
~                                                                                         
[feng@c7 root]$ sudo mount /dev/sr0 /mnt/cdrom
mount: /dev/sr0 is write-protected, mounting read-only
[feng@c7 root]$ df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda2       52403200 3845208  48557992   8% /
devtmpfs          485304       0    485304   0% /dev
tmpfs             499980      84    499896   1% /dev/shm
tmpfs             499980   13528    486452   3% /run
tmpfs             499980       0    499980   0% /sys/fs/cgroup
/dev/sda5       41922560   32964  41889596   1% /app
/dev/sda1        1038336  172120    866216  17% /boot
tmpfs             100000      16     99984   1% /run/user/42
tmpfs             100000       0    100000   0% /run/user/0
/dev/sr0         8086368 8086368         0 100% /mnt/cdrom
[feng@c7 root]$ sudo umount /mnt/cdrom
[feng@c7 root]$ df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda2       52403200 3845208  48557992   8% /
devtmpfs          485304       0    485304   0% /dev
tmpfs             499980      84    499896   1% /dev/shm
tmpfs             499980   13528    486452   3% /run
tmpfs             499980       0    499980   0% /sys/fs/cgroup
/dev/sda5       41922560   32964  41889596   1% /app
/dev/sda1        1038336  172120    866216  17% /boot
tmpfs             100000      16     99984   1% /run/user/42
tmpfs             100000       0    100000   0% /run/user/0

语法检查

通过visudo命令编辑配置文件,具有语法检查功能。在配置文件中出现语法错误时,visudo会提示错误的行号,然后询问下一步操作。
e:重新编辑
x:不保存退出
q:强制退出

[root@c7 sudoers.d]#visudo
visudo: >>> /etc/sudoers: syntax error near line 79 <<<
What now? 
Options are:
  (e)dit sudoers file again
  e(x)it without saving changes to sudoers file
  (Q)uit and save changes to sudoers file (DANGER!)

What now? 
visudo加颜色

用visudo打开/etc/sudoers时,默认文本是没有颜色,在这里可以通过设置对visudo加颜色

[root@c7 ~]#cd /etc/profile.d/
[root@c7 profile.d]#vim env.sh

export EDITOR=vim
修改独立配置文件的权限

在/etc/sudoers.d/文件夹中,因为用户feng的独立授权配置文件是手动创建的,文件的全新未644,在进行语法visudo -c语法检查的时候会提示错误,可以利用visudo直接修改权限

[root@c7 ~]#cd /etc/sudoers.d/
[root@c7 sudoers.d]#ll
total 4
-rw-r--r--. 1 root root 86 Sep 13 21:01 feng
[root@c7 sudoers.d]#visudo -f feng 
[root@c7 sudoers.d]#ll
total 4
-r--r-----. 1 root root 85 Sep 13 22:06 feng
用户组的权限配置

在CentOS 7配置文件中,默认的用户组为wheel,默认可以代替所有人执行所有权限,把用户feng加入wheel用户组,可以代替root使用,但是这样的权限设置是不安全的。在CentOS 6中,用户组的配置是注释掉的

## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL
[root@c7 ~]#usermod -aG wheel feng

[root@c7 ~]#su feng

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

推荐阅读更多精彩内容