sudo可以用来以其他用户身份执行命令,sudo命令可以针对单个命令授予临时权限。sudo仅在需要时授予用户权限,减少了用户因为错误执行命令损坏系统的可能性。

1:sudo的帮助信息如下:

[email protected]:~/桌面$ sudo --help

sudo - 以其他用户身份执行一条命令

usage: sudo -h | -K | -k | -V

usage: sudo -v [-AknS] [-g group] [-h host] [-p prompt] [-u user]

usage: sudo -l [-AknS] [-g group] [-h host] [-p prompt] [-U user] [-u user][command]

usage: sudo [-AbEHknPS] [-r role] [-t type] [-C num] [-g group] [-h host] [-pprompt] [-u user] [VAR=value] [-i|-s] []

usage: sudo -e [-AknS] [-r role] [-t type] [-C num] [-g group] [-h host] [-pprompt] [-u user] file ...

选项:

-A, --askpass 使用助手程序进行密码提示

-b, --background 在后台运行命令

-C, --close-from=num 关闭所有 >= num 的文件描述符

-E, --preserve-env 在执行命令时保留用户环境

-e, --edit 编辑文件而非执行命令

-g, --group=group 以指定的用户组或 ID 执行命令

-H, --set-home 将 HOME 变量设为目标用户的主目录。

-h, --help 显示帮助消息并退出

-h, --host=host 在主机上运行命令(如果插件支持)

-i, --login 以目标用户身份运行一个登录shell;可同时指定一条命令

-K, --remove-timestamp 完全移除时间戳文件

-k, --reset-timestamp 无效的时间戳文件

-l, --list列出用户权限或检查某个特定命令;对于长格式,使用两次

-n, --non-interactive 非交互模式,不提示

-P, --preserve-groups保留组向量,而非设置为目标的组向量

-p, --prompt=prompt 使用指定的密码提示

-r, --role=role 以指定的角色创建 SELinux 安全环境

-S, --stdin 从标准输入读取密码

-s, --shell 以目标用户运行shell;可同时指定一条命令

-t, --type=type 以指定的类型创建 SELinux 安全环境

-U, --other-user=user 在列表模式中显示用户的权限

-u, --user=user 以指定用户或 ID运行命令(或编辑文件)

-V, --version 显示版本信息并退出

-v, --validate 更新用户的时间戳而不执行命令

-- 停止处理命令行参数

2:有关sudo需要注意的地方

注意sudo命令是用来以其他身份来执行命令的,其预设的身份为root(也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行的一样)。在/etc/sudoers中设置了可执行sudo指令的用户。若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。

[email protected]:~/桌面$ vim /etc/sudoers

/etc/sudoers" [权限不足]

[email protected]:~/桌面$ sudo vim /etc/sudoers

[sudo] password for qian:

[email protected]:~/桌面$ sudo vim /etc/sudoers

从实验中我们发现,首先,我们使用vim命令尝试编辑 /etc/sudoers,系统提示我们“权限不足”。然后,我们试着加上sudo再尝试。sudo要求我们提供用户密码。请注意:它要求你提供的是你的密码,而不是root的密码。最后,我们打开了 /etc/sudoers 这个文件。就这样,我们相当于在不知道root用户密码的情况下,执行了只有root用户才能操作的命令,是不是很好玩。

3:给用户添加sudo权限

要使用sudo,用户必须被定义在 /etc/sudoers 内才可以的。

方法一如下:

1:进入超级用户模式。也就是输入"su -",系统会让你输入超级用户密码,输入密码后就进入了超级用户模式。(当然,你也可以直接用root用)

2:添加文件的写权限。也就是输入命令"chmod u+w /etc/sudoers"。

3:编辑/etc/sudoers文件。也就是输入命令"vim /etc/sudoers",进入编辑模式,找到这一 行:"root ALL=(ALL) ALL"在起下面添加"xxx ALL=(ALL) ALL"(这里的xxx是你的用户名),然后保存退出。

4:撤销文件的写权限。也就是输入命令"chmod u-w /etc/sudoers"。 然后就行了。

方法二如下:

配置sudo必须通过编辑/etc/sudoers文件,而且只有超级用户才可以修改它,还必须使用visudo编辑。之所以使用visudo有两个原因,一是它能够防止两个用户同时修改它;二是它也能进行有限的语法检查。

4:有关sudo其他比较有益的文章

linux让指定文件具有sudo的权限,Linux学习笔记——使用指定的用户权限执行程序——sudo...相关推荐

  1. Linux学习笔记004----CentOS7 提升普通用户权限到Root权限

    打开终端 输入 sudo -i 然后输入当前用户的密码: 或者打开终端输入 su root 然后输入root用户密码: 这两种方式都能获取root权限. 或者用root用户登陆系统. root用户只能 ...

  2. linux 文件和打印机共享文件夹,能实现Windows和Linux系统之间文件和打印机共享的Linux服务是( )...

    能实现Windows和Linux系统之间文件和打印机共享的Linux服务是( ) 答:SAMBA HTML 代 码 表示() 答:创建一个单选框 根据凯恩思的理论,在短期中总供给线为一条水平线,当总需 ...

  3. Linux命令学习笔记(一)—— 用户及文件权限管理

    1.用户 1.1 查看用户 who am i 查看当前用户及时间 whoami 显示当前用户 1.2创建用户 创建用户要用到 sudo 这个命令了.不过使用这个命令有两个大前提: 你要知道当前登录用户 ...

  4. linux 移出权限,一起学习在 Ubuntu 上授予和移除 sudo 权限

    导读 如你所知,用户可以在 Ubuntu 系统上使用 sudo 权限执行任何管理任务.在  机器上创建新用户时,他们无法执行任何管理任务,直到你将其加入 sudo 组的成员.在这个简短的教程中,我们将 ...

  5. linux终端删除文件命令_如何在Linux终端中删除文件和目录

    linux终端删除文件命令 Fatmawati Achmad Zaenuri/Shutterstock.comFatmawati Achmad Zaenuri / Shutterstock.com T ...

  6. 常用Linux命令、文件操作解压缩相关、Linux命令大全、测试查询

    初学Linux,记录资料,以备留存,亲手测试了一部分,有的正确,不正确的也改了,没有全部测试,如有误,望大神们不吝赐教! 开发常用命令 查找文件 find / -name filename.txt 根 ...

  7. linux查找一个文件中abc字段命令,Linux查询命令整理(示例代码)

    在linux中,查找命令主要有find和grep,以及mlocate/locate 区别: (1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间 ...

  8. linux查看cpt硬盘命令,常用Linux命令、文件操作解压缩相关、Linux命令大全、测试查询...

    初学Linux,记录资料,以备留存,亲手测试了一部分,有的正确,不正确的也改了,没有全部测试,如有误,望大神们不吝赐教! 开发常用命令 查找文件 find / -name filename.txt 根 ...

  9. 【Linux学习笔记】组管理和权限管理

    一.Linux组基本介绍 1.概念 在linux中,每个用户必须属于一个组,不能独立于组外 2.文件与组 所有者:哪个用户创建的文件,所有者就是该用户(可以修改所有者) 所在组:所有者所在的组 其他组 ...

最新文章

  1. HttpClient学习
  2. 软件开发有多少种方式
  3. markdown数学公式写法和数学符号
  4. 个人工作总结09(第二阶段)
  5. apache lucene_全文搜索Apache Lucene简介
  6. 37 岁学编程,发现第一个 Bug,创造商业编程语言 | 人物志
  7. C语言中各数据类型和他们对应的最大值和最小值的常量
  8. 光域网(IES)在Unity3d中的应用【2020】
  9. JAVA获取硬盘序列号
  10. DirectX简单的FBX文件加载(网格MESH)
  11. Xmapp安装配置和连接MySQL
  12. DRILLNET 2.0------第二十三章 井控压井单模型
  13. unison 安装使用
  14. 【 js 基础 】 setTimeout(fn, 0) 的作用
  15. Linux环境变量PSI指什么,psi是什么单位,pSI指标应用原则
  16. Noah-MP陆面过程模型建模方法与站点、区域模拟实践技术应用
  17. Codeforces Round #439 (Div. 2) E. The Untended Antiquity (hash+数状数组)
  18. juc并发编程学习(一)
  19. PS CS6正版带序列号百度网盘下载地址
  20. MySQL-redo和undo

热门文章

  1. 关于DMA的两个小知识点
  2. 批量梯度下降,随机梯度下降和小批量梯度下降的区别
  3. 解决本地工具无法连接服务器上的mysql的问题
  4. 修改文件名与删除文件
  5. [Flex] Flex 控件类 的自定义事件添加
  6. 第十一次立会暨第四次集体开发
  7. php环境搭建及入门
  8. Eclipse调试提示:Breakpoint attribute problem: installation failed
  9. Python的hasattr(),getattr(),setattr()
  10. 蚂蚁金服自主研发的三地五中心异地多活解决方案获金融科技创新大奖