Примите меры, чтобы файлы, созданные в каталоге, принадлежали группе каталога

Вместо того, чтобы хранить вывод целиком (со встроенными символами новой строки) в переменной скаляра, можно было (я не говорил, что должен ) хранить строки в переменной массива.

С помощью ksh93, mksh, bash, zsh в эмуляции sh:

IFS='
' # split on newline
set -f
var=($(snmpwalk -v2c -c private "$ip" .1.1.1.6))

А затем используйте printf, как:

printf "$hostname=>%s\n" "${var[@]}"

Это предполагает, однако, что $hostname не содержит символов процента или обратного слеша.

rc и zsh проще:

  • rc:

    var = (``(").
    '){snmpwalk -v2c -c private $ip .1.1.1.6}))
    printf %s\n $hostname'=>'^$var
    
  • zsh:

    var=(${(f)"$(snmpwalk -v2c -c private $ip .1.1.1.6)"})
    printf '%s\n' $hostname'=>'$^var
    

(обратите внимание, что все эти решения игнорируют пустые строки)

-3
15.10.2014, 01:31
1 ответ

Это возможно с SGID.

Так можно прочитать больше на этом здесь: http://linoxide.com/how-tos/stickbit-suid-guid/

Пример на то, как на самом деле сделать это:

Реализация SGID на Каталог:

# chmod g+s /test/
# ls -ld /test
drwxrwsrwx 2 root root 4096 Mar  8 03:12 /test

Now swich to other user and create a file in /test directory.

# su - roger
$ cd /test/
$ touch roger.txt
$ ls -l roger.txt
-rw-rw-r-- 1 roger   root 0 Mar  8 03:13 roger.txt
1
28.01.2020, 05:19

Теги

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