LINUX.ORG.RU

История изменений

Исправление supp0rtmail2019, (текущая версия) :

вот скрипт пытался написать как часть программы. он брал строчки

red_01 полный путь до папки
red_01 полный путь до папки

#! /bin/bash
cd /root/Programm/

# Файл основных конфигураций
user_file=./files/users_acl_a
#user_file=./test_file

# Рабочий файл программы для сравнения
programm_file=./prog_file/file_users_acl_a_prog
#programm_file=./test_file_2

# Временный рабочий файл программы для работы
programm_file_temp=./temp/temp_acl_prog
#programm_file_temp=./test_file_o

# Файл логирования программы
log_file=./log/log.log
#log_file=./test_log

# Перезапуск программы
restart=./hello_menu.sh

# Ошибка
error="echo -e \e[4;31m!!ошибка в операции!!\e[0m" 

# Сравнение файлов и остановка при пустом выводе
diff -B $user_file $programm_file

if [[ "$?" == "0" ]]
	then
		echo "$(date +%Y.%m.%d\ %H:%M) error Файлы одинаковы users_acl_a" >> $log_file
		#$restart
elif [[ "$?" == "1" ]]
	then
		diff -B $user_file $programm_file | grep -e ">" -e "<" | tee $programm_file_temp >> $log_file
fi

while read line
do
	if [[ -n "$line" && "$line" = \<* ]]
	then
		USERNAME=$(echo $line | cut -f2 -d ' ')
		DIRNAME=$(echo $line | cut -f3 -d ' ')
		setfacl -R -x $USERNAME,d:$USERNAME $DIRNAME || echo "$(date +%Y.%m.%d\ %H:%M) error $USERNAME $DIRNAME не удалось удалить" >> $log_file
	elif [[ -n "$line" && "$line" = \>* ]]	
	then
		USERNAME=$(echo $line | cut -f2 -d ' ')
		DIRNAME=$(echo $line | cut -f3 -d ' ')
		setfacl -R -m $USERNAME:rx,d:$USERNAME:rx $DIRNAME || echo "$(date +%Y.%m.%d\ %H:%M) error $USERNAME $DIRNAME не удалось добавить правила доступа" >> $log_file
		find $DIRNAME \( -name "pdf" -or -name "Работа" -or -name "Исходники" \) -type d -exec setfacl -R -m $USERNAME:rwx,d:$USERNAME:rwx {} \;
	fi
done < $programm_file_temp

rm -f $programm_file_temp
mv $programm_file $programm_file.bak
cat $user_file > $programm_file
при попытке попасть на сервер по домену или ip (не имеет значения) он просит ввести логин и пароль, при вводе выдает такой ответ со стороны windows клиента:
Windows не может получить доступ к "серверу"
Проверте правильность написания данного имени....
а если вставить имя пользователя в
admin users = @support, stinky, @design, @red, verstka_01, photo_3
то он заходит на шару со всеми правами игнорирую даже права на папки типа запрет на запись.

Исправление supp0rtmail2019, :

вот скрипт пытался написать как часть программы. он брал строчки

red_01 полный путь до папки
red_01 полный путь до папки

#! /bin/bash
cd /root/Programm/

# Файл основных конфигураций
user_file=./files/users_acl_a
#user_file=./test_file

# Рабочий файл программы для сравнения
programm_file=./prog_file/file_users_acl_a_prog
#programm_file=./test_file_2

# Временный рабочий файл программы для работы
programm_file_temp=./temp/temp_acl_prog
#programm_file_temp=./test_file_o

# Файл логирования программы
log_file=./log/log.log
#log_file=./test_log

# Перезапуск программы
restart=./hello_menu.sh

# Ошибка
error="echo -e \e[4;31m!!ошибка в операции!!\e[0m" 

# Сравнение файлов и остановка при пустом выводе
diff -B $user_file $programm_file

if [[ "$?" == "0" ]]
	then
		echo "$(date +%Y.%m.%d\ %H:%M) error Файлы одинаковы users_acl_a" >> $log_file
		#$restart
elif [[ "$?" == "1" ]]
	then
		diff -B $user_file $programm_file | grep -e ">" -e "<" | tee $programm_file_temp >> $log_file
fi

while read line
do
	if [[ -n "$line" && "$line" = \<* ]]
	then
		USERNAME=$(echo $line | cut -f2 -d ' ')
		DIRNAME=$(echo $line | cut -f3 -d ' ')
		setfacl -R -x $USERNAME,d:$USERNAME $DIRNAME || echo "$(date +%Y.%m.%d\ %H:%M) error $USERNAME $DIRNAME не удалось удалить" >> $log_file
	elif [[ -n "$line" && "$line" = \>* ]]	
	then
		USERNAME=$(echo $line | cut -f2 -d ' ')
		DIRNAME=$(echo $line | cut -f3 -d ' ')
		setfacl -R -m $USERNAME:rx,d:$USERNAME:rx $DIRNAME || echo "$(date +%Y.%m.%d\ %H:%M) error $USERNAME $DIRNAME не удалось добавить правила доступа" >> $log_file
		find $DIRNAME \( -name "pdf" -or -name "Работа" -or -name "Исходники" \) -type d -exec setfacl -R -m $USERNAME:rwx,d:$USERNAME:rwx {} \;
	fi
done < $programm_file_temp

rm -f $programm_file_temp
mv $programm_file $programm_file.bak
cat $user_file > $programm_file
при попытке попасть на сервер по домену или ip (не имеет значения) он просит ввести логин и пароль, при вводе выдает такой ответ со стороны windows клиента:
Windows не может получить доступ к "серверу"
Проверте правильность написания данного имени....
а если вставить имя пользователя в
admin users = @support, stinky, @design, @red, verstka_01, photo_3
то он заходит на шару с всеми правами игнорирую даже права на папки типа запрет на запись.

Исправление supp0rtmail2019, :

вот скрипт пытался написать как часть программы. он брал строчки

red_01 полный путь до папки
red_01 полный путь до папки

#! /bin/bash
cd /root/Programm/

# Файл основных конфигураций
user_file=./files/users_acl_a
#user_file=./test_file

# Рабочий файл программы для сравнения
programm_file=./prog_file/file_users_acl_a_prog
#programm_file=./test_file_2

# Временный рабочий файл программы для работы
programm_file_temp=./temp/temp_acl_prog
#programm_file_temp=./test_file_o

# Файл логирования программы
log_file=./log/log.log
#log_file=./test_log

# Перезапуск программы
restart=./hello_menu.sh

# Ошибка
error="echo -e \e[4;31m!!ошибка в операции!!\e[0m" 

# Сравнение файлов и остановка при пустом выводе
diff -B $user_file $programm_file

if [[ "$?" == "0" ]]
	then
		echo "$(date +%Y.%m.%d\ %H:%M) error Файлы одинаковы users_acl_a" >> $log_file
		#$restart
elif [[ "$?" == "1" ]]
	then
		diff -B $user_file $programm_file | grep -e ">" -e "<" | tee $programm_file_temp >> $log_file
fi

while read line
do
	if [[ -n "$line" && "$line" = \<* ]]
	then
		USERNAME=$(echo $line | cut -f2 -d ' ')
		DIRNAME=$(echo $line | cut -f3 -d ' ')
		setfacl -R -x $USERNAME,d:$USERNAME $DIRNAME || echo "$(date +%Y.%m.%d\ %H:%M) error $USERNAME $DIRNAME не удалось удалить" >> $log_file
	elif [[ -n "$line" && "$line" = \>* ]]	
	then
		USERNAME=$(echo $line | cut -f2 -d ' ')
		DIRNAME=$(echo $line | cut -f3 -d ' ')
		setfacl -R -m $USERNAME:rx,d:$USERNAME:rx $DIRNAME || echo "$(date +%Y.%m.%d\ %H:%M) error $USERNAME $DIRNAME не удалось добавить правила доступа" >> $log_file
		find $DIRNAME \( -name "pdf" -or -name "Работа" -or -name "Исходники" \) -type d -exec setfacl -R -m $USERNAME:rwx,d:$USERNAME:rwx {} \;
	fi
done < $programm_file_temp

rm -f $programm_file_temp
mv $programm_file $programm_file.bak
cat $user_file > $programm_file
при попытке попасть на сервер по домену или ip (не имеет значения) он просит ввести логин и пароль, при вводе выдает такой ответ со стороны windows клиента:
Windows не может получить доступ к "серверу"
Проверте правильность написания данного имени....
а если вставить имя пользователя в
admin users = @support, stinky, @design, @red, verstka_01, photo_3
 # наследовать владельца (вышестоящей директории)
то он заходит на шару с всеми правами игнорирую даже права на папки типа запрет на запись.

Исправление supp0rtmail2019, :

вот скрипт пытался написать как часть программы. он брал строчки

red_01 полный путь до папки
red_01 полный путь до папки

#! /bin/bash
cd /root/Programm/

# Файл основных конфигураций
user_file=./files/users_acl_a
#user_file=./test_file

# Рабочий файл программы для сравнения
programm_file=./prog_file/file_users_acl_a_prog
#programm_file=./test_file_2

# Временный рабочий файл программы для работы
programm_file_temp=./temp/temp_acl_prog
#programm_file_temp=./test_file_o

# Файл логирования программы
log_file=./log/log.log
#log_file=./test_log

# Перезапуск программы
restart=./hello_menu.sh

# Ошибка
error="echo -e \e[4;31m!!ошибка в операции!!\e[0m" 

# Сравнение файлов и остановка при пустом выводе
diff -B $user_file $programm_file

if [[ "$?" == "0" ]]
	then
		echo "$(date +%Y.%m.%d\ %H:%M) error Файлы одинаковы users_acl_a" >> $log_file
		#$restart
elif [[ "$?" == "1" ]]
	then
		diff -B $user_file $programm_file | grep -e ">" -e "<" | tee $programm_file_temp >> $log_file
fi

while read line
do
	if [[ -n "$line" && "$line" = \<* ]]
	then
		USERNAME=$(echo $line | cut -f2 -d ' ')
		DIRNAME=$(echo $line | cut -f3 -d ' ')
		setfacl -R -x $USERNAME,d:$USERNAME $DIRNAME || echo "$(date +%Y.%m.%d\ %H:%M) error $USERNAME $DIRNAME не удалось удалить" >> $log_file
	elif [[ -n "$line" && "$line" = \>* ]]	
	then
		USERNAME=$(echo $line | cut -f2 -d ' ')
		DIRNAME=$(echo $line | cut -f3 -d ' ')
		setfacl -R -m $USERNAME:rx,d:$USERNAME:rx $DIRNAME || echo "$(date +%Y.%m.%d\ %H:%M) error $USERNAME $DIRNAME не удалось добавить правила доступа" >> $log_file
		find $DIRNAME \( -name "pdf" -or -name "Работа" -or -name "Исходники" \) -type d -exec setfacl -R -m $USERNAME:rwx,d:$USERNAME:rwx {} \;
	fi
done < $programm_file_temp

rm -f $programm_file_temp
mv $programm_file $programm_file.bak
cat $user_file > $programm_file

Исходная версия supp0rtmail2019, :

вот скрипт пытался написать как часть программы. он брал строчки

red_01 полный путь до папки red_01 полный путь до папки

#! /bin/bash
cd /root/Programm/

# Файл основных конфигураций
user_file=./files/users_acl_a
#user_file=./test_file

# Рабочий файл программы для сравнения
programm_file=./prog_file/file_users_acl_a_prog
#programm_file=./test_file_2

# Временный рабочий файл программы для работы
programm_file_temp=./temp/temp_acl_prog
#programm_file_temp=./test_file_o

# Файл логирования программы
log_file=./log/log.log
#log_file=./test_log

# Перезапуск программы
restart=./hello_menu.sh

# Ошибка
error="echo -e \e[4;31m!!ошибка в операции!!\e[0m" 

# Сравнение файлов и остановка при пустом выводе
diff -B $user_file $programm_file

if [[ "$?" == "0" ]]
	then
		echo "$(date +%Y.%m.%d\ %H:%M) error Файлы одинаковы users_acl_a" >> $log_file
		#$restart
elif [[ "$?" == "1" ]]
	then
		diff -B $user_file $programm_file | grep -e ">" -e "<" | tee $programm_file_temp >> $log_file
fi

while read line
do
	if [[ -n "$line" && "$line" = \<* ]]
	then
		USERNAME=$(echo $line | cut -f2 -d ' ')
		DIRNAME=$(echo $line | cut -f3 -d ' ')
		setfacl -R -x $USERNAME,d:$USERNAME $DIRNAME || echo "$(date +%Y.%m.%d\ %H:%M) error $USERNAME $DIRNAME не удалось удалить" >> $log_file
	elif [[ -n "$line" && "$line" = \>* ]]	
	then
		USERNAME=$(echo $line | cut -f2 -d ' ')
		DIRNAME=$(echo $line | cut -f3 -d ' ')
		setfacl -R -m $USERNAME:rx,d:$USERNAME:rx $DIRNAME || echo "$(date +%Y.%m.%d\ %H:%M) error $USERNAME $DIRNAME не удалось добавить правила доступа" >> $log_file
		find $DIRNAME \( -name "pdf" -or -name "Работа" -or -name "Исходники" \) -type d -exec setfacl -R -m $USERNAME:rwx,d:$USERNAME:rwx {} \;
	fi
done < $programm_file_temp

rm -f $programm_file_temp
mv $programm_file $programm_file.bak
cat $user_file > $programm_file