Чтобы создать учетную запись пользователя без доступа к оболочке,
sudo adduser --shell /bin/false mysftpfriend
Вы должны создать каталог и структуру каталогов для mysftpfriend и сделать его доступным для них.
sudo mkdir -p /var/mysftpfriends/storage
Дать доступ,
sudo chown mysftpfriend:mysftpfriend /var/mysftpfriends/storage
Просто установите root, чтобы иметь полный доступ (владельца и владельца группы )к каталогу mysftpfriends.
sudo chown root:root /var/mysftpfriends
sudo chmod 0766 /var/mysftpfriends
Члены группы могут читать/записывать, но не могут выполнять.
Теперь, чтобы настроить SSH, предназначенный только для SFTP, откройте /etc/ssh/sshd_config
в текстовом редакторе (nano или vim ),
sudo nano /etc/ssh/sshd_config
добавить следующие строки в конец файла,
Match User mysftpfriend
ForceCommand internal-sftp
PasswordAuthentication yes
ChrootDirectory /var/mysftpfriends
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
сохраните файл, выйдите из редактора и перезапустите ssh.
sudo service ssh restart
это все, теперь попробуйте подключиться к консоли по ssh и проверить чтение/запись файла и убедиться, что пользователь sftpfriend не может выполнить его.
sftp mysftpfriend@myserver
Готово!
Решением, которое я нашел, было сначала преобразовать YCbCr
в RGBA
с помощью tiff2rgba . (входит в комплект libtiff
). Затем конвертируйте этот RGB tiff в любые другие форматы.
$ tiff2rgba input.tiff out.tiff
$ convert out.tiff final.png
Дополнительная информация:
$ identify input.tiff
input.tiff TIFF 640x480 640x480+0+0 8-bit YCbCr 618733B 0.000u 0:00.000
$ identify out.tiff
out.tiff TIFF 640x480 640x480+0+0 8-bit sRGB 858070B 0.000u 0:00.000
Если у вас есть более компактные ответы, такие как использование только imagemagick
без tiff2rgba
, или вы даже знаете, почему это произойдет, Пожалуйста, не стесняйтесь поделиться. Спасибо.
Поскольку информация о цветовом пространстве является частью файла TIFF (, это частично то, что означает T :в файле есть реальная информация о структуре изображения, помеченная ), это означает ваш новообращенный делает что-то не так (или ваш входной файл поврежден таким образом, что ваш другой зритель может "неправильно" обработать "успешно" ).
Итак, обходной путь :Не используйте convert
/imagemagick (, который также является одним из крупнейших источников уязвимостей серверов в истории Интернета ). В любом случае, по моему опыту, это чертовски медленно.
Попробуйтеeconvert
из проекта ExactImage .
Помимо этого, Python PIL/Pillow может прекрасно работать; это буквально первый пример в их туториале(с минимальными изменениями ); сохраните это в текстовый файл, пометьте его как исполняемый файл и используйте в своих файлах.
#!/usr/bin/env python3
import os, sys
from PIL import Image
for infile in sys.argv[1:]:
filename, extension = os.path.splitext(infile)
outfile = f"{filename}.jpg"
if infile != outfile:
try:
with Image.open(infile) as im:
im.save(outfile)
except OSError:
print(f"cannot convert {infile}")