LINUX.ORG.RU

#!/bin/bash, проблема...


0

0

Это, чтобы понятней было:

[root@gateway test]# su andrey
[andrey@gateway test]$ ls -al
итого 12
drwxr-xr-x 2 root root 4096 Июл 5 00:12 .
drwxr-xr-x 21 root root 4096 Июл 5 00:12 ..
-rw-r-xr-x 1 root root 22 Июл 5 00:20 temp
[andrey@gateway test]$ cat temp
#!/bin/bash
echo Test
[andrey@gateway test]$ ./temp
/bin/bash: /root/.bashrc: Permission denied
Test
[andrey@gateway test]$

Что это за строка "Запрещён доступ", раньше такого не было, при этом как видно скрипт выполняется. И так при выполнении любого скрипта, вначале пишется запрещён доступ, а потом он нормально выполняется.

Если сразу залогиниться под andrey (а не от root выполнив su andrey), то всё в порядке, только не надо говорить, что работай от andrey, а когда необходимо делай su -. На самом деле это проблема возникла с apache. Он запущен по юзером apache. В php коде есть строчка, которая заставляет выполнять определённый скрипт (строчка выглядит так: exec ("./ipttoweb",$ipt); ), так вот, он выполняется, но в логах ошибок вылетает /bin/bash: /root/.bashrc: Permission denied при каждом выполнении скрипта. Этого раньше не было, точно небыло.

И ещё, если в скрипте вместо #!/bin/bash написать #!/bin/sh, то такая строчка не вылетает.

В чём трабл???

anonymous

chmod u+x ./temp

anonymous
()

sorry не дочитал до конца :(

anonymous
()

по моему перед выполнением твоего temp bash пытается считать .bashrc чтотам "ls -la .bashrc" говорит?

anonymous
()

Когда ты делаеш su andrey то переменные окружения остаются старыми.
Посмотри на вывод printenv
А потом man su

Delay ★★
()

[root@gateway root]# su andrey
[andrey@gateway root]$ ls -la .bashrc
ls: .bashrc: Permission denied
[andrey@gateway root]$

Да на самом деле, мне su andrey и запуск скрипта не так важно как будет работать (хотя не понятно почему в такой ситуации обращается к bashrc рута, а не андрея). Тут я не могу сказать точно как раньше было, так как я сижу по андреем а в случаях необходимых использую su -. Но вот что с апаче стало, почему он в лог ошибок стал кидать такие строчки при выполнении скрипта, вот это действительно надо поправить... И раньше такого не было. Вот под какими пользователями работает httpd:

[root@gateway root]# ps axu | grep httpd
root 4400 2.9 3.0 18748 7900 ? S 10:45 0:00 /usr/sbin/httpd
apache 4403 0.0 3.0 18764 7920 ? S 10:45 0:00 [httpd]
apache 4404 0.0 3.0 18764 7920 ? S 10:45 0:00 [httpd]
apache 4405 0.0 3.0 18764 7920 ? S 10:45 0:00 [httpd]
apache 4406 0.0 3.0 18764 7920 ? S 10:45 0:00 [httpd]
apache 4407 0.0 3.0 18764 7920 ? S 10:45 0:00 [httpd]
apache 4408 0.0 3.0 18764 7920 ? S 10:45 0:00 [httpd]
apache 4409 0.0 3.0 18764 7920 ? S 10:45 0:00 [httpd]
apache 4410 0.0 3.0 18764 7920 ? S 10:45 0:00 [httpd]
root 4413 0.0 0.2 3652 696 pts/2 S 10:45 0:00 grep httpd
[root@gateway root]#

anonymous
()

Забудьте про пользователя su andrey и выполнение скрипта (спасибо Delay), это я глюканул, просто никогда не юзал su andrey, что бы всё в порядке было надо использовать su - andrey (точно так же, когда под рутом хочешь что то сделать набираешь не su, а su -), это чтоб все переменные окружения были того юзера, под которым хочешь работать.

Но вот проблема со строчкой в логах ошибок: /bin/bash: /root/.bashrc: Permission denied, при каждом выполнении сервером apache bash-скрипта, вот это непонятно почему, и это не есть хорошо. логи сильно засаряются.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.