разрешение на скрипты в ~ / bin

Я установил несколько дополнительных мест в PATH среды PATH в моем ~/.bashrc чтобы они включались / использовались в логинах и неинтерактивных скриптах, запланированных с cron .

Однако я заметил, что в одной системе PATH изменяется правильно, но ни один из скриптов внутри не будет работать, несмотря на то, что права собственности и разрешения установлены правильно (насколько я могу судить).

 $ ls -l total 756 -rw-r-xr-x 1 slackline slackline 300 Sep 6 07:35 backup -rwxr-xr-x 1 slackline slackline 978 Dec 30 10:28 bbc_mpd -rwxr-xr-x 1 slackline slackline 355483 Nov 29 07:31 get_iplayer -rwxr-xr-x 1 slackline slackline 110 Sep 6 07:35 rsync.albums -rwxr-xr-x 1 slackline slackline 114 Sep 6 07:35 rsync.climbing -rwxr-xr-x 1 slackline slackline 108 Sep 6 07:35 rsync.films -rwxr-xr-x 1 slackline slackline 125 Sep 6 07:35 rsync.mixes -rwxr-xr-x 1 slackline slackline 117 Sep 6 07:35 rsync.pics -rwxr-xr-x 1 slackline slackline 117 Sep 6 07:35 rsync.torrents -rwxr-xr-x 1 slackline slackline 95 Sep 6 07:35 rsync.work 

Содержимое одного из моих скриптов, который синхронизирует каталог с моим NAS для резервного копирования:

 $ cat ~/bin/rsync.work #!/bin/bash source ~/.keychain/$HOSTNAME-sh /usr/bin/rsync -avz /mnt/work/* readynas:~/work/. 

который не запускается при вызове:

 $ rsync.work bash: /home/slackline/bin/rsync.work: Permission denied 

но работает, когда превалирует bash -x :

 $ bash -x /home/slackline/bin/rsync.work + source /home/slackline/.keychain/kimura-sh ++ SSH_AUTH_SOCK=/tmp/ssh-P3GL1A3Juwhe/agent.4209 ++ export SSH_AUTH_SOCK ++ SSH_AGENT_PID=4210 ++ export SSH_AGENT_PID + /usr/bin/rsync -avz /mnt/work/android /mnt/work/arch /mnt/work/classes /mnt/work/doc /mnt/work/linux /mnt/work/lost+found /mnt/work/nc151.tar /mnt/work/nc152now-11.rar /mnt/work/personal /mnt/work/ref /mnt/work/scharr 'readynas:~/work/.' sending incremental file list sent 1,176,907 bytes received 19,786 bytes 30,296.03 bytes/sec total size is 27,852,538,230 speedup is 23,274.59 $ set -x ; ~/bin/rsync.work ; set +x + /home/slackline/bin/rsync.work bash: /home/slackline/bin/rsync.work: Permission denied + set +x $ set -x ; bash -x ~/bin/rsync.work ; set +x + bash -x /home/slackline/bin/rsync.work + source /home/slackline/.keychain/kimura-sh ++ SSH_AUTH_SOCK=/tmp/ssh-P3GL1A3Juwhe/agent.4209 ++ export SSH_AUTH_SOCK ++ SSH_AGENT_PID=4210 ++ export SSH_AGENT_PID + /usr/bin/rsync -avz /mnt/work/android /mnt/work/arch /mnt/work/classes /mnt/work/doc /mnt/work/linux /mnt/work/lost+found /mnt/work/nc151.tar /mnt/work/nc152now-11.rar /mnt/work/personal /mnt/work/ref /mnt/work/scharr 'readynas:~/work/.' sending incremental file list sent 1,174,755 bytes received 19,786 bytes 39,165.28 bytes/sec total size is 27,852,538,230 speedup is 23,316.52 + set +x 

Мой ~/.bashrc имеет следующую строку.

 $ grep PATH ~/.bashrc # Additions to system PATH PATH="/home/slackline/bin:$PATH:/usr/local/stata/:/usr/local/stattransfer/" export PATH 

И я могу запустить команду rsync в командной строке (так что это не случай отказа в доступе к SSH-соединению).

 $ /usr/bin/rsync -avz /mnt/work/* readynas:~/work/. sending incremental file list sent 1,176,723 bytes received 19,786 bytes 32,781.07 bytes/sec total size is 27,852,538,230 speedup is 23,278.17 

(Резервное копирование, очевидно, обновлено). Версия Bash установлена:

 $ eix -Ic bash [I] app-admin/eselect-bashcomp (1.3.6@08/29/13): Manage contributed bash-completion scripts [I] app-shells/bash (4.2_p45@08/16/13): The standard GNU Bourne again shell [I] app-shells/bash-completion (2.1@08/28/13): Programmable Completion for bash [I] app-shells/gentoo-bashcomp (20121024@08/28/13): Gentoo-specific bash command-line completions (emerge, ebuild, equery, repoman, layman, etc) Found 4 matches. 

Разрешения для каталога (и его структуры):

 $ ls -l ~/ | grep bin drwxr-xr-x 2 slackline slackline 4096 Dec 30 10:29 bin $ stat -c"%n (%U) %a" / /home /home/slackline /home/slackline/bin / (root) 755 /home (root) 755 /home/slackline (slackline) 755 /home/slackline/bin (slackline) 755 

И шоу strace

 $ strace rsync.work strace: Can't stat 'rsync.work': No such file or directory $ echo $PATH /home/slackline/bin:~/bin:/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.8.2:/usr/games/bin:/usr/local/stata/:/usr/local/stattransfer/:/usr/local/stata/:/usr/local/stattransfer/ $ ls -l ~/bin/ | grep work -rwxr-xr-x 1 slackline slackline 95 Sep 6 07:35 rsync.work $ rsync.work bash: /home/slackline/bin/rsync.work: Permission denied 

Я не могу понять, что здесь не так, и был бы благодарен за любые мысли / идеи о том, как справиться с этим.

EDIT: Подчеркнул различные изменения, сделанные в ответ на вопросы, которые, надеюсь, будут читаться немного более согласованно и облегчить отслеживание того, что я пробовал, и как он вписывается в решение Марка Плотника.

One Solution collect form web for “разрешение на скрипты в ~ / bin”

Вы упомянули в комментариях, что файловая система вашего домашнего каталога смонтирована с опцией монтирования users .

 $ grep home /etc/fstab LABEL=home /home ext4 noatime,users 0 4 – 

Опция mount для users подразумевает noexec . От монтирования (8):

 users Allow every user to mount and unmount the filesystem. This option implies the options noexec, nosuid, and nodev (unless overridden by subsequent options, as in the option line users,exec,dev,suid). 
  • Объединить несколько строк с пробелами в них?
  • Сценарий GRUB 2: преобразовать имя устройства в нотации GRUB в имя устройства Linux
  • Как остановить запуск скрипта, если он не является root (и echo «Не работает как root! Exiting ...»)
  • Сценарий Bash IDE
  • статистика не работает с пробелами?
  • Каков наилучший способ редактирования файла с помощью сценария bash?
  • setenv не работает в tcsh
  • генерировать ссылки страниц с добавочной переменной
  • Есть ли графическая оболочка или среда сценариев для Linux?
  • Какой самый безопасный способ передать письмо скрипту через procmail?
  • Существуют ли какие-либо соглашения для имени глобальной переменной, которые содержат результат функции?
  • Interesting Posts

    Как успешно установить GLFW на Linux Mint?

    список резервных копий установленных пакетов

    Системный пользователь не может получить доступ к группе пользователей

    Рабочая станция Fedora 25: Anaconda выбрасывает ошибку Traceback во время установки

    Не удалось запустить исполняемый файл vscode

    Получайте отдельную информацию о памяти из free -m comand

    Как сделать модуль динамически загружаемым на Debian?

    IPTABLES, чтобы разрешить ssh, ftp, pop и т. Д. С одного статического IP-адреса с открытым HTTP / SSL

    Webmin перестала работать после обновления до Stretch

    Отключить завершение имени файла подстроки в zsh

    Сетевой интерфейс не принимает кадры, если в режиме неразборчивости

    Выполнение команды псевдонима в качестве другого пользователя

    Как убедиться, что OpenVPN подключен?

    Начинающий вопрос: доступ к сетевому местоположению в домене

    Как узнать, кто подключен через vnc к моей машине?

    Linux и Unix - лучшая ОС в мире.