su和sudo命令详解
我们知道,在Linux下对很多文件进行修改都需要有root(管理员)权限,比如对/ect/profile等文件的修改。很多情况下,我们在进行开发的时候都是使用普通用户进行登录的,尤其在进行一些环境变量的配置工作时,常常需要对一些文件进行修改。那么我们如何获取管理员权限呢?
一般来说,有两种方法。一是:利用su命令切换到root用户,在root用户下对那些文件进行修改,完成相关配置工作。二是:利用su命令切换到root用户,修改/etc/sudoers文件,让普通用户具有sudo权限,然后利用su命令切换回普通用户,在执行相关命令前加上sudo。下面我会先介绍这两个命令。
su
Linux su命令用于变更为其他使用者的身份,除 root 外,需要键入该使用者的密码。
使用权限:所有使用者。
语法
su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]]
选项
| 选项 | 说明 |
|---|---|
| -c<指令>或--command=<指令> | 执行完指定的指令后,即恢复原来的身份; |
| -f或——fast | 适用于csh与tsch,使shell不用去读取启动文件; |
| -l或——login | 改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,logname。此外,也会变更PATH变量; |
| -m,-p或--preserve-environment | 变更身份时,不要变更环境变量; |
| -s<shell>或--shell=<shell> | 指定要执行的shell; |
| --help | 显示帮助; |
| --version | 显示版本信息。 |
实例
变更帐号为 root 并在执行 ls 指令后退出变回原使用者
su -c ls root
变更帐号为 root 并传入 -f 参数给新执行的 shell
su root -f
变更帐号为 clsung 并改变工作目录至 clsung 的家目录(home dir)
su - clsung
切换用户
hnlinux@ylg:~$ whoami //显示当前用户
hnlinux
hnlinux@wylg:~$ pwd //显示当前目录
/home/hnlinux
hnlinux@ylg:~$ su root //切换到root用户
密码:
root@ylg:/home/hnlinux# whoami
root
root@ylg:/home/hnlinux# pwd
/home/hnlinux
切换用户,改变环境变量
hnlinux@ylg:~$ whoami //显示当前用户
hnlinux
hnlinux@ylg:~$ pwd //显示当前目录
/home/hnlinux
hnlinux@ylg:~$ su - root //切换到root用户
密码:
root@ylg:/home/hnlinux# whoami
root
root@ylg:/home/hnlinux# pwd //显示当前目录
/root
sudo
Linux sudo命令用来以其他身份来执行命令,预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。
语法
sudo(选项)(参数)
选项
| 选项 | 说明 |
|---|---|
| -b | 在后台执行指令; |
| -h | 显示帮助; |
| -H | 将HOME环境变量设为新身份的HOME环境变量; |
| -k | 结束密码的有效期限,也就是下次再执行sudo时便需要输入密码;。 |
| -l | 列出目前用户可执行与无法执行的指令; |
| -p | 改变询问密码的提示符号; |
| -s<shell> | 执行指定的shell; |
| -u<用户> | 以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份; |
| -v | 延长密码有效期限5分钟; |
| -V | 显示版本信息。 |
实例
sudo命令使用
$ sudo ls
[sudo] password for hnlinux:
hnlinux is not in the sudoers file. This incident will be reported.
指定用户执行命令
# sudo -u userb ls -l
以root权限执行上一条命令
$ sudo !!
以特定用户身份进行编辑文本
$ sudo -u uggc vi ~www/index.html
//以 uggc 用户身份编辑 home 目录下www目录中的 index.html 文件
获取管理员权限
方法一
一般情况下,Linux下root用户默认是没有密码,要利用su命令切换到root用户,需要先利用sudo passwd root命令对root用户设置初始密码
sudo passwd root #设置初始密码
在修改完root用户的密码之后,我们利用su root命令,输入root用户的密码就可以切换到root用户下来了。
方法二
在执行命令前加上sudo让用户获得管理员权限,首先需要在root用户下,具有管理员权限对/etc/sudoers文件进行修改。
我们需要先利用su命令切换到root用户下,输入visudo -f /etc/sudoers命令进行编辑
visudo -f /etc/sudoers
进入文件之后,找到root ALL=(ALL) ALL这条语句所在的地方,将root替换成你想要具有管理员权限的用户名(比如:ylg),在这行语句下面输入ylg ALL=(ALL) ALL,然后进行保存
root ALL=(ALL) ALL
# 添加
ylg ALL=(ALL) ALL
在给普通用户管理员权限之后,以后为了修改文件就可以直接在命令前加上sudo即可,如
sodu vi /etc/profile
su和sudo命令详解的更多相关文章
- sudo 命令详解
在linux系统中,由于root的权限过大,一般情况都不使用它.只有在一些特殊情况下才采用登录root执行管理任务,一般情况下临时使用root权限多采用su和sudo命令. 一.su和sudo命令对比 ...
- (6)sudo命令详解(每周一个linux命令系列)
首先说句抱歉,最近事情比较复杂,停更了一阵子.我又回来啦 多用户管理 我们常用的windows个人系统虽然可以设置多用户,但是实际上是不可以多用户同时登陆的(这个我实验过,我以前用windows服务器 ...
- linux sudo命令详解
--sudo命令重启网卡 sudo service network restart http://bestchenwu.iteye.com/blog/1450292
- sudo命令详解
语法 sudo(选项)(参数) 选项 选项 说明 -b 在后台执行指令: -h 显示帮助: -H 将HOME环境变量设为新身份的HOME环境变量: -k 结束密码的有效期限,也就是下次再执行sudo时 ...
- linux shell 脚本攻略学习12--文件权限详解,chmod命令详解,chown命令详解,chattr命令详解
文件权限详解 一.chmod命令详解 文件权限和所有权是Unix/Linux文件系统最显著的特征之一.linux中的每一个文件都与多种权限类型相关联,在这些权限中主要分类为3种: 用户(User)是文 ...
- Linux就业技术指导(五):Linux运维核心管理命令详解
一,Linux核心进程管理命令 1.1 ps:查看进程 1.1.1 命令解释 功能说明 ps命令用于列出执行ps命令的那个时刻的进程快照,就像用手机给进程照了一张照片.如果想要动态地显示进程,就需要使 ...
- 云计算:Linux运维核心管理命令详解
云计算:Linux运维核心管理命令详解 想做好运维工作,人先要学会勤快: 居安而思危,勤记而补拙,方可不断提高: 别人资料不论你用着再如何爽那也是别人的: 自己总结东西是你自身特有的一种思想与理念的展 ...
- linux yum命令详解
yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能够从指定的服务器自动下载RP ...
- android adb 命令详解
ADB (Android Debug Bridge) 是android SDK中的工具,需要先配置环境变量才能使用.起调试桥的作用,可以管理安卓设备.(也叫debug工具) ---------查看设 ...
随机推荐
- ztree更换节点图标
首先需要注意一点,如果有研究过树形菜单,就会发现实现删除和修改功能特别简单,但是增加却有一点复杂.造成这个现象是ztree树形菜单的历史遗留问题.大概是之前的版本没有增加这个功能,后来的版本加上了这个 ...
- java.sql.SQLException: Prepared or callable statement has more than 2000 parameter markers及解决方案
1. 问题 最近在项目中修bug的时候,碰到这样一个错误: Caused by: java.sql.SQLException:Prepared or callable statement has mo ...
- hdu 2059龟兔赛跑("01"背包)
传送门 https://www.cnblogs.com/violet-acmer/p/9852294.html 题解: 看到这个题,第一反应就是DP,因为对于每个充电站,都有两种选择,充电或不充电,和 ...
- gdb调试1--包括反汇编及文件编码设置
一.编译 gcc的完整编译过程大致为:预处理->编译->汇编->链接 前三个步骤分别对应了-E.-S.-c三个选项. 编译阶段 命令 截断后的产物 C源程序 预处理 gcc ...
- Swing的特性
1.Swing组件的多样化 2.MVC(model-view-controller)体系结构 3.可存取性支持 4.支持键盘代替鼠标的操作 5.设置边框 6.使用图标 ———————————————— ...
- Feature Selection Can Reduce Overfitting And RF Show Feature Importance
一.特征选择可以减少过拟合代码实例 该实例来自机器学习实战第四章 #coding=utf-8 ''' We use KNN to show that feature selection maybe r ...
- JavaSE学习总结(十)—— JDBC与面向对象测试
一.题目 请使用MySQL+JDBC+JAVASE控制台完成一个图书管理系统(Libs),实现添加图书,查询图书,根据图书编号查询图书三个功能. 二.要求 1.必须有菜单 2.至少3个以上的字段(编号 ...
- springboot websocket 一篇足够了
什么是WebSocket WebSocket是一种在单个TCP连接上进行全双工通信的协议 … 为什么要实现握手监控管理 如果说,连接随意创建,不管的话,会存在错误,broken pipe 表面看单纯报 ...
- vue使用element Transfer 穿梭框实现ajax请求数据和自定义查询
vue使用element Transfer 穿梭框实现ajax请求数据和自定义查询 基于element Transfer http://element-cn.eleme.io/#/zh-CN/comp ...
- CentOS6.8下MySQL数据库忘记root密码解决方法
一.更改my.cnf配置文件 编辑/etc/my.cnf文件,在[mysqld]下添加skip-grant-tables,保存退出.如图: 重启mysql服务:services mysqld rest ...