forked from NASP/registry
		
	testbed_deploy.sh
This commit is contained in:
		
							parent
							
								
									0ca082e81b
								
							
						
					
					
						commit
						cce4a4c5bc
					
				@ -19,3 +19,5 @@ insert_if_not_exist()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
insert_if_not_exist "/etc/crontab" "*/5 * * * * cd \"$THIS_DIR\" && git pull && \"$THIS_DIR\"/jumpserver_cron.sh"
 | 
			
		||||
 | 
			
		||||
\"$THIS_DIR\"/jumpserver_cron.sh
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										4
									
								
								scripts/nasp
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										4
									
								
								scripts/nasp
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,4 @@
 | 
			
		||||
%nasp ALL = (root) NOPASSWD: /usr/bin/docker
 | 
			
		||||
%nasp ALL = (root) NOPASSWD: /usr/sbin/reboot
 | 
			
		||||
%nasp ALL = (root) NOPASSWD: /usr/bin/whoami
 | 
			
		||||
 | 
			
		||||
@ -16,6 +16,7 @@ touch_user() {
 | 
			
		||||
        --shell /bin/bash \
 | 
			
		||||
        --disabled-password \
 | 
			
		||||
        --home /home/$1 \
 | 
			
		||||
        --gecos "nasp member" \
 | 
			
		||||
        $1
 | 
			
		||||
    usermod -a -G nasp $1
 | 
			
		||||
}
 | 
			
		||||
@ -23,12 +24,18 @@ touch_user() {
 | 
			
		||||
update_key() {
 | 
			
		||||
    tmp_path="/tmp/authorized_keys_$1"
 | 
			
		||||
    dest_path="/home/$1/.ssh/authorized_keys"
 | 
			
		||||
    echo "# This file is autoly generated. Changes here will not work." > "$tmp_path"
 | 
			
		||||
    dest_dir=$(dirname "$dest_path")
 | 
			
		||||
 | 
			
		||||
    echo "# This file is autoly generated. Changes here will not work." > "$tmp_path"
 | 
			
		||||
    for file in $(find "$THIS_DIR/../authorized_keys/$1" -type f); do
 | 
			
		||||
        (echo "# key file: ${file#*authorized_keys/}";cat "$file"; echo) >> "$tmp_path"
 | 
			
		||||
    done
 | 
			
		||||
 | 
			
		||||
    if [[ ! -d "$dest_dir" ]]; then
 | 
			
		||||
        mkdir -p "$dest_dir"
 | 
			
		||||
        chown $1:$1 "$dest_dir"
 | 
			
		||||
        chmod 700 "$dest_dir"
 | 
			
		||||
    fi
 | 
			
		||||
    cat "$tmp_path" > "$dest_path"
 | 
			
		||||
    rm "$tmp_path"
 | 
			
		||||
    chown $1:$1 "$dest_path"
 | 
			
		||||
@ -36,8 +43,9 @@ update_key() {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
main() {
 | 
			
		||||
    cp "$THIS_DIR/nasp /etc/sudoers.d/nasp"
 | 
			
		||||
    for file in "$THIS_DIR"/../authorized_keys/* ; do
 | 
			
		||||
        if ! test -d "$file"; then
 | 
			
		||||
        if [[ ! -d "$file" ]]; then
 | 
			
		||||
            continue
 | 
			
		||||
        fi
 | 
			
		||||
        username=$(basename $file)
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										20
									
								
								scripts/testbed_deploy.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										20
									
								
								scripts/testbed_deploy.sh
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,20 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
set -ex
 | 
			
		||||
THIS_DIR=$( cd "$( dirname "${BASH_SOURCE[0]:-${(%):-%x}}" )" && pwd )
 | 
			
		||||
 | 
			
		||||
apt update && apt install sudo
 | 
			
		||||
addgroup nasp
 | 
			
		||||
 | 
			
		||||
insert_if_not_exist()
 | 
			
		||||
{
 | 
			
		||||
    filename=$1
 | 
			
		||||
    line=$2
 | 
			
		||||
    if [ ! -f "$filename" ]; then
 | 
			
		||||
        touch $filename
 | 
			
		||||
    fi
 | 
			
		||||
    grep -qxF -- "$line" "$filename" || echo "$line" >> "$filename"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
insert_if_not_exist "/etc/crontab" "*/5 * * * * cd \"$THIS_DIR\" && git pull && \"$THIS_DIR\"/testbed_cron.sh"
 | 
			
		||||
 | 
			
		||||
\"$THIS_DIR\"/testbed_cron.sh
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user