su root 认证失败 Linux创建目录权限不够 Linux权限不够 usr目录 Linux提升权限 su和sudo的区别

导读:本篇文章讲解 su root 认证失败 Linux创建目录权限不够 Linux权限不够 usr目录 Linux提升权限 su和sudo的区别,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

问题

今天在ubuntu上,使用指令mkdir /usr/local/java创建java目录时,报出权限不够的问题,如下图所示:

权限不够

准备切换为root权限,于是使用指令su root输入密码后,却发现认证失败,如图所示:

在这里插入图片描述

分析问题

权限不够

权限不够说明当前用户没有权限操作该目录,比如创建文件夹,删除文件等。

因为我使用的是普通用户操作/usr/local/目录,/usr/是 unix 系统中最重要的目录之一,涵盖了二进制文件,各种文档,各种头文件,x,还有各种库文件;还有诸多程序,例如 ftp,telnet 等等。

曾经的/usr 还是用户的家目录,存放着各种用户文件 —— 现在已经被 /home 取代了(例如 /usr/someone已经改为 /home/someone)。

由此可见,/usr 的权限有多高了。

既然/usr目录的权限很高,其下所有的目录权限都会变高,其下的目录:

目录 应放置文件内容
/usr/X11R6/ 为X Window System重要数据所放置的目录,之所以取名为X11R6是因为最后的X版本为第11版,且该版的第6次释出之意。
/usr/bin/ 绝大部分的用户可使用指令都放在这里。请注意到他与/bin的不同之处。(是否与开机过程有关)。
/usr/include/ c/c++等程序语言的档头(header)与包含档(include)放置处,当我们以tarball方式 (*.tar.gz 的方式安装软件)安装某些数据时,会使用到里头的许多包含档。
/usr/lib/ 包含各应用软件的函式库、目标文件(object file),以及不被一般使用者惯用的执行档或脚本(script)。 某些软件会提供一些特殊的指令来进行服务器的设定,这些指令也不会经常被系统管理员操作, 那就会被摆放到这个目录下啦。要注意的是,如果你使用的是X86_64的Linux系统, 那可能会有/usr/lib64/目录产生。
/usr/local/ 统管理员在本机自行安装自己下载的软件(非distribution默认提供者),建议安装到此目录, 这样会比较便于管理。举例来说,你的distribution提供的软件较旧,你想安装较新的软件但又不想移除旧版, 此时你可以将新版软件安装于/usr/local/目录下,可与原先的旧版软件有分别啦。 你可以自行到/usr/local去看看,该目录下也是具有bin, etc, include, lib…的次目录。
/usr/sbin/ 非系统正常运作所需要的系统指令。最常见的就是某些网络服务器软件的服务指令(daemon) 。
/usr/share/ 放置共享文件的地方,在这个目录下放置的数据几乎是不分硬件架构均可读取的数据, 因为几乎都是文本文件嘛。在此目录下常见的还有这些次目录:/usr/share/man:联机帮助文件。
/usr/share/doc 软件杂项的文件说明。
/usr/share/zoneinfo 与时区有关的时区文件。
/usr/src/ 一般原始码建议放置到这里,src有source的意思。至于核心原始码则建议放置到/usr/src/linux/目录下。

认证失败

为什么会认证失败呢,我们不得不了解su这个指令。

su的全称是switch user,是不是就突然明白了?是切换用户的意思,切换用户并不能提升用户的权限。

su的一般使用方法是su或者su - ,它们虽然只差了1个字符,但也是有比较大的差异的:

su 用户名

  • su 用户名切换到root用户时,需要提供root密码验证。
  • root用户切换到普通用户无需提供密码验证,此时环境变量仍然保留为切换前用户。

su – 用户名

su - 用户名,这个需要注意,-后有一个空格,验证方式同第一种,只是环境变量随用户转化,比如a切换到b用户,环境变量也变为b用户的环境变量,仅此而已。

既然 su无法提升用户权限,我们可以使用什么来提升权限呢?

解决问题

我们可以使用 sudo来提升权限。因为Linux是多用户多权限控制多任务的系统,其中一个超级权限用户为root,剩下的为普通用户,超级用户想干什么就可以干什么,可以理解为当前系统的神。

可以想象,如果一直使用root这个超级用户,如果操作有误,密码造成了泄露,或者误删了什么重要的只有root可操作的文件,那么系统是不安全的,因此有低权限用户临时提权的方法就可以了,提权的时候验证一下root的密码不就安全了吗?sudo命令就是这个方法,如下图所示:

在这里插入图片描述

注意事项

sudo和su的区别

sudo只用作提升普通用户权限到root用户,也就是说该命令只有权限修改的功能。

sudosu这个命令切换用户是不同的,su是双向的,并且su是永久的,而sudo是临时的,命令执行完了,还是原来的用户和环境变量。

完整操作

这里写图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/99272.html

(0)
小半的头像小半

相关推荐

极客之家——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!