1、Linux中的用户切换:su和su - 的区别

大部分Linux发行版的默认账户是普通用户,而更改系统文件或者执行某些命令,需要root身份才能进行,这就需要从当前用户切换到root用户,Linux中切换用户的命令是su或su -,下面就su命令和su -命令最大的本质区别给大家详解一下:

前者只是切换了root身份,但Shell环境仍然是普通用户的Shell;而后者连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误。su切换成root用户以后,pwd一下,发现工作目录仍然是普通用户的工作目录;而用su -命令切换以后,工作目录变成root的工作目录了。用echo $PATH命令看一下su和su - 以后的环境变量有何不同。以此类推,要从当前用户切换到其它用户也一样,应该使用su -命令。

打个比方:在普通用户下输入:

$pwd

/home/test (当前用户目录)

$su ****** (输入密码)

#pwd (再次查看路径)

/home/test (还是当前用户目录)

但是如果换成su-的话结果如下:

$pwd

/home/test(当前用户目录)

$su -

****** (输入密码)

#pwd (再次查看路径)

/root (切换到超级用户目录)

2、

创建root用户 终端输入:sudo passwd root

******(输入原先的root口令)

******(输入新的root口令,可以保持原样。我就保持的原样)

******(再次输入新的root口令)

在终端中输入 :su root 即可进入root用户下了 以„#‟开头,普通用户下为„$‟开头 3、

今天在普通用户weil下,想切换到root。结果提示“密码不正确”

#su -

#密码: @键入密码

#su: 密码不正确

重复试了几次,密码绝对没记错;然后试图切换到另一个普通用户kail下,同样提示“密码不正确”。

查看/etc下passw和shadow权限。

#ls -l /etc/{passwd,shadow}

-rw------- 1 root root 2434 03-05 19:52 /etc/passwd

-rw------- 1 root root 1700 03-06 09:49 /etc/shadow

发现普通用户没有读passwd文件的权限。然后修改passwd权限:

#chmod 644 /etc/passwd

在重新切换到root

#su -

#su: cannot set groups: Operation not permitted

上网搜索发现,错误原因是/bin/su文件被取消了s位,所以解决方法是 chmod a+s /bin/su #ls -l /bin/su

-rwxr-xr-x 1 root root 39948 03-05 14:38 /bin/su

#chmod a+s /bin/su

#ls -l /bin/su

-rwsr-sr-x 1 root root 39948 03-05 14:38 /bin/su

再重新登录root,问题解决。

su与su-的更多相关文章

  1. su和su - 的区别

    Linux中切换用户的命令是su或su -.前天我在使用useradd这个命令时,才体会到这两者的本质区别.如图: 我首先是用su命令切换到root身份的,但是运行useradd时,出现错误:bash ...

  2. shell切换用户执行后面语句 su与su -的区别

    关于su和su -的区别,切换用户是可以使用su tom或者su - tom来实现,但是两者有区别,su只是切换身份,但shell环境仍然是原用户的shell,su -是连用户的shell环境一起切换 ...

  3. Linux下su与su -命令的区别

    在启动服务器ntpd服务时遇到一个问题 使用 su root 切换到root用户后,不可以使用service命令: 使用 su - 后,就可以使用service命令了. 原因: su命令和su -命令 ...

  4. linux中切换用户方式su和su -的区别

    Using su The  su  command allows users to open a terminal window, and from that terminal start a sub ...

  5. 【转】(总结)Linux下su与su -命令的本质区别

    原文网址:http://www.ha97.com/4001.html 本人以前一直习惯直接使用root,很少使用su,前几天才发现su与su -命令是有着本质区别的! 大部分Linux发行版的默认账户 ...

  6. 关于su和su -的区别

    关于su和su -的区别,切换用户是可以使用su tom或者su - tom来实现,但是两者有区别,su只是切换身份,但shell环境仍然是原用户的shell,su -是连用户的shell环境一起切换 ...

  7. su;su -;sudo;sudo -i;sudo su;sudo su - 之间的区别

    今天我们来聊聊su;su -;sudo;sudo -i;sudo su;sudo su -他们之间的区别. su :su 在不加任何参数,默认为切换到root用户,但没有转到root用户家目录下,也就 ...

  8. Linux下su 与 su - 区别

    Linux中切换用户的命令是su或su -.su命令和su -命令最大的本质区别就是:前者只是切换了root身份,但Shell环境仍然是普通用户的Shell:而后者连用户和Shell环境一起切换成ro ...

  9. su - 和su的区别

    su root和su - root: su只是切换了root身份,但Shell环境仍然是普通用户的Shell:而su -连用户和Shell环境一起切换成root身份了 推荐使用su - .

随机推荐

  1. uicode编码解码

    .版本 2.支持库 dp1 bydess = 字节集_还原 (到文本 (bytes)) ' HEX解码返回 (到文本 (解密数据 (bydess, “debugme?”, #RC4算法))) impo ...

  2. [webpack] 配置react+es6开发环境

    写在前面 每次开新项目都要重新安装需要的包,简单记录一下. 以下仅包含最简单的功能: 编译react 编译es6 打包src中入口文件index.js至dist webpack配置react+es6开 ...

  3. .net的一致性哈希实现

    最近在项目的微服务架构推进过程中,一个新的服务需要动态伸缩的弹性部署,所有容器化示例组成一个大的工作集群,以分布式处理的方式来完成一项工作,在集群中所有节点的任务分配过程中,由于集群工作节点需要动态增 ...

  4. 【Mutual Training for Wannafly Union #1 】

    A.Phillip and Trains CodeForces 586D 题意:过隧道,每次人可以先向前一格,然后向上或向下或不动,然后车都向左2格.问能否到达隧道终点. 题解:dp,一开始s所在列如 ...

  5. 架构师养成记--8.Queue

    一.ConcurrentLinkedQueue 是一个适合在高并发场景下,无锁,无界的,先进先出原则.不允许为null值,add().offer()加入元素,这两个方法没区别:pull().peek( ...

  6. CentOS 7 配置虚拟主机站点

    1.进入/etc/httpd/conf 下 将httpd.conf 打开. 2.将DocumentRoot注释掉.(将ServerName 打开要不会有错误警告). 3.将虚拟主机站点配置包含进来:I ...

  7. div 纯数字很长时无法折行解决

    <div style="width:100%;word-wrap:break-word;word-spacing:normal;"> </div> 加上红色 ...

  8. jsp URL中文传值

    js中,讲中文转码 encodeURI(中文): Java中,转回中文 java.net.URLDecoder.decode(乱码,"utf-8"): 例子; window.loc ...

  9. diff生成补丁与patch打补丁

    1.使用diff生成补丁: diff是Linux下的文件比较命令,参数这里就不说了,直接man一下就行了,不仅可以比较文件,也可以比较两个目录,并且可以将不同之处生成补丁文件,其实就是一种打补丁的命令 ...

  10. [转] Windows下编译OpenSSL

    简述 OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人 ...