Это снижается для прочитанного/писания/выполнения полномочий файла главным образом. Sudo не имеет ограниченные права.
Думайте об администраторской учетной записи в Windows, по сравнению с пользовательской или гостевой учетной записью с ограниченными правами. То же самое.
Интересно достаточно, мой vsftpd
пишет строка versino в stdin
. Таким образом, вероятно, необходимо сделать довольно необычное перенаправление stdin
кому: stdout
:
i=`/usr/sbin/vsftpd -version 0>&1`
Как узнать это: выполните его в strace
(необходимо будет сделать это как корень), и проверьте на строку. В моем случае журнал заканчивается как это:
$ strace /usr/sbin/vsftpd -version
...
brk(0) = 0x7f835332d000
brk(0x7f835334e000) = 0x7f835334e000
write(0, "vsftpd: version 3.0.2\n", 22) = 22
exit_group(0) = ?
+++ exited with 0 +++
Первый аргумент write()
дескриптор файла (0/1/2, обозначают stdin/stdout/stderr соответственно).
Команда vsftpd -v
использование stdin, таким образом, Вы не можете захватить вывод нормальным способом.
Я обычно просто захватываю ответ от порта FTP. Я только позволяю FTP локально так или иначе.
echo "bye" | nc localhost 21