Невозможно найти обычный файл с оболочкой по умолчанию, как bash, но работает, когда это ksh - PullRequest
1 голос
/ 16 апреля 2019

У нас есть файл сценария 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

Ниже приведены сведения о правах доступа к файлам и командной консоли по умолчанию для обоих пользователей. Оболочка по умолчанию для aaa равна /bin/ksh, а для www это /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 пользователя.

...