Linux系统中的sudo命令使用讲解

   “Sudo” 是Unix/Linux平台上的一个非常有用的工具,它允许系统管理员分配给普通用户一些合理的“权利”,让他们执行一些只有超级用户或其他特许用户才能完成的任务,比如:运行一些像restart,reboot,passwd之类的命令,或者编辑一些系统配置文件这样以来,就不仅减少了root用户的登陆次数和管理时间,也提高了系统安全性。

  sudo是个统管一切的命令。它的字面意思是代表“超级用户才能做!”(super user do!)对Linux系统管理员或高级用户而言,它是必不可少的最重要的命令之一。你可曾有过这样的经历:在终端中试着运行某个命令,结果却遇到“拒绝访问”?这个就是你所需要的命令!但正所谓,权力越大,责任也越大!较之以根用户身份登录,或者使用 su “switch user” 命令,sudo要好得多。请耐心读下去,看看sudo能为你做些什么!

  sudo:它有什么用途?

  那么,sudo实际能做些什么呢?如果你在任何Linux命令的前面加上“sudo”这个前缀,那么它会以提升的权限来运行该命令。执行某些管理任务需要提升的权限。有一天,你可能想运行一台LAMP(Linux Apache MySQL PHP)服务器,又要手动编辑配置文件。你可能还要重新启动或重置Apache Web服务器或者是其他服务后台程序。你甚至需要提升的权限来关闭或重新计算机。“嘿,谁关闭了这台机子?”

  如果你熟悉Windows,sudo与当你试图处理任何重要操作时,弹出来的Windows用户帐户控制(ACL)对话框非常相似,只是不如后者来得友好。在Windows中,如果你试图执行某项管理任务,对话框就会问你是否想继续执行(“你果真确信想要运行刚才点击的这个程序吗?”)随后执行该任务。在Mac机器上,一个安全对话框会弹出来,要求你输入密码,并点击“确定”。

  而Linux方面显得更有戏剧性。要是没有适当的权限,一些操作会显得相当怪异。你在编辑的那个重要的配置文件可能无法正确保存内容。你安装上去的那个程序可能就是拒绝运行。你已下载、想要编译的那段出色的源代码编译不了。你要是不走运的话,甚至还会看到“拒绝访问”或另一个错误信息。

  sudo是提升权限的最出色、最安全的方法。我们不妨看一下提升权限的另一个方法。作为切换用户命令,“su”会要求你输入根密码,并且给你一个超级用户提示符,以#符号表示。这个#符号意味着“危险!你已作根用户登录上去!”你下达的第一个命令也许顺利执行完毕。但是你一旦忘了,会继续以根用户身份登录。要是打错一个字,就完蛋了!你清除了整个硬驱,而不是清除你下载的那个盗版mp3文件。你的Web服务器和家庭公司统统不见了!如果是sudo,你就得在每一个命令之前输入“sudo”。因而,你没必要记得切回到常规用户模式,那样发生的事故就会更少。

  Suderos文件

  这个文件可谓是sudo的基础。它控制着谁可以使用sudo命令来获得提升的权限。它通常位于/etc/sudoers。想编辑这个文件,最有效最安全的方式就是,使用visudo命令。这个命令会以提升权限启动vi编辑器,那样你就能编辑并保存该文件。它还会给sudoers文件上文件锁,那样别人无法编辑该文件。一旦你完成了编辑工作,它会分析文件,查找有无简单的错误。编辑sudo文件要比仅仅使用任何旧的文本编辑器来得安全得多。

  该文件含有许多参数。你可以指定哪些用户或哪些用户助可以执行哪些命令。我们准备为自己授予访问sudo的权限,为此只要在底部添加:

  username ALL=(ALL) ALL //为用户“username”授予sudo访问权 %wheel ALL=(ALL) ALL //为属于wheel用户组的所有用户授予sudo访问权

  现在指定的用户名就能够使用所有根权限了。你还可以允许某个用户或用户组只对特定服务或服务器拥有sudo访问权,以取代ALL参数,不过那是另一个话题了。

  几个选项

  与任何优秀的命令一样,也有几个很棒的选项可以让sudo处理更多的事务。

  sudo -b会在后台运行命令。这对显示许多实时输出内容的命令来说很有用。

  sudo -s 会运行以提升权限指定的外壳,为你提供#提示符(别忘了退出!)

  sudo su -会让你成为根用户,并装入你那些自定义的用户环境变量。

  有没有现在就用它?

  我们想要运行重要任务时,sudo提供了安全的提升权限。在Ubuntu用户当中,它也许是使用最广泛、功能最强大的命令,因为它已成为该发行版中的首选方法。既然你拥有了这么大的权利,那么在运行命令时务必要做到安全!世上可没有su-undo撤销命令!

  sudo的特点

  sudo扮演的角色注定了它要在安全方面格外谨慎,否则就会导致非法用户攫取root权限。同时,它还要兼顾易用性,让系统管理员能够更有效,更方便地使用它。sudo设计者的宗旨是:给用户尽可能少的权限但仍允许完成他们的工作。所以,sudo 有以下特点:

  # 1. sudo能够限制指定用户在指定主机上运行某些命令。

  # 2. sudo可以提供日志,忠实地记录每个用户使用sudo做了些什么,并且能将日志传到中心主机或者日志服务器。

  # 3. sudo为系统管理员提供配置文件,允许系统管理员集中地管理用户的使用权限和使用的主机。它默认的存放位置是/etc/sudoers。

  # 4.sudo使用时间戳文件来完成类似“检票”的系统。当用户执行sudo并且输入密码后,用户获得了一张默认存活期为5分钟的“入场券”(默认值可以在编译的时候改变)。超时以后,用户必须重新输入密码。

  sudo常用命令

  代码如下:

  sudo -h Help

  列出使用方法,退出。

  代码如下:

  sudo -V Version

  显示版本信息,并退出。

  代码如下:

  sudo -l List

  列出当前用户可以执行的命令。只有在sudoers里 的用户才能使用该选项。

  代码如下:

  sudo -u username|#uid User

  以指定用户的身份执行命令。后 面的用户是除root以外的,可以是用户名,也可以 是#uid。

  代码如下:

  sudo -k Kill

  清除“入场卷”上的时间,下次再使用sudo时要 再输入密码。

  代码如下:

  sudo -K Sure kill

  与-k类似,但是它还要撕毁“入场卷”,也 就是删除时间戳文件。

  代码如下:

  sudo -b command Background

  在后台执行指定的命令。

  代码如下:

  sudo -p prompt command Prompt

  可以更改询问密码的提示语, 其中%u会代换为使用者帐号名称,%h会显示主机名称。 非常人性化的设计。

  代码如下:

  sudo -e file Edit

  不是执行命令,而是修改文件,相当于命 令sudoedit。

时间: 2024-10-28 17:53:02

Linux系统中的sudo命令使用讲解的相关文章

关于在Linux系统中的gdb命令知识

  在Linux系统中有许多的命令程序来辅助系统的正常和方便运行,那么其中在系统中有着一个叫做gdb命令的程序,那么我们今天就来了解下关于gdb命令的知识吧! 一.常规调试 gdb是Linux下常用的程序调试工具,当然前提是用gcc/g++编译时加上-g参数,这样编译出的可执行程序会加上gdb调试信息. gdb命令不少,但常用的主要包括如下命令: (1)list [file:]functuon 命令缩写是l,查看源码,不加参数时,向下显示源码,加参数-l时,向上显示源码,默认显示10行. 也可以

在Linux系统中使用tar命令压缩和解压文件的教程

  linux中的tar命令 tar(磁带归档)命令是linux系统中被经常用来将文件存入到一个归档文件中的命令. 其常见的文件扩展包括:.tar.gz 和 .tar.bz2, 分别表示通过了gzip或bzip算法进一步进行了压缩. 在本教程中我们会管中窥豹一下在linux桌面或服务器版本中使用tar命令来处理一些创建和解压归档文件的日常工作的例子. 使用tar命令 tar命令在大部分linux系统默认情况下都是可用的,所以你不用单独安装该软件. tar命令具有两个压缩格式,gzip和bzip,

Linux系统中vim编辑命令使用方法

使用Linux,少不了和编辑器打交道.Linux系统中有多个编辑器,一般比如nano,gedit,vi,vim等.nano使用简单,很容易上手,不过功能比较单一.vi命令功能强大,不过上手可能不是很容易.vim是vi命令的加强版,一般使用vim命令.下面简单说下vim的常见用法. vim是一个全屏编辑器,模式化编辑器.模式主要有编辑模式,输入模式,末行模式.默认打开vim命令进入的是编辑模式. 打开文件打开文件:vim /path/to/somefile 其他用法: vim +#:打开文件,并定

Linux系统中使用lftp命令实现FTP上传下载

  适合于 FTP 操作的命令和软件比较多. Linux 下常用的操作命令有 ftp, lftp 和 sftp,图形化界面非常好用的有 FileZilla.不过在服务器命令界面中,我还是觉得lftp使用比较方便,功能也比ftp更加强大.lftp的界面很像Linux的shell,有命令补全.历史记录.允许多个后台任务执行.书签.排队.镜像.断点续传.多进程下载等功能. 登录ftp命令 代码: lftp 用户名:密码@ftp地址:传送端口(默认21) 用法 (1)lftp username:pass

在Linux系统中安装apt-file命令 apt-file命令怎么使用

刚才安装Spynner模块,使用的是easy_install spynner安装,各种文件缺失啊,无意中发现apt-file命令,从此再也不用担心编译软件缺少某个文件而不知所措了. 1.首先得安装apt-file命令 代码如下:apt-get install apt-file2.接着更新apt-file的缓存 代码如下:apt-file update3.现在你可以使用apt-file搜索缺失的文件了,比如编译过程中提示缺少 代码如下:root@test:~# apt-file search XT

Linux系统中使用iostat命令检测磁盘的IO性能

  iostat命令可以提供丰富的IO性能状态数据.iostat可以收集和显示系统输入/输出存储设备方面的统计信息.经常用于追查存储设备性能方面的问题,包括设备,本地磁盘和nfs等远程磁盘. iostat提供几个用于定制输出的开关.最有用的有: -c 只显示CPU行 -d 显示设备(磁盘)使用状态 -k 以千字节为单位显示磁盘输出 -t 在输出中包括时间戳 -x 在输出中包括扩展的磁盘指标 rrqm/s: 每秒进行 merge 的读操作数目. wrqm/s: 每秒进行 merge 的写操作数目.

Linux系统中quota磁盘命令的相关使用解析

  quota 显示磁盘已使用的空间与限制. 语 法:quota [-quvV][用户名称...] 或 quota [-gqvV][群组名称...] 补充说明:执行quota指令,可查询磁盘空间的限制,并得知已使用多少空间. 参 数: -g 列出群组的磁盘空间限制. -q 简明列表,只列出超过限制的部分. -u 列出用户的磁盘空间限制. -v 显示该用户或群组,在所有挂入系统的存储设备的空间限制. -V 显示版本信息. 在网络管理的工作中,由于硬盘的资源是有限的,常常需要为多用户的服务器设定用户

Linux系统中的screen命令基本使用教程

  作为linux服务器管理员,经常要使用ssh登陆到远程linux机器上做一些耗时的操作. 也许你遇到过使用telnet或SSH远程登录linux,运行一些程序.如果这些程序需要运行很长时间(几个小时),而程序运行过程中出现网络故障,或者客户机故障,这时候客户机与远程服务器的链接将终端,并且远程服务器没有正常结束的命令将被迫终止. 又比如你SSH到主机上后,开始批量的scp命令,如果这个ssh线程断线了,scp进程就中断了.在远程服务器上正在运行某些耗时的作业,但是工作还没做完快要下班了,退出

Linux系统中的passwd命令实用技巧小结

  先来回顾一下passwd命令的基本用法: Linux passwd命令用来更改使用者的密码 语法 passwd [-k] [-l] [-u [-f]] [-d] [-S] [username] 必要参数: -d 删除密码 -f 强制执行 -k 更新只能发送在过期之后 -l 停止账号使用 -S 显示密码信息 -u 启用已被停止的账户 -x 设置密码的有效期 -g 修改群组密码 -i 过期后停止用户账号 选择参数: --help 显示帮助信息 --version 显示版本信息 实例 修改用户密码