博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux中sudo命令的使用
阅读量:5231 次
发布时间:2019-06-14

本文共 2061 字,大约阅读时间需要 6 分钟。

sudo 命令其实是Linux中的一种权限管理机制,管理员可以授权于一些普通用户去执行一些 root 执行的操作,而不需要知道 root 的密码。

严谨些说,sudo 允许一个已授权用户以超级用户或者其它用户的角色运行一个命令。当然,能做什么不能做什么都是通过安全策略来指定的。sudo 支持插件架构的安全策略,并能把输入输出写入日志。第三方可以开发并发布自己的安全策略和输入输出日志插件,并让它们无缝的和 sudo 一起工作。默认的安全策略记录在 /etc/sudoers 文件中。而安全策略可能需要用户通过密码来验证他们自己。也就是在用户执行 sudo 命令时要求用户输入自己账号的密码。如果验证失败,sudo 命令将会退出。

我们可以通过visudo来修改/etc/sudoers配置文件,visudo等价于vi /etc/sudoers。

文件的语法相当于 who  where  whom  command 表示哪个用户可以在哪个主机以谁的身份来执行哪些命令。

如:

[root@zxl ~]# visudo

root:表示root用户。

ALL:表示在任何主机上都可以,也可以表示192.168.232.0/24。

(ALL):表示以任何的身份。

ALL:表示可以执行任何命令。

整条语句的意思就是:root用户可以在任何机器上以任何身份执行任何命令。

上面这条表示在wheel这个组中的成员所拥有的权限,这里表示这个组中的成员能在任何机器上以任何身份来执行任何命令。

和前面的意思是一样的,不过在执行命令的时候不会提示输入密码。默认的情况下是需要输入角色的密码。

eg:

给zxl用户赋予任何角色来执行任何命令
zxl  ALL=(ALL)  ALL
切换到zxl用户:
[root@zxl ~]# su - zxl
执行useradd命令:
需要在命令前加上sudo
[zxl@zxl ~]$ sudo useradd lisi

We trust you have received the usual lecture from the local System

Administrator. It usually boils down to these three things:

#1) Respect the privacy of others.

#2) Think before you type.
#3) With great power comes great responsibility.

[sudo] password for zxl:

[zxl@zxl ~]$
注意:在这过程中需要输入zxl用户的密码
[zxl@zxl ~]$ tail -1 /etc/passwd
lisi:x:501:501::/home/lisi:/bin/bash
[zxl@zxl ~]$

给zxl用户以任何身份来执行指定命令:

99 zxl  ALL=(ALL)  /bin/touch, /usr/sbin/useradd

表示:zxl用户可以执行touch和useradd命令,多条命令用逗号和空格隔开,命令用全路径,查看命令所在路径用which命令。

[root@zxl ~]# su - zxl

[zxl@zxl ~]$ sudo touch /etc/test.txt
[sudo] password for zxl:
[zxl@zxl ~]$ ll /etc/test.txt
-rw-r--r-- 1 root root 0 Jul 11 17:32 /etc/test.txt
[zxl@zxl ~]$

屏蔽输入密码提示:在命令处添加 NOPASSWD: ALL

表示zxl用户可以不用输入密码执行任何命令。

[root@zxl ~]# su - zxl

[zxl@zxl ~]$ sudo touch /etc/test1.txt
[zxl@zxl ~]$ LANG=en
[zxl@zxl ~]$ ll /etc/test.txt
-rw-r--r-- 1 root root 0 Jul 11 17:32 /etc/test.txt
[zxl@zxl ~]$ ll /etc/test1.txt
-rw-r--r-- 1 root root 0 Jul 11 17:43 /etc/test1.txt
[zxl@zxl ~]$
[zxl@zxl ~]$ rm -rf /etc/test1.txt
rm: cannot remove `/etc/test1.txt': Permission denied
[zxl@zxl ~]$ sudo rm /etc/test1.txt
[zxl@zxl ~]$ sudo rm /etc/test.txt
[zxl@zxl ~]$

 

转载于:https://www.cnblogs.com/a562812039/p/11174580.html

你可能感兴趣的文章
Java基础教程——网络基础知识
查看>>
自己到底要的是什么
查看>>
this 指向
查看>>
Kruskal基础最小生成树
查看>>
BZOJ.4819.[SDOI2017]新生舞会(01分数规划 费用流SPFA)
查看>>
ubuntu 14.04 安装搜狗拼音输入法
查看>>
浅谈算法和数据结构: 一 栈和队列
查看>>
[WebMatrix] 如何将SQL Compact 4.0 移转至SQL Server 2008 Express
查看>>
Java内部类详解
查看>>
python-基础
查看>>
17 案例
查看>>
【BZOJ 1221】 [HNOI2001] 软件开发
查看>>
【hdu 1429】胜利大逃亡(续)
查看>>
SQL字符型转日期型
查看>>
Java程序设计教程(第2版)阅读总结
查看>>
图论-次短路求法
查看>>
ios下opencv编译merge函数报错问题
查看>>
What's New for Visual C# 6.0
查看>>
ExtJs学习笔记之ComboBox组件
查看>>
关于收费软件
查看>>