这里写目录标题
- 问题
- 分析问题
- 权限不够
- 认证失败
- 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内容请搜索靠谱客的其他文章。
发表评论 取消回复