概述
这里写目录标题
- 问题
- 分析问题
- 权限不够
- 认证失败
- su 用户名
- su - 用户名
- 解决问题
- 注意事项
- sudo和su的区别
- 完整操作
问题
今天在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用户
,也就是说该命令只有权限修改的功能。
sudo
和su
这个命令切换用户是不同的,su
是双向的,并且su
是永久的,而sudo
是临时的,命令执行完了,还是原来的用户和环境变量。
完整操作
最后
以上就是俊秀期待为你收集整理的su root 认证失败 Linux创建目录权限不够 Linux权限不够 usr目录 Linux提升权限 su和sudo的区别问题分析问题解决问题注意事项的全部内容,希望文章能够帮你解决su root 认证失败 Linux创建目录权限不够 Linux权限不够 usr目录 Linux提升权限 su和sudo的区别问题分析问题解决问题注意事项所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复