2019年4月2日 星期二

[Linux 文章收集] Learn Difference Between “su” and “su -” Commands in Linux

Source From Here 
Preface 
In an earlier article, we have explained to you the difference between sudo and su commands in Linux. These are two important commands used to implement security in Linux, in regards to user management policy and user permissions. 

The su command is used to switch to another user, in other words change user ID during a normal login session (that is why it is sometimes referred to as switch (-) user by a number of Linux users). If executed without a username, for example su -, it will login as root user by default. 

Difference Between “su” and “su -” 
A common challenge faced by new Linux users is understanding the difference between “su” and “su -“. This article will help you briefly understand the difference between “su” and “su -“ in Linux systems. Usually, to become another user or login to other user, you can invoke the following command, then you will be prompted for the password of the user you’re switching to. 
$ su tecmint

 

Considering the scenario in the screenshot above, it is significant to note that the user tecmint keeps the environment from user aaronkilik’s original login session, the current working directory and the path to executable files also remain the same. As a result, when user tecmint tries to list the working directory (which is still user aaronkilik’s working directory), the error: “ls: cannot open directory .: Permission denied” is displayed. 

But at the end, user tecmint can list his home directory after running cd command without any options. 

Secondly, when you invoke su with a -, or -l or --login flags, it offers you a login interface similar to when you are logging on normally. All the commands below are equivalent to each other: 
$ su - tecmint
OR
$ su -l tecmint
OR
$ su --login tecmint

In this case, the user tecmint is provided his own default login environment, including path to executable files; he also lands into his default home directory. 
 

Importantly, when you run su without a username, you will automatically become the superuser. You will be given root’s default environment, including path to executable files changes. You will also land into root’s home directory. 

Supplement 
How to Show Asterisks While Typing Sudo Password in Linux

沒有留言:

張貼留言

[Git 常見問題] error: The following untracked working tree files would be overwritten by merge

  Source From  Here 方案1: // x -----删除忽略文件已经对 git 来说不识别的文件 // d -----删除未被添加到 git 的路径中的文件 // f -----强制运行 #   git clean -d -fx 方案2: 今天在服务器上  gi...