Linux的 su - “用户” 权限问题

最近发现linux的一个su - 切换用户的权限问题:
1、xshell 登录linux系统(Redhat7.5),当使用普通用户登录的时候,su - root 切换到root,然后cd到root权限的目录发现无法上传文件到目录所属主、组为root的目录。
2、使用root修改 /etc/security/limits.conf后 修改了某个普通用户如weblogic的 open files ,从root登录使用su - weblogic 到weblogic 用户 执行ulimit -n 发现修改生效。但是直接使用weblogic用户登录系统的时候执行ulimit -n 却还是未修改前的1024。

请大大们帮忙解释解释这个linux 的su - 权限原理。

su命令和su -命令最大的本质区别就是:
前者只是切换了root身份,但Shell环境仍然是普通用户的Shell;
而后者连用户和Shell环境一起切换成root身份了。
只有切换了Shell环境才不会出现PATH环境变量错误。
su切换成root用户以后,pwd一下,发现工作目录仍然是普通用户的工作目录;
而用su -命令切换以后,工作目录变成root的工作目录了。用echo $PATH命令看一下su和su -以后的环境变量有何不同。


回归到你的问题上,

  1. 你上传文件用的是什么方法? 因为很多时候,xshell的FTP 会直接打开你这个终端的登录的用户,所以你切换了用户,也是打开了你刚打开终端时的任务。如果用rz sz来,也要注意。
  2. 我刚才测试,没出现你描述的问题,无论是 root 中使用su - 切换,还是直接登录到某普通用户,都可以使用 ulimit -n 进行临时修改。

img


img