Если вы хотите, чтобы команда cd работала в вашей текущей оболочке, вы должны запустить сценарий в текущей оболочке, потому что изменения в дочерней оболочке не передаются обратно в родительскую оболочку.
$ pwd
/afs/user/i/ahmad
$ cat test1
#!/bin/bash
cd /etc
$ . test1 #runs test1 in current shell even if its not executable
$ pwd
/etc
Использование echo и eval:
Использование eval в родительской оболочке. В командах эха сценария оболочки, которые вы хотите запускать родительской оболочкой:
echo "cd $filepath"
В родительской оболочке вы можете запустить сценарий оболочки с помощью eval:
eval `sh foo.sh`
Пример:
$ cat test1.sh
#!/bin/bash
echo "cd /etc"
$ eval `sh test1.sh`
$ pwd
/etc
Файловые системы Extended и XFS теперь автоматически используют параметр ACL. Пользователю testuser
по-прежнему необходимо разрешение на выполнение для просмотра файлов в /aclDirectory
. Вам понадобится ACL для самого каталога и ACL для всех новых объектов файловой системы, созданных в каталоге.
# Remove the ACLs.
sudo setfacl -b /aclDirectory
# Create the default ACL (for filesystem objects created within the directory).
sudo setfacl -d -m u:testuser:rwx /aclDirectory
# Set an ACL for the directory itself.
sudo setfacl -m u:testuser:rwx /aclDirectory
Затем создайте тестовый файл как ec2-user
для testuser
.