Я только что попробовал его, и это на самом деле возможно с небольшой программой Ruby, названной acoc (Произвольный Вывод Команды Colourer). Это может использоваться для прерывания вывода из любой терминальной программы (цветной вывод в top
и gcc
особенно аккуратно), и colourise их согласно файлу указанных пользователями правил регулярного выражения. Это - немного работы для установки, и необходимо будет определить правила, но это почти столь гибко, как это добирается. Я смог успешно добавить правило к colourise мировым перезаписываемым файлам.
Несколько протестов знать, если Вы спускаетесь по этому маршруту:
ls
, прерывание с acoc
выбрасывает существующее LS_COLORS
, таким образом, необходимо будет предоставить все правила, Вам нужно как регулярные выражения, включая вещи, которые раньше выделялись с LS_COLORS
.SFTP является доступом команды к операциям файла с ограничениями из учетной записи, которую Вы используете. Необходимо использовать ssh для, делают больше административных операций, делая невозможное использование sudo и SFTP в то же время. При необходимости в доступе ко всему диску без ограничения с помощью SFTP сделайте это с помощью корневой учетной записи. Так или иначе можно сделать вход в систему с корнем на sftp и ssh в то же время, конечно, с помощью двух различных сессий.
Ключи защиты улучшают безопасность и делают более легкими вход, не требуя ввода с клавиатуры. Только помогает сделать вход в систему, Вы можете, имел несколько паролей для каждого пользователя учетной записи и имел тот же эффект.
Править: Я забыл: можно создать другую учетную запись с тем же эффектом, чем корень, если Вы присваиваете идентификатор пользователя 0, но не имели какой-либо смысл, будучи опасными таким же образом. Мог дать некоторую путаницу, если кто-то пытается войти в систему как корень, но независимо которых, не имел много смысла.
Вне того, какой @MartinVonWittich, предложенный в комментариях выше Вас, мог установить специализированную пару ключей SSH только для этого действия и добавить их к пользователю root /root/.ssh/authorized_keys
файл, ограничивающий их объем просто единственной командой.
# User backup's $HOME/.ssh/authorized_keys file
command="/usr/libexec/openssh/sftp-server" ssh-dss AAAAC8ghi9ldw== backup@host
Это позволило бы другую систему с соответствующим ключом к этой паре к SFTP в эту систему как корень. У Вас все еще была бы запись этого соединения в Вашем syslog
и/или secure.log
файлы (принимающий Ваш дистрибутив обеспечивает этот уровень входа).
Примечание: То, кто бы ни получает доступ к серверу в этом методе, имело бы меню blanche доступом, так используйте его мудро. Лучше все еще продолжите читать и объедините эту возможность с chroot и доступом только для чтения, для построения более трудных ограничений и предназначенного доступа к определенным местоположениям как корень.
Другая техника, которую Вы могли использовать здесь, будет состоять в том, чтобы ограничить соединение SFTP так, чтобы это был chrooted в определенные местоположения как корень, на основе которого использовался ключ SSH. См. мой ответ на это названные Вопросы и ответы U&L: "Ограничьте резервное копирование пароля меньше с SFTP" для получения дополнительной информации.
Можно также управлять sftp-server
через его переключатели -R
и -d
.
-d start_directory
specifies an alternate starting directory for users. The pathname
may contain the following tokens that are expanded at runtime: %%
is replaced by a literal '%', %h is replaced by the home directory
of the user being authenticated, and %u is replaced by the user‐
name of that user. The default is to use the user's home
directory. This option is useful in conjunction with the
sshd_config(5) ChrootDirectory option.
-R Places this instance of sftp-server into a read-only mode.
Attempts to open files for writing, as well as other operations
that change the state of the filesystem, will be denied.
sftp-server
не делает его немного более безопасным, не так ли? Если взломщик получает доступ к этой учетной записи, он может легко дать себе корневую оболочку с помощью SFTP. Таким образом, ограничение команды довольно бесполезно с точки зрения :)
– Martin von Wittich
27.01.2014, 00:47
root
Доступ SFTP в любой форме является просто проблемой, особенно когда это не chrooted.
– slm♦
27.01.2014, 01:20
У меня была подобная проблема, в которой я хотел использовать vimdiff для редактирования конфигурационных файлов на группе главным образом подобных хостов с cssh и sudo, и Вы можете адаптировать мое решение своего рабочего процесса.
sudoedit (часть sudo) позволяет Вам использовать любого редактора в качестве обычного пользователя для редактирования файла, для которого у Вас нет разрешения записи, и можно указать редактора с переменной среды. sudoedit копирует файл (файлы), вызывает редактора с названиями копии (копий) и ожидает редактора для выхода, затем копирует измененную копию назад туда, где это было. таким образом, я создал 'редактора', который не редактирует, просто отмечает файл более поздним использованием и ожидает и обертка вокруг vimdiff, который использует тот маркер.
первый файл является ~/.bin/redit
#!/usr/bin/perl -w
use strict;
use warnings;
use Sys::Hostname;
my $file = $ENV{HOME}.'/.var/redit/'.hostname();
sub cmkdir($){
my $_=shift;
mkdir $_ unless -d $_;
}
cmkdir $ENV{HOME}.'/.var/';
cmkdir $ENV{HOME}.'/.var/redit/';
foreach (@ARGV){
my $fh;
open $fh, '>', $file.'na' or warn;
print {$fh} $_;
close $fh;
symlink $_, $file or die;
print;
<STDIN>;
unlink $file or die;
unlink $file.'na' or die;
}
вторым является ~/.bin/redit1
#!/usr/bin/perl -w
use strict;
use warnings;
use Sys::Hostname;
my $h=hostname();
@ARGV=qw(host1 host2 host3 host4) unless @ARGV;
print join " ", qw(gvimdiff), $ENV{HOME}.'/.var/redit/'.$h, map {'scp://'.$_.'/.var/redit/'.$_} grep {$_ ne $h} @ARGV;
exec qw(gvimdiff), $ENV{HOME}.'/.var/redit/'.$h, map {'scp://'.$_.'/.var/redit/'.$_} grep {$_ ne $h} @ARGV;
Путем я использую их, я использую cssh, чтобы открыть соединение со всеми четырьмя хостами и затем использовать команду как EDITOR=~/.bin/redit sudoedit /etc/conf/file
и затем В другом выполненном окне ~/.bin/redit1
, внесите мои изменения, сохраните и выйдите, переключатель назад к cssh и нажмите Enter, чтобы фиксировать изменения и выйти из sudoedit (если я не редактирую больше чем один файл, в этом случае переиздают усовершенствования в следующий файл в списке, и Вы выполняете redit1 снова для следующего файла.)
Начиная с то, что Вы делаете, менее сложно, Вам не нужно redit1 только из-за работы с одним удаленным хостом, можно просто указать sftp редактора host:.var/redit/host или эквивалентный.
Вызов подсистемы с sudo работали на меня.
К Ubuntu размещают, например:
sftp -s "sudo /usr/lib/openssh/sftp-server" targethost.fqdn
Что я делаю, это использовать SCP вместо (ы) FTP и изменить оболочку на Sudo SU -
в Winscp это в Advanced \ SCP \ Shell, но это Только работает с протоколом SCP.
Для sftp: если у вас есть доступ sudo к оболочке ssh, вы можете добавить свое имя пользователя в корневую группу пользователей в / etc / group и затем дать этой группе разрешения rx в папки, к которым вы хотите получить доступ.
Добавление этой строки в /etc/ssh/sshd _config было для меня исправлением, и прокомментируйте существующую строку подсистемыSubsystem sftp sudo -n true && sudo -n /usr/lib/openssh/sftp-server || /usr/lib/openssh/sftp-server
тогдаsudo systemctl restart sshd
Простой подход, который я использовал, заключался в том, чтобы просто использовать sftp и поместить файлы в рабочую область(mkdir
новый каталог, где у вас есть разрешения на сервере ), а затем снова использовать ssh, чтобы переместить файлы оттуда в место назначения с помощью sudo cp
или sudo mv
.
Конкретный ответ WinSCP и Amazon EC2 Ubuntu:
Для AMI сервера AWS EC2 Ubuntu 18.04 за ноябрь 2019 г. пользователь по умолчанию ubuntu
уже настроен на пароль -без sudo. Проверьте /etc/sudoers.d/90-cloud-init-users
, который содержит (в моем случае):
# Created by cloud-init v. 19.2-36-g059d049c-0ubuntu1~18.04.1 on Wed, 27 Nov 2019 09:23:42 +0000
# User rules for ubuntu
ubuntu ALL=(ALL) NOPASSWD:ALL
Для WinSCP измените дополнительные настройки сайта на:
sudo /usr/lib/openssh/sftp-server
(должен быть одним из предлагаемых вариантов раскрывающегося списка, на мой взгляд)