zoukankan      html  css  js  c++  java
  • linux命令,系统安全相关命令--su

    su


      su是最简单的身份切换命令,可以进行任何身份的切换,下面先看一下其基本参数。

     1 root@ubuntu:~# su -h
     2 Usage: su [options] [LOGIN]
     3 
     4 Options:
     5   -c, --command COMMAND         pass COMMAND to the invoked shell
     6   -h, --help                    display this help message and exit
     7   -, -l, --login                make the shell a login shell
     8   -m, -p,
     9   --preserve-environment        do not reset environment variables, and
    10                                 keep the same shell
    11   -s, --shell SHELL             use SHELL instead of the default in passwd

      su 在不加任何参数,默认为切换到root用户,但没有转到root用户家目录下,也就是说这时虽然是切换为root用户了,但并没有改变root登录环境;而su 加参数 - ,表示默认切换到root用户,并且改变到root用户的环境。下面通过一个例子来说明二者区别

    范例1,分别使用su和su -切换root身份:

     1 gboy@ubuntu:~$ su
     2 Password: 
     3 root@ubuntu:/home/gboy# pwd        
     4 /home/gboy     <==工作目录仍是普通用户的工作目录
     5 root@ubuntu:/home/gboy# exit
     6 exit
     7 gboy@ubuntu:~$ su -
     8 Password: 
     9 root@ubuntu:~# pwd    
    10 /root          <==工作目录切换到了root工作目录

    *从范例中可知,su -命令更改到了root用户的环境,而su命令并没有,因此切换身份时一般使用su -(或者su -l)命令

      

      范例1可以让用户变成root身份操作系统,想要离开root身份需要运行exit命令。但有时候我们只需要执行一条需要root身份才能进行的命令,并且执行完成后恢复原本身份,这时可以利用-c这个参数。

    范例2,普通用户gboy执行“head -n 3 /etc/shadow”命令

    1 gboy@ubuntu:~$ head -n 3 /etc/shadow
    2 head: cannot open `/etc/shadow' for reading: Permission denied   <==权限不够
    3 gboy@ubuntu:~$ su - -c "head -n 3 /etc/shadow"
    4 Password:     <== 输入root密码
    5 root:$6$N7SZr7xj$HMPjOcfrwfe8RmMORqK.zhsZI/9gqElzCv8/uD9tD0rXYXyIv73F7r6F4uWFZggtEEPvUTAWyOfxab861LSxB/:16635:0:99999:7:::   <==成功运行
    6 daemon:*:15259:0:99999:7:::
    7 bin:*:15259:0:99999:7:::
  • 相关阅读:
    单表查询
    解读python中SocketServer源码
    C++实训(2.3)
    C++实训(2.2)
    C++实训(2.1)
    C++实训(1.3)
    C++实训(1.1)
    顺序表的实现,在vs2019上运行成功
    p243_5(3)
    自考新教材-p176_5(2)
  • 原文地址:https://www.cnblogs.com/webberji/p/4658655.html
Copyright © 2011-2022 走看看