场景:在服务器上进行操作的时候通常不适用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的更多相关文章

  1. 深入理解 sudo 与 su 之间的区别【转】

    深入理解 sudo 与 su 之间的区别 两个命令的最大区别是: sudo 命令需要输入当前用户的密码,su 命令需要输入 root 用户的密码.另外一个区别是其默认行为.sudo 命令只允许使用提升 ...

  2. sudo和su的区别

    su 命令 su su命令的主要作用是让你可以在已登录的会话中切换到另外一个用户.换句话说,这个工具可以让你在不登出当前用户的情况下登录为另外一个用户. su命令经常被用于切换到超级用户或 root ...

  3. 深入理解 sudo 与 su 之间的区别

    深入理解 sudo 与 su 之间的区别 作者: Himanshu Arora 译者: LCTT zhb127 在早前的一篇文章中,我们深入讨论了 sudo 命令的相关内容.同时,在该文章的末尾有提到 ...

  4. 因修改/etc/sudoers权限导致sudo和su不能使用的解决方法(转)

    转自: 因修改/etc/sudoers权限导致sudo和su不能使用的解决方法   系统环境:ubuntu 12.04 状况: 因为修改了/etc/sudoers以及相关权限,导致sudo无法使用,恰 ...

  5. sudo、su、suid

    sudo 是一种权限管理机制,管理员可以授权普通用户去执行 root 权限的操作,而不需要知道 root 的密码.sudo 以其他用户身份执行命令,默认以root身份执行.配置文件/etc/sudoe ...

  6. sudo和su

    su命令就是切换用户的工具 sudo 授权许可使用的su,也是受限制的su 1. sudo 的适用条件 由于su 对切换到超级权限用户root后,权限的无限制性,所以su并不能担任多个管理员所管理的系 ...

  7. sudo and su

    sudo bash : change the current user into root su u1: change the current user into u1 useradd: add ne ...

  8. Linux 中 sudo、su命令

    sudo : 暂时切换到超级用户模式以执行超级用户权限,提示输入密码时该密码为当前用户的密码,而不是超级账户的密码.不过有时间限制,Ubuntu默认为一次时长15分钟.su : 切换到某某用户模式,提 ...

  9. su、sudo、su - root的区别

    su和sudo的区别 共同点:都是root用户权限: 不同点:su只获得root权限,工作环境不变,还是在切换之前用户的工作环境:sudo是完全获得root的权限和root的工作环境. sudo:表示 ...

随机推荐

  1. nodeJS实战:自定义模块与引入,不同模块的函数传递及回调处理,exports与module.exports(基于nodejs6.2.0)

    前言:本文基于上一篇文章中的源代码进行改写,地址:http://blog.csdn.net/eguid_1/article/details/52182386 注意:为什么不用module.export ...

  2. form表单在前台转json对象

    会发生序列化乱码问题,待解决. //根据表单id将其内空间,名称,值转为json var fireTraceEquipment =queryParamByFormId('form1'); functi ...

  3. Python 基于TK 文本编辑器

    #coding=utf-8 import sys,os import tkFileDialog from Tkinter import * from tkFont import Font print ...

  4. Chapter 3:Speech Production and Perception

    作者:桂. 时间:2017-05-24  09:09:36 主要是<Speech enhancement: theory and practice>的读书笔记,全部内容可以点击这里. 一. ...

  5. linux系统中的删除操作

    #rm [-fir] 文件或者目录 参数: -f:就是force的意思,忽略不存在的文件,不会出现警告信息: -i:互动模式,在删除前会询问用户是否操作: -r:递归删除.最常用的在目录删除.这是一个 ...

  6. 网站优化html关键词代码使用

    html的meta标签 .meta标签是内嵌在你网页中的特殊html标签,包含着你有关于你网页的一些隐藏信息.Meat标签的作用是向搜索引擎解释你的网页是有关哪方面信息的.对于高级的搜索引擎来说,ht ...

  7. 遇到的Mysql的一个坑

    自己写的Java代码怎么也无法操作MySQL的写操作,打印SQL语句没有问题,检查连接也没有问题,最后手动写了一条记录,发现主键重复了,但是当时表是空的!所以就很震惊,于是选择删表重新来一次,这回成功 ...

  8. JAVA基础——Arrays工具类十大常用方法

    Arrays工具类十大常用方法 原文链接:http://blog.csdn.net/renfufei/article/details/16829457 0. 声明数组 String[] aArray ...

  9. web拖动条显示

    <!DOCTYPE html"> <html> <head> <title>滚动条拖动评分的JS效果</title> <st ...

  10. 静态变量和Session

    静态变量: Application级别的,不同客户端访问同一个变量. Session:对于每个访问的客户端是独立的,都有一个唯一的SessionID.也就是说,不同客户端下,都可以有一个Session ...