Совместное использование файлов/данных в Linux между локальными пользователями, при этом они не должны знать пароли друг друга или иметь привилегии суперпользователя

Флаг -f требуется, чтобы bash интерпретировал его как функцию, а не как переменную. См. справочную страницу .

2
04.11.2019, 01:30
2 ответа

Зачем вам усложнять nc?

Настройте три общих каталога с общими группами (у вас только три пользователя, так что это три отдельные группы :u1 -u2, u2 -u3, u1 -u3 ). Выполняйте работу в этих общих каталогах, поэтому копирование не требуется.

3
27.01.2020, 21:55

Пользователи имеют право устанавливать ACLs для своих файлов.

Чтобы разрешить john«отправлять» файл только определенному пользователю (joe), просто заставьте johnвыполнить, например.:

setfacl -m u:joe:rw file

Для предоставления пользователю joeдоступа к файлу. Конечно, стандартные разрешения должны исключать доступ по joe(, т.е. joe, не быть членом группы johnи не иметь разрешения на доступ кothers). Настройте команду setfaclпо своему вкусу, и если вы хотите сделать команду «отправить» с помощью простого скрипта, вот предложение:

#!/bin/bash

print_help(){
  echo "Usage: sendfile -u <user> file1 file2..."
  exit 1
}

while getopts "u:h" option
do
  case $option in
    u) user=$OPTARG
       if [[ "$(grep ^${user}: /etc/passwd)" == "" ]]
       then
         echo "$user not a valid user."
         exit
       fi ;; 
    h) print_help ;;
    *) print_help ;;
  esac
done 


if ((OPTIND == 1))
then
    echo "No user specified"
    exit 1
fi

shift $((OPTIND - 1))

setfacl u:${user}:rw "$@"

Конечно, списки ACL должны быть включены в первую очередь.

2
27.01.2020, 21:55

Теги

Похожие вопросы