linux中su和su-的区别
时间: 2023-05-31 14:19:55 浏览: 175
### 回答1:
在Linux系统中,su和su-是两种不同的切换用户的命令。su命令是切换到其他用户的身份,但不改变当前用户所在的工作目录和环境变量等信息;而su-命令则是完全切换到目标用户的身份,包括工作目录和环境变量等信息都会改变。
### 回答2:
Linux中的su和su-是两个常见的命令,它们都是用于切换到超级用户(root)账户的。但是,它们之间还有一些区别。
su命令是指切换用户的意思,即从当前用户切换到root用户。在使用su命令时,需要输入root用户的密码才能登录。此外,su命令并没有改变环境变量,包括当前用户的路径、shell变量等都不会发生变化,这意味着当前用户的环境变量会传递到root用户,可能会带来一些风险。
su-命令与su的工作方式类似,但是有一些不同。su-命令除了改变用户身份外,还会改变当前环境变量,包括PATH、USER、LOGNAME等变量,这意味着当前用户的环境变量不会对root用户产生影响,可以避免某些潜在的问题。此外,su-命令还会把当前用户的家目录设置为root用户的家目录,这也会对权限产生一定的影响。
因此,su和su-命令在使用时需要视情况而定。如果需要登录时保持当前用户的环境变量,使用su命令比较合适;如果需要登录时采用root用户的环境变量,使用su-命令比较合适。此外,在进行系统管理或其他需要使用root权限的任务时,应该谨慎使用su和su-命令,以免破坏系统稳定性。最好遵循最小化原则,只开启必要的权限执行所需的任务。
### 回答3:
在Linux中,su和su-都是切换用户的命令。但是,它们之间有一些区别,下面分享一下我的理解。
1. su和su-的用途
su用于切换到另一个用户的身份,可以是普通用户或者超级用户。su-则是以另一个用户的身份登录到系统,同时会进入到另一个用户的家目录。
2. su和su-的执行方式
执行su命令时,需要指定要切换到的用户名,如su username。在切换到指定用户后,仍然处于当前工作目录。
而执行su-命令时,也需要指定要切换到的用户名,如su - username。在切换到指定用户后,会进入并切换到该用户的家目录。
3. su和su-的环境变量
执行su命令时,会保留当前用户的环境变量,不会加载被切换到的用户的环境变量。这可能会导致权限不足的情况,因为切换后用户可能无法访问某些文件或目录。
相比之下,执行su-命令时,会加载被切换到的用户的环境变量,并将当前用户的环境变量清除。因此,用户可以访问自己的家目录,以及其他有权限的目录和文件。
4. su和su-的安全性
执行su命令时,需要先输入当前用户的密码,然后再输入要切换到的用户的密码。这可能会导致密码泄露的风险。
相比之下,执行su-命令时,需要输入要切换到的用户的密码。这种方式可能更加安全,因为只有授权的用户才能通过输入正确的密码来切换到其他用户的身份。
总之,使用su或su-命令时需要注意,在执行命令时需根据实际情况来选择使用哪种命令。当需要切换到其他用户的身份时,可以使用su命令。当需要进入其他用户的家目录,并以该用户的身份在系统中操作时,可以使用su-命令。同时,为了保证系统的安全性,一定要确保输入的密码是正确的并且不被泄露。