mirror of https://github.com/hyperledger/besu
* Fix mounted data path directory permissions for besu user Signed-off-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io> * Add besu CLI option to output dirs needing permission update Signed-off-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io> * run spotless apply to handle PR test failure Signed-off-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io> * Remove newly added --print-paths-and-exit option from config file test This option doesn't have a corresponding config file entry as it's a standalone option to be used with docker containers Signed-off-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io> * Add optional user argument to --print-paths-and-exit and fix directory permissions Signed-off-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io> * Correct build.gradle changes, remove a duplicate line and extra whitespaces Signed-off-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io> * Fix checking for user in path's group membership Signed-off-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io> * Add platform check to restrict --print-paths-and-exit option usage to Linux and Mac Signed-off-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io> * Apply suggestions from code review Co-authored-by: Fabio Di Fabio <fabio.difabio@consensys.net> Signed-off-by: Bhanu Pulluri <59369753+pullurib@users.noreply.github.com> --------- Signed-off-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io> Signed-off-by: Bhanu Pulluri <59369753+pullurib@users.noreply.github.com> Co-authored-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io> Co-authored-by: Fabio Di Fabio <fabio.difabio@consensys.net>pull/7636/head
parent
578104e222
commit
0d9fa16a1f
@ -0,0 +1,49 @@ |
|||||||
|
#!/bin/bash |
||||||
|
## |
||||||
|
## Copyright contributors to Hyperledger Besu. |
||||||
|
## |
||||||
|
## Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with |
||||||
|
## the License. You may obtain a copy of the License at |
||||||
|
## |
||||||
|
## http://www.apache.org/licenses/LICENSE-2.0 |
||||||
|
## |
||||||
|
## Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on |
||||||
|
## an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the |
||||||
|
## specific language governing permissions and limitations under the License. |
||||||
|
## |
||||||
|
## SPDX-License-Identifier: Apache-2.0 |
||||||
|
## |
||||||
|
|
||||||
|
# Run Besu first to get paths needing permission adjustment |
||||||
|
output=$(/opt/besu/bin/besu --print-paths-and-exit $BESU_USER_NAME "$@") |
||||||
|
|
||||||
|
# Parse the output to find the paths and their required access types |
||||||
|
echo "$output" | while IFS=: read -r prefix path accessType; do |
||||||
|
if [[ "$prefix" == "PERMISSION_CHECK_PATH" ]]; then |
||||||
|
# Change ownership to besu user and group |
||||||
|
chown -R $BESU_USER_NAME:$BESU_USER_NAME $path |
||||||
|
|
||||||
|
# Ensure read/write permissions for besu user |
||||||
|
|
||||||
|
echo "Setting permissions for: $path with access: $accessType" |
||||||
|
|
||||||
|
if [[ "$accessType" == "READ" ]]; then |
||||||
|
# Set read-only permissions for besu user |
||||||
|
# Add execute for directories to allow access |
||||||
|
find $path -type d -exec chmod u+rx {} \; |
||||||
|
find $path -type f -exec chmod u+r {} \; |
||||||
|
elif [[ "$accessType" == "READ_WRITE" ]]; then |
||||||
|
# Set read/write permissions for besu user |
||||||
|
# Add execute for directories to allow access |
||||||
|
find $path -type d -exec chmod u+rwx {} \; |
||||||
|
find $path -type f -exec chmod u+rw {} \; |
||||||
|
fi |
||||||
|
fi |
||||||
|
done |
||||||
|
|
||||||
|
# Finally, run Besu with the actual arguments passed to the container |
||||||
|
# Construct the command as a single string |
||||||
|
COMMAND="/opt/besu/bin/besu $@" |
||||||
|
|
||||||
|
# Switch to the besu user and execute the command |
||||||
|
exec su -s /bin/bash $BESU_USER_NAME -c "$COMMAND" |
@ -0,0 +1,10 @@ |
|||||||
|
--- |
||||||
|
# runtime docker tests |
||||||
|
file: |
||||||
|
/var/lib/besu: |
||||||
|
exists: true |
||||||
|
owner: besu |
||||||
|
mode: "0755" |
||||||
|
process: |
||||||
|
java: |
||||||
|
running: true |
Loading…
Reference in new issue