ситуация

В системе CentOS от имени пользователя root, which rsync выдает мне следующий вывод:

/usr/bin/rsync

Разрешения этого двоичного файла следующие:

-rwxr-xr-x 1 root root 415000 31. Okt 09:36 rsync*

Если я правильно понимаю, этот файл является исполняемым для его владельца, группы владельца, а также для всех остальных. Однако, входя в систему как обычный пользователь, which rsync выдает никаких результатов, а ls -l /usr/bin/rsync говорит:

/bin/ls: (...) No such file or directory

Невозможно выполнить rsync - команда не найдена, ни путем вызова rsync ни /usr/bin/rsync:

-bash: /usr/bin/rsync: No such file or directory

Попытка к which rsync через туннель SSH:

$ ssh user@host which rsync
which: no rsync in (/usr/local/jdk/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin)
$ ssh root@host which rsync
/usr/bin/rsync

Вопрос

Каковы необходимые шаги, чтобы сделать /usr/bin/rsync исполняемым для данного пользователя без полномочий root?

Дополнительная информация (которая может иметь или не иметь отношение)

  • Эта система является удаленным сервером
  • Я хочу вызвать rsync из локального сценария оболочки, например rsync [parameters] user@host:/some/dir .
  • Скрипт оболочки будет запускаться автоматически, а аутентификация "пользователя" будет выполняться по ключу SSH.

Обновление / Решение

Оказывается, я ошибся, и система работает на CloudLinux, а не на CentOS. По-видимому, CloudLinux позволяет деактивировать инструменты для обычных пользователей, как это было в случае с rsync. Мои извинения за дезинформацию!

(К сожалению, я не могу пометить этот вопрос как "cloudlinux" из-за недостаточной репутации.)

1 ответ1

0

Вы пытались выполнить /usr/bin/rsyncне просто rsync) в качестве соответствующего пользователя? Это должно дать вам гораздо лучшее представление о том, что не так: нет такого файла, отказано в разрешении или что-то еще.

ls -l /usr/bin/rsync должен выдать какой-то вывод, если только сказать ls: cannot access /usr/bin/rsync: No such file or directory . Если он абсолютно ничего не печатает, вы можете проверить, не возился ли кто-нибудь с командами - type -a ls и type -a which должен сказать вам, что вы на самом деле выполняете.

Вы абсолютно уверены, что запускаете команды на одной машине? Попробуйте выполнить следующие команды:

ssh root@host which rsync
ssh user@host which rsync

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .