Linux学习笔记——使用指定的用户权限执行程序——sudo
sudo可以用来以其他用户身份执行命令,sudo命令可以针对单个命令授予临时权限。sudo仅在需要时授予用户权限,减少了用户因为错误执行命令损坏系统的可能性。
1:sudo的帮助信息如下:
qian@ubuntu:~/桌面$ 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] [-p prompt] [-u user] [VAR=value] [-i|-s] [<command>]
usage: sudo -e [-AknS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p prompt] [-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分钟的有效期限,超过期限则必须重新输入密码。
qian@ubuntu:~/桌面$ vim /etc/sudoers
/etc/sudoers" [权限不足]
qian@ubuntu:~/桌面$ sudo vim /etc/sudoers
[sudo] password for qian:
qian@ubuntu:~/桌面$ sudo vim /etc/sudoers
qian@ubuntu:~/桌面$
从实验中我们发现,首先,我们使用vim命令尝试编辑 /etc/sudoers,系统提示我们“权限不足”。然后,我们试着加上sudo再尝试。sudo要求我们提供用户密码。请注意:它要求你提供的是你的密码,而不是root的密码。最后,我们打开了 /etc/sudoers 这个文件。就这样,我们相当于在不知道root用户密码的情况下,执行了只有root用户才能操作的命令,是不是很好玩。
3:给用户添加sudo权限
要使用sudo,用户必须被定义在 /etc/sudoers 内才可以的。
方法一如下:
原文连接 http://blog.chinaunix.net/uid-25305993-id-126661.html
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"。 然后就行了。
方法二如下:
原文连接 http://man.linuxde.net/sudo
配置sudo必须通过编辑/etc/sudoers文件,而且只有超级用户才可以修改它,还必须使用visudo编辑。之所以使用visudo有两个原因,一是它能够防止两个用户同时修改它;二是它也能进行有限的语法检查。
4:有关sudo其他比较有益的文章
http://os.51cto.com/art/201307/404879.htm
http://onlyzq.blog.51cto.com/1228/517701/
http://os.51cto.com/art/201010/229477.htm
Linux学习笔记——使用指定的用户权限执行程序——sudo的更多相关文章
- Linux学习笔记——切换并取代用户身份命令——su
再次从头好好的学习Linux,本着以免轻易忘记,以备后用的原则,将我觉得常用或者好玩的linux命令记录在这,注意:我的实验环境是 Ubuntu 14.04.1 su 这个命令我经常使用,因为 ...
- Linux学习笔记(12)用户和用户组管理
越是对服务器安全性要求高的服务器,越需要建立合理的用户权限等级制度和服务器操作规范.在Linux中主要是通过用户配置文件来查看和修改用户信息. 1 用户信息文件 (1)用户信息文件/etc/passw ...
- Linux学习笔记05—文件与目录权限
1. 绝对路径与相对路径绝对路径:路径的写法一定由根目录 ‘/’写起,例如 /usr/local/mysql 这就是绝对路径相对路径:路径的写法不是由根目录 ‘/’写起,例如:首先用户进入到/, 然后 ...
- Linux学习笔记 (六)用户管理命令
一.用户帐号 1.超级用户:具有操作系统中的最高权限,用来管理和维护操作系统.root用户. 2.普通用户:由root用户来创建,在宿主目录中具有完全权限. 3.程序用户:由应用程序添加,维护某个应用 ...
- Linux学习笔记(2)-用户和用户组
用户(user)和用户组(group)概念 linux是一个多用户操作系统,他允许多个用户登录linux系统进行各自不同的操作.为了方便管理用户不同的权限,组的概念应用而生,一个组可以包含多个用户,共 ...
- Linux 学习笔记
Linux学习笔记 请切换web视图查看,表格比较大,方法:视图>>web板式视图 博客园不能粘贴图片吗 http://wenku.baidu.com/view/bda1c3067fd53 ...
- linux学习笔记2-linux的常用命令
第一篇博客:linux学习笔记1-ubuntu的安装与基本设置 之中,已经介绍了如何安装linux操作系统,以及一些基本的设置修改. 本篇博客主要介绍linux中的一些常用的终端命令 ======== ...
- deepin linux学习笔记
目录 deepin linux学习笔记 前言 linux常用命令 ls 显示文件夹内容 cd 切换当前目录 pwd 查看当前工作目录 mkdir 新建文件夹 rm 删除文件或文件夹 mv 移动文件 c ...
- linux学习笔记2 - linux常用命令
转载请标注原链接:http://www.cnblogs.com/xczyd/p/5543731.html 第一篇博客:linux学习笔记1-ubuntu的安装与基本设置 之中,已经介绍了如何安装lin ...
随机推荐
- OMG点菜系统
算是一个项目吧,自己一个人也写了很久,有很多东西是自己写的,当然也有在网上借鉴人家大神的,不一而足,代码太多,不贴了,直接上图.(一直出现的天蓝色是使用windows自带主题壁纸上截取的一段) [原本 ...
- Hadoop学习资料
转自:http://cloud21.iteye.com/blog/607175 第一手资源 hadoop官方网站 hadoop.apache.org 最权威的官方资源之一 dev.yahoo.hado ...
- GCD下的几种实现同步的方式
GCD多线程下,实现线程同步的方式有如下几种: 1.串行队列 2.并行队列 3.分组 4.信号量 实例: 去网上获取一张图片并展示在视图上. 实现这个需求,可以拆分成两个任务,一个是去网上获取图片,一 ...
- MagicalRecord 多表关联数据操作
最近在使用MagicalRecord做数据持久层CoreData的操作库,今天做了一个多表关联数据的操作,整理了一个demo,特此记录一下. 关于如何使用Cocopads 和 MagicalRecor ...
- hdu 2079
ps:昨天刚做了个母函数的,觉得不太熟,今天又是母函数..很好.. 代码: #include "stdio.h" #include "string.h" ]; ...
- 如何编译spring源码,并导入到eclipse中
wsc@WSC-PC /d/wsc/study-spring-source$ git clone https://github.com/spring-projects/spring-framework ...
- 高通CP Crash分析调试
1. 转换tlcore文件 获取 EBICS0.BIN tl2elf --qconly tlcore 2.使用T32 命令把Riva的dump信息从EBICS0文件分离出来 data.load.BIN ...
- 拔靴法--Bootstrap--R语言实现
拔靴法属于重复抽样(resampling)方法,与Monte Carlo相比,二者真实的母体不同.它是将已有的观察值作为母体重复抽样, 以求取原先资料不足二无法探讨的资料特性. 举个例子,假设x1,x ...
- RabbitMQ/JAVA 客户端连接测试
这里是一个简单的helloworld测试. 这里在eclipse平台中实现 细节不再赘述.重点是导入rabbitmq-java-client的jar包 下载地址:http://www.rabbitmq ...
- 网络数据包收发流程(四):协议栈之packet_type
进入函数netif_receive_skb()后,skb正式开始协议栈之旅.先上图,协议栈大致过程如下所示:跟OSI七层模型不同,linux根据包结构对网络进行分层.比如,arp头和ip头都是紧跟在以 ...