sudo 和su
场景:在服务器上进行操作的时候通常不适用root用户,但是有时候执行某一些操作需要使用root权限。。。
1 su命令
使用su命令来切换用户,su是switch user切换用户的缩写。
可以是从普通用户切换到root用户,也可以是从root用户切换到普通用户。
从普通用户切换到root用户需要输入密码,从root用户切换到普通用户不需要输入密码。
命令格式:su [参数] [-] [用户名]
用户名的默认值为root。

2 sudo命令
sudo命令可以使非root用户取得root权限。
sudo命令可以让你以root身份执行命令,来完成一些我们这个帐号完成不了的任务。
其实并非所有用户都能够执行sudo,因为有权限的用户都在/etc/sudoers中呢。

在执行sudo命令时候,提示用户不在sudoers文件中。解决办法:
我们可以通过
使用命令visudo来搞定这件事情:
visudo
打开sudoers后,像如下那样加上自己的帐号保存后就可以了。
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
cs408 ALL=(ALL) ALL

sudoers的权限是0440,即只有root才能读。在你用root或sudo后强行保存(wq!)即可。
PS:下面的方法不可行——
在使用编辑器来打开/etc/sudoers,(不能编辑的)
vi /etc/sudoers
但是在按下“i”进行编辑的时候出现提示:

3 补充
3.1 问题
*** is not in the sudoers file. This incident will be reported.”
(用户不在sudoers文件中……)
3.2 分析
处理这个问题很简单,但应该先理解其原理再操作
首先要明白root的密码一般用户是不应改知道的,但一般用户有时可能要用到root的一些权限。
这里就有了一个 /etc/sudoers 文件,用来保存一些用户,使这些用户可以通过sudo命令来暂时获取root的权限。
这些用户使用sudo时输入的密码是当前用户密码,而不是root密码。还可以在sudoers文件里限制一般用户的权限,这样就有了安全保证。
3.3 举例
现在要让jack用户获得sudo使用权
1.切换到超级用户root
$su root
2.查看/etc/sudoers权限,可以看到当前权限为440(这里是先修改文件的权限,再编辑文件)
$ ls -all /etc/sudoers
-r--r----- 1 root root 744 6月 8 10:29 /etc/sudoers
3.更改权限为777
$chmod 777 /etc/sudoers
4.编辑/etc/sudoers
$vi /etc/sudoers
5.在root ALL=(ALL:ALL) ALL 下面添加一行
jack ALL=(ALL)ALL
然后保存退出。
第一个ALL是指网络中的主机,我们后面把它改成了主机名,它指明jack可以在此主机上执行后面的命令。
第二个括号里的ALL是指目标用户,也就是以谁的身份去执行命令。
最后一个ALL当然就是指命令名了。
具体这里不作说明
6.把/etc/sudoers权限改回440
$chmod 440 /etc/sudoers
7.操作完成,切换到jack用户测试一下
sudo 和su的更多相关文章
- 深入理解 sudo 与 su 之间的区别【转】
深入理解 sudo 与 su 之间的区别 两个命令的最大区别是: sudo 命令需要输入当前用户的密码,su 命令需要输入 root 用户的密码.另外一个区别是其默认行为.sudo 命令只允许使用提升 ...
- sudo和su的区别
su 命令 su su命令的主要作用是让你可以在已登录的会话中切换到另外一个用户.换句话说,这个工具可以让你在不登出当前用户的情况下登录为另外一个用户. su命令经常被用于切换到超级用户或 root ...
- 深入理解 sudo 与 su 之间的区别
深入理解 sudo 与 su 之间的区别 作者: Himanshu Arora 译者: LCTT zhb127 在早前的一篇文章中,我们深入讨论了 sudo 命令的相关内容.同时,在该文章的末尾有提到 ...
- 因修改/etc/sudoers权限导致sudo和su不能使用的解决方法(转)
转自: 因修改/etc/sudoers权限导致sudo和su不能使用的解决方法 系统环境:ubuntu 12.04 状况: 因为修改了/etc/sudoers以及相关权限,导致sudo无法使用,恰 ...
- sudo、su、suid
sudo 是一种权限管理机制,管理员可以授权普通用户去执行 root 权限的操作,而不需要知道 root 的密码.sudo 以其他用户身份执行命令,默认以root身份执行.配置文件/etc/sudoe ...
- sudo和su
su命令就是切换用户的工具 sudo 授权许可使用的su,也是受限制的su 1. sudo 的适用条件 由于su 对切换到超级权限用户root后,权限的无限制性,所以su并不能担任多个管理员所管理的系 ...
- sudo and su
sudo bash : change the current user into root su u1: change the current user into u1 useradd: add ne ...
- Linux 中 sudo、su命令
sudo : 暂时切换到超级用户模式以执行超级用户权限,提示输入密码时该密码为当前用户的密码,而不是超级账户的密码.不过有时间限制,Ubuntu默认为一次时长15分钟.su : 切换到某某用户模式,提 ...
- su、sudo、su - root的区别
su和sudo的区别 共同点:都是root用户权限: 不同点:su只获得root权限,工作环境不变,还是在切换之前用户的工作环境:sudo是完全获得root的权限和root的工作环境. sudo:表示 ...
随机推荐
- 使用Oracle数据库实现树形结构表的子-父级递归查询和删除,通过级联菜单简单举例
前言: 我们在开发中,常常遇到单表的子-父id级联的表结构,在树形的深度不确定的情况下,一次查询出某个树形结构下的所有具有子-父级关系的数据变得十分困难. 这时,我们使用oracle提供的CONNEC ...
- JavaBean自动生成get和set方法
用Myeclipse开发java web程序,写javabean的时候,如果字段很多的话,写get和set方法是一件很无语和浪费时间的事情,所以Myeclipse提供了一个自动生成这些方法的功能. ...
- Centos常用命令及解释
ps -ef|grep java ps:将某个进程显示出来-A 显示所有程序. -e 此参数的效果和指定"A"参数相同.-f 显示UID,PPIP,C与STIME栏位. grep命 ...
- 用queue函数写广搜
以走迷宫需要的最少步数的代码为例 #include<stdio.h>#include<string.h>#include<queue> using namespac ...
- ionic 项目中使用ngCordova插件$cordovaCamera筛选手机图库图片显示出来并上传
原文档请看http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/ionic%E5%9B%BE%E7%89%87%E4%B8%8A%E4%B ...
- udl文件测试数据库连接
直接建一个udl后缀的文件(新建txt文件,改后缀) 然后会默认有个小电脑标志,双击打开就可以看到,可以用来配置数据库连接信息,可以测试连接,如果连接通过,可以再用记事本打开这个udl文件,里面就有生 ...
- PHPCMS V9表单向导调用及分页
参考资料如下:v9_form_tlj为你的表单数据表,`flqh`,`title`,`sj`,`username`,`datetime` 为你表单内的字段,page="$_GET" ...
- win server2012 r2 服务器共享文件夹设置
按照普通的win7 设置共享文件夹,不起作用 于是乎倒腾,百度,总结以下步骤 1.启用guest账号 控制面板->用户账户->管理其他账户->Guest启用 2.设置共享文件夹 添加 ...
- B. Karen and Coffee
B. Karen and Coffee time limit per test 2.5 seconds memory limit per test 512 megabytes input standa ...
- Rest模式get,put,post,delete含义与区别(转)
POST /uri 创建 DELETE /uri/xxx 删除 PUT /uri/xxx 更新或创建 GET /uri/xxx 查看 GET操作是安全的.所谓安全是指不管进行多 ...