#linux #bash #shell #chmod
#linux #bash #оболочка #chmod
Вопрос:
У меня есть скрипт в /home
каталоге пользователя, и я хочу выполнить этот скрипт с другим пользователем. Сценарий находится в доме пользователя : /home/UserA/command/command.sh
Я хочу выполнить этот скрипт с /home/UserB
Что я сделал и хотел узнать, есть ли более простой способ сделать это, так это :
- Я дал право на запись и выполнение в этом каталоге other (
chmod 703
):/home/UserA/command
есть ли способ предоставить право только UserB вместо other ? - В
/home/UserB/.bash_profile
, я добавил в путь/home/UserA/command
Другая проблема, с которой я сталкиваюсь, заключается в том, что в скрипте command.sh
я использую переменную $LISTPATH
( $HOME/List
), и эта переменная определена в UserA .bash_profile
.
Поэтому, когда я запускаю скрипт /home/UserB
, эта переменная всегда пуста. Нужно ли мне также добавлять эту переменную в .bash_profile
UserB: $LISTPATH=/home/UserA/List
Спасибо за вашу помощь
Комментарии:
1. Другому пользователю не нужно писать
/home/userA/command
. Его просто нужно выполнить.2. Почему бы вам не вставить
LISTPATH=$HOME/List
сам скрипт вместо профиля?3. О, я не заметил, что вы хотите, чтобы он указывал обратно на UserA. Тогда вы могли бы просто вставить
LISTPATH=~userA/List
скрипт.4. Лучше было бы установить значение по умолчанию для
LISTPATH
в скрипте, если оно еще не было определено: что-то вродеLISTPATH="${LISTPATH:-~userA/List}"
.5. Я думаю, что пришло время реорганизовать ваши вещи, а не искать обходные пути. Переместите скрипты, которые должны использоваться совместно, в общее местоположение (например, /usr/local/bin) и добавьте значения по умолчанию для переменных и замените их локальными значениями, как указано в предыдущих комментариях.
Ответ №1:
Какой беспорядок! На мой взгляд:
- Вы можете создать группу, к которой принадлежит пользователь, чтобы вы могли назначить эту группу /home/UserA/command и установить правильное разрешение (например, chmod 730 /home/UserA/command).
- Вам лучше поместить переменную $LISTPATH в начало вашего скрипта.
В любом случае, я думаю, вам лучше реорганизовать свой проект, вам лучше поместить скрипт в /opt/< некоторая подпапка> … вместо /home/UserA/command .