shell中用指定用户运行命令 su

==更新

=su命令
-.-l或--login  改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,LOGNAME。此外,也会变更PATH变量。
- -l 或 --login 这个参数加了之后,就好像是重新 login 为该使用者一样,大部份环境变数(HOME SHELL USER等等)都是以该使用者(USER)为主,并且工作目录也会改变,如果没有指定 USER ,内定是 root

需求:
在某些软件安装过程中,要创建独立用户,然后以该用户运行某些安装操作,如gitolite安装过程,创建git用户并执行安装

方法1:sudo -u user ...

sudo -u git -H  <<-Code
ls ~
cat test
#other cmds
Code

方法2: su

下面有些摘录
==su命令

    #!/bin/sh
    echo ~/
    su - test <<HERE
    echo ~/
    ls -al
    HERE
    echo ~/
sudo su - user1
echo #HOME
echo `ls -ltr`

可以用sudo命令,它的作用是“excute a command as another user",默认为root用户,可以用 -u 指定用户名(假设要以user身份执行prog程序):sudo -u user prog就可以了。

另一个命令su,是用另一个身份运行shell,再用新的shell运行指定程序(su只能运行shell程序,虽然可以把命令写成类似sudo的样子[su -c user prog],但它的实现原理实际上还是先运行一个shell,再通过shell运行其他程序)。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值