sudo的用法

1)第一个字段zhangj指定的是用户:可以是用户名,也可以是别名。每个用户设置一行,多个用户设置多行,也可以将多个用户设置成一个别名后再进行设置。
2)第二个字段ALL指定的是用户所在的主机:可以是ip,也可以是主机名,表示这个sudo设置后的文件即/etc/sudoers只在这个主机上生效,ALL表示在所有主机上都生效!限制的一般都是本机,也就是限制使用这个文件的主机;如果指定为"192.168.1.88"表示这个文件只有在这台主机上生效,如果拷贝到别的机子上是不起作用的!一般都指定为"ALL"表示所有的主机,不管文件拷到那里都可以用。
3)第三个字段(ALL)括号里指定的也是用户:指定以什么用户身份执行sudo,即使用sudo后可以享有所有账号下的权限。如果要排除个别用户,可以在括号内设置,比如ALL=(ALL,!root,!ops)。也可以设置别名
4)第四个字段ALL指定的是执行的命令:即使用sudo后可以执行所有的命令。也可以设置别名。NOPASSWD: ALL表示使用sudo的不需要输入密码。
如果我们想让用户wangshibo只能在本主机(主机名为test-huanqiu)以root账户执行/bin/chown、/bin/chmod 两条命令,那么就应该这样配置:
[root@test-huanqiu ~]# visudo
.......
# User privilege specification
zhangj test-huanqiu=(root) /bin/chown,/bin/chmod                                    #注意这里指令要用绝对路劲
如果zhangj用户登录之后运行sudo命令,不满足上面三个条件之一的操作都将失败。
此时,你在非root用户的登录时,就能够通过
sudo -u root chmod 755 ***
此时回车,会让你输入你登录用户的密码,而不是root的密码,这样就安全多了。
免密操作:
安全是安全了,但很麻烦,每次执行指令都要输入密码,若要消除密码输入操作,修改配置文件:
使用root用户
visudo
zhangj       ALL=(root)      NOPASSWD:/usr/bin/vim            #这里的NOPASSWD就是配置支持免密执行的字段
这里设置的是vim指令能够无密码执行!

1|2授权给用户组:

[root@test-huanqiu ~]# visudo
.....
# Allow members of group sudo to execute any command
# (Note that later entries override this, so you might need to move it further down)
%sudo ALL=(ALL) ALL
和授权给单个用户类似,只不过将用户名在这里换成%组名,所有在该组中的用户都按照此规则进行授权。对于该例,所有在 sudo 组内的用户都有在任何终端(第一个ALL)、以任何用户(第二个ALL)、执行任何命令(第三个ALL)的权限,查看 /etc/group 文件可以知道哪些用户属于 sudo 组。
普通用户编辑文件没法保存的情况:
有时经常会遇到这样的一个囧境:
使用vim对某个文件进行编辑,编辑完之后,按 ESC 之后回到普通模式,再按:wq准备保存退出时,发现没有权限对该文件进行修改,因为在使用vim 命令时忘记在前面加sudo了。出现这种问题,大多数人的做法是只能不保存强退,再加上 sudo 重新编辑保存,
其实大可不必这么愚蠢的做法了,巧妙的做法是:
在vim的普通模式下,按 :w !sudo tee % ,这样就可以 root 权限来保存文件了,你也无需因为自己一时忘记加个 sudo 而沮丧懊恼了!
亲测可行;
但是在下图中:

这里选择L,表示加载文件,再用q!退出就保存了。

1|3 执行root命令忘记加sudo:

还会遇到这样稍微好一点的情形:输入一个长长的命令,按Enter之后出现无权限操作,因为在命令前面忘记加sudo了。
大多人的做法是按 ↑ 回到上一条命令,在该命令之前加上sudo,再执行该命令。
其实,也大可不必这样,巧妙的做法是:
只要输入 sudo !! 即可,这里的 !! 代表上一条命令。如:
[zhangjian@test-huanqiu ~]$ cat test
cat: test: Permission denied
[zhangjian@test-huanqiu ~]$ sudo !!
sudo cat test
lala
xiixixi'
nihao
ok,拿到了test文件的内容!

1|4shell内置命令,没法使用sudo

shell是一个交互式的应用程序,在执行外部命令时通过fork来创建一个子进程,再通过exec来加载外部命令的程序来执行。
但是如果一个命令是shell内置命令,那么只能直接由shell 来运行。
sudo 的意思是,以别的用户(如root)的权限来fork一个进程,加载程序并运行,因此sudo后面不能跟shell 的内置命令。
实例说明:
[zhangj@test-huanqiu ~]$ sudo cd /sys/kernel/debug/
sudo: cd: command not found
在这种情况,我们又没有root账户的密码,我们怎样执行该命令呢?
有种办法就是使用sudo获得root shell 的权限,然后在root shell中执行该命令。
进入root shell 很简单,输入sudo bash确认本用户的密码即可(如果/etc/sudoers里配置了无密码使用sudo,就不需要进入密码),此时你会发现命令提示符显示当前 root。一旦获得root shell,你就可以执行任何命令而不需要在每条命令前输入sudo了。
[zhangj@test-huanqiu ~]$ sudo bash                   //或者sudo su - 或者 sudo -s,其实就使用sudo命令从当前用户切换到root用户
[root@test-huanqiu debug]# cd /sys/kernel/debug/
[root@test-huanqiu debug]#

1|5sudo操作记入日志

作为一个Linux系统的管理员,不仅可以让指定的用户或用户组作为root用户或其它用户来运行某些命令,还能将指定的用户所输入的命令和参数作详细的记录。
而sudo的日志功能就可以用户跟踪用户输入的命令,这不仅能增进系统的安全性,还能用来进行故障检修。
1)创建sudo日志文件
我们将sudo日志文件放置在/var/log/sudo.log 文件中:
[zhangj@ops-server4 ~]$ sudo touch /var/log/sudo.log
2)修改/etc/rsyslog.conf配置文件(有些版本系统的这个文件名为/etc/syslog.conf),在该文件加入下面一行:
[zhangj@ops-server4 ~]$ sudo vim /etc/rsyslog.conf
.........
local2.debug /var/log/sudo.log //空白不能用空格,必须用tab
3)修改/etc/sudoers 配置文件
注意网上很多关于sudo日志文件配置都缺少这一步!在该文件中加入下面一行:
[zhangj@ops-server4 ~]$ sudo vim /etc/sudoers
........
Defaults logfile=/var/log/sudo.log
4)重启 syslog 服务:
[zhangj@ops-server4 ~]$ sudo service rsyslog restart
5)最后,就可以查看sudo日志记录了:
经过上面的配置,sudo的所有成功和不成功的sudo命令都记录到文件/var/log/sudo.log 中。
例如我上面运行几条sudo 命令之后,查看该文件的记录如下:
[zhangj@ops-server4 ~]$ cat /var/log/sudo.log
Dec 3 11:28:38 : zhangj: TTY=pts/0 ; PWD=/home/zhangj ; USER=root ;
COMMAND=/sbin/service rsyslog restart
Dec 3 11:29:49 : zhangj : TTY=pts/0 ; PWD=/home/zhangj ; USER=root ;
COMMAND=/bin/cat /etc/passwd
Dec 3 11:29:56 : zhangj : TTY=pts/0 ; PWD=/home/zhangj ; USER=root ;
COMMAND=/usr/bin/vim /root/a.sh
Dec 3 11:30:35 : zhangj : user NOT in sudoers ; TTY=pts/0 ;
PWD=/home/guohuihui ; USER=root ; COMMAND=/usr/bin/vim /root/a.shsa
Dec 3 11:30:47 : zhangj : user NOT in sudoers ; TTY=pts/0 ;
PWD=/home/guohuihui ; USER=root ; COMMAND=/usr/bin/vim /root/a.sh
谁做了什么操作,一目了然!
很强势!

1|6为多个用户分配不同的组:

在root用户的情况下,编辑/etc/group文件,这个文件就是控制系统的组和用户所属组情况的。
groupadd sudo                 #因为没有指定gid,所以就按着文件中的gid往后推的
sudo:x:504:                    #添加完之后在该文件中就出现了这条字段。
修改为:
sudo:x:504:batman,test            #此时,用户batman和test的附属组就是sudo了
此时再visudo
%sudo   ALL=(root)      NOPASSWD:/usr/bin/vim
%sudo   ALL=(root)      NOPASSWD:/bin/cat
保存退出,可以用:
visudo -c    来检查语法
返回OK,没问题
检测:
-rw-------. 1 root root 1595 Jul 24 05:00 rsyncd.conf
-rw-------. 1 root root    8 Jul 24 05:00 rsyncd.pass
-rw-------. 1 root root   14 Jul 24 05:00 rsyncd.pwd
这三个文件,只有root有操作权限,现在
[test@zj rsync]$ sudo vim rsyncd.conf
发现也是ok的。
说明配置成功!
(0)

相关推荐

  • Linux禁用root用户

    在创建各种云主机的时候,云服务商给的都是root用户,这很方便,但是有某些时候会造成一些困扰,日后在服务器上启动各种服务后,仅仅拥有root权限的用户才能访问更改这些服务,这样会造成一些不必要的困扰, ...

  • Linux学习--2.文件管理的基本命令

    文件的基本操作 前言: 看完这篇图文我应该能保证读者在Linux系统下对文件的操作能跟用Windows环境下一样流畅吧,好了下面正文 正文: 基础知识: linux里共有以下几类文件,分别为目录(di ...

  • linux 系统 chown设置文件权限

    一.相关命令sudo groupadd dnsmasqsudo chown enadmin:enadmin test.txt二.过程~/test$ ls -l-rw-r--r-- 1 root roo ...

  • Linux高级命令

    文章目录 1.重定向 2.查看文件内容命令 2.1 cat查看小文件 2.2 more分屏查看大文件 2.3 管道(|) 3.链接命令 3.1 软链接 3.2 硬链接 4.文本搜索命令 5.查找文件命 ...

  • EXCEL Range用法集

    来源:博客园 网址:https://www.cnblogs.com/aademeng/articles/12952659.html 标签:Execl,Range,用法 收藏:株野 作者:天涯海角路 日 ...

  • 地支藏干用法

    地支藏干歌诀 子宫癸水在其中,丑癸辛金己土同: 寅宫甲木兼丙戊,卯宫乙木独一苗, 辰藏乙戊三分癸,巳中庚金丙戊丛: 午宫丁火己土同,未宫乙己丁共宗: 申位庚金壬水戊,酉宫辛金独丰隆: 戌宫辛金及丁戊, ...

  • 身和体的定义及用法

    ​易山/文 盲派命法,身旺不旺无所谓,体旺就行,体旺也能做事. 身:指日干. 体:指印比食伤禄(除财官以外的神). 身和体是取得财官的工具. 我的体能制住财官,我能踏实干事,能担当.制不住财官,偷奸耍 ...

  • 中学英语16种时态完美精讲(每一种用法配一例句)

    中学英语时态共有16种,分别是一般现在.一般过去.一般将来.过去将来时,以及这四者的进行时.完成时和完成进行时. 在不同的时态中,动词都会发生相应变化,时间状语的运用也会有所不同.究竟怎样区分不同时态 ...

  • 附子理中丸、桂附理中丸、枳实理中丸有什么区别?用法都在这了

    附子理中丸、桂附理中丸、枳实理中丸有什么区别?用法都在这了

  • 2.6 多条件“或”函数or的用法

    多条件"或"函数or的用法

  • 解题技巧:梳理总结高考导数的十四种用法

    文章行文思路如下: ..... 备考策略:高考数学最后一课(共8篇) 普通中学拔尖创新人才培养的关键路径与现实思考 数学编题那点事?--以教材为起点的试题设计

  • 初天麟:秘传算命术之八字胎元、命宫的用法,请珍惜(有口诀)

    在命理学中,胎元和命宫也是两个非常重要的方面,在具体论命看事时常常如有神助.但我们常见的八字著作中,却不见提及.在<三命通会>有较详细的描述,但绕弯弯太多,很容易晕圈了.在各种排盘网站上也 ...

  • 关于BOLL布林带用法释疑补充

    大凡忽悠小白的嗜血分析师,很少有不爱BOLL布林带的,为何:轨迹用法形象生动,英文中译名高端大气,内在玄妙抬头不见阳春白雪,低头不见下里巴人.实乃迷惑弑杀小白的第一暗器. 关于BOLL的用法,我们已经 ...