我们知道,在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命令详解的更多相关文章

  1. sudo 命令详解

    在linux系统中,由于root的权限过大,一般情况都不使用它.只有在一些特殊情况下才采用登录root执行管理任务,一般情况下临时使用root权限多采用su和sudo命令. 一.su和sudo命令对比 ...

  2. (6)sudo命令详解(每周一个linux命令系列)

    首先说句抱歉,最近事情比较复杂,停更了一阵子.我又回来啦 多用户管理 我们常用的windows个人系统虽然可以设置多用户,但是实际上是不可以多用户同时登陆的(这个我实验过,我以前用windows服务器 ...

  3. linux sudo命令详解

    --sudo命令重启网卡 sudo service network restart http://bestchenwu.iteye.com/blog/1450292

  4. sudo命令详解

    语法 sudo(选项)(参数) 选项 选项 说明 -b 在后台执行指令: -h 显示帮助: -H 将HOME环境变量设为新身份的HOME环境变量: -k 结束密码的有效期限,也就是下次再执行sudo时 ...

  5. linux shell 脚本攻略学习12--文件权限详解,chmod命令详解,chown命令详解,chattr命令详解

    文件权限详解 一.chmod命令详解 文件权限和所有权是Unix/Linux文件系统最显著的特征之一.linux中的每一个文件都与多种权限类型相关联,在这些权限中主要分类为3种: 用户(User)是文 ...

  6. Linux就业技术指导(五):Linux运维核心管理命令详解

    一,Linux核心进程管理命令 1.1 ps:查看进程 1.1.1 命令解释 功能说明 ps命令用于列出执行ps命令的那个时刻的进程快照,就像用手机给进程照了一张照片.如果想要动态地显示进程,就需要使 ...

  7. 云计算:Linux运维核心管理命令详解

    云计算:Linux运维核心管理命令详解 想做好运维工作,人先要学会勤快: 居安而思危,勤记而补拙,方可不断提高: 别人资料不论你用着再如何爽那也是别人的: 自己总结东西是你自身特有的一种思想与理念的展 ...

  8. linux yum命令详解

    yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能够从指定的服务器自动下载RP ...

  9. android adb 命令详解

    ADB (Android Debug Bridge)  是android SDK中的工具,需要先配置环境变量才能使用.起调试桥的作用,可以管理安卓设备.(也叫debug工具) ---------查看设 ...

随机推荐

  1. 关于使用vw单位适配H5项目(二)

    一些比较小的H5页面,我觉得全没有必要一定要使用框架的,比如vue和react之类的,我觉得原生的js,html5也可以写好移动端. 最近刚好要赶10多个h5页面,适配移动端的,各种手机型号都要适配, ...

  2. (JAVA保留小数问题,基础)Probability hdu2131

    Probability 链接:http://acm.hdu.edu.cn/showproblem.php?pid=2131 Time Limit: 3000/1000 MS (Java/Others) ...

  3. 功能要求:定义一个两行三列的二维数组 names 并赋值,使用二重循环输出二维数组中的元素。

    功能要求:定义一个两行三列的二维数组 names 并赋值,使用二重循环输出二维数组中的元素 names={{"tom","jack","mike&qu ...

  4. pandas简短介绍

    1.数据结构 维数 名称 描述 1 Series 一维带标签单一数据类型的数组 2 DataFrame 不同数据类型的列 2.十分钟学习pandas 2.1.导入所需模块 import pandas ...

  5. conda常用命令总结

    conda 一些背景历史以及如何安装这里就不说了,因为实在是漫天都在飞,随便都能找到相关的资料.我这里只是将平时常用到的 Conda 命令进行汇总,以备不时之需,因为我也是一个忘性极大的人,实在是记不 ...

  6. CM记录-迁移JournalNode和Service Monitor超时解决方案

    1.迁移JournalNode节点 当你在HDFS服务中新加入一个JournalNode角色时,JournalNode角色需要的数据目录是没有被创建的.但你启用HDFS的HA后,NameNode必须需 ...

  7. 使用MedleyText与Syncthink自建云笔记

    随着学习加深,做的笔记越来越多,而使用云笔记怕万一平台关闭(如360网盘啥的)还需要导出笔记费时费力,并且多平台兼容性未知.还是自己搭建放心省事. MedleyText介绍 MedleyText为ma ...

  8. Java编程思想 学习笔记11

    十一.持有对象  通常,程序总是根据运行时才知道的某些条件去创建新对象.在此之前,不会知道所需对象的数量,甚至不知道确切的类型. Java实用库还提供了一套相当完整的容器类来解决这个问题,其中基本的类 ...

  9. Java编程思想 学习笔记4

    四.控制执行流程 1.true和false 所有条件语句都利用条件表达式的真或假来决定执行路径.注意Java不允许我们将一个数字作为布尔值使用. 2.if-else 3.迭代 while.do-whi ...

  10. Docker 入门 第四部分: Swarms

    目录 Docker 入门 第四部分: Swarms 先决条件 介绍 理解Swarm集群 部署swarm 创建一个集群 在swarm集群上部署你的app应用 为 swarm管理器配置一个docker-m ...