无法找到带有默认shell作为bash的常规文件,但在ksh时有效

时间:2019-04-16 18:36:05

标签: linux bash shell ksh

我们有脚本文件 FileChecker.sh ,它可以检查文件是否存在

FileChecker.sh内容:

#!/bin/ksh
FILE=$1
FILE2=$2
if [[ "$FILE" == "" || "$FILE2" == "" ]] ; then
    echo "[ERROR] if Invalid input to $0 \n"
elif [[ ! -f $FILE||  ! -f $FILE2 ]] ; then
    echo "[ERROR] elif Invalid input to $0 \n"
else
   echo "In Else"
fi

我们以用户aaa的身份登录。运行脚本,如下所示:

[aaa@servername cfg]$ ./FileChecker.sh /tmp/lib/my.properties /tmp/lib/my.ear

,我们将带有位置的文件名作为脚本的输入传递,并且输入文件的权限为755。 我们使用用户FileChecker.sh运行aaa并执行脚本,它找到了文件,但是当我们使用用户FileChecker.sh执行www文件时,脚本无法找到该文件。输入文件并打印[ERROR] elif Invalid input to FileChecker.sh

这就是我以www身份运行脚本的方式

/mycompany/bin/suexec -u www /tmp/cfg/FileChecker.sh /tmp/lib/my.properties /tmp/lib/my.ear

以下是有关文件权限和这两个用户的默认Shell的详细信息。 aaa的默认外壳为/bin/kshwww的默认外壳为/bin/bash

[aaa@servername lib]$ cd /tmp/lib
[aaa@servername lib]$ ls -lrt
-rwxr-xr-x 1 aaa aaagroup      175 Apr 16 11:12 my.properties
-rwxr-xr-x 1 aaa aaagroup 14354727 Apr 16 11:12 my.ear


[aaa@servername lib]$ cat /etc/passwd | grep aaa
aaa:x:129822:602:aaa, env.xyz Hostgroup, Id, F, Num:/home/aaa:/bin/ksh

[aaa@servername lib]$ cat /etc/passwd | grep www
www:x:13113:602:www, Hostgroup, Id, F, Num:/home/www:/bin/bash

如何以www用户身份运行它。

0 个答案:

没有答案