что делать
grep :0:0: /etc/passwd | sudo sed 's_/bin/bash_/sbin/nologin_' /etc/passwd
?
grep: 0:0 :/etc/passwd
поиск строки (строк) с uid/gid быть 0, это обычно дает строку с корнем, эта строка подается в STDOUT (стандартный вывод) |
выход из grep подается в sudo sed, который отбрасывается из-за того, что файл указывается в командной строке sed's _/bin/bash _/sbin/nologin _ '/etc/passwd
эта замена bash на nologin с/etc/passwd на STDOUT ,/etc/passwd оставлена без изменений. Вы просто пробовали..?
sudo sed -i '/:0:0:/s_/bin/bash_/sbin/nologin_' /etc/passwd
-121--290201- Есть добавка TrackerBird 1.0.2 в thunderbird. Его просто нужно отключить.
-121--290262-Являются ли пользователи локальными пользователями или пользователями vsftp?
Попробуйте выполнить следующие действия:
grep local_enable /etc/vsftpd/vsftpd.conf
Для этого необходимо установить значение YES, и пользователи должны войти в систему с локальными учетными записями.
Если этот набор не требуется или он уже установлен, вставьте /etc/vsftpd/vsftpd.conf
сюда.
Учитывая, что набор команд smbclient -не реализует полную оболочку, моей лучшей идеей (за исключением smbounding общих ресурсов и использования утилит локальной оболочки ), является "разбор ls".
На высоком уровне вы бы заменили одну команду smbclient двумя:
smbclient... dir
--чтобы получить список файлов smbclient... get
--для получения самого старого файла Поскольку у меня нет окружения, похожего на ваше, вот "внутренности" того, что я бы заменил:
filename=$(smbclient '\\'$IP'\C$' -W *** -U ***%*** -c "cd \*****\*****; dir" | awk -f parse-smbclient-ls)
smbclient '\\'$IP'\C$' -W *** -U ***%*** -c "cd \*****\*****; get $filename"
Где содержимое parse -smbclient -ls будет:
BEGIN {
"date +%s" | getline oldesttime
}
/ N / {
# size thu mar dd dd:dd:dd dddd
if (match($0, / N +[[:digit:]]+ +[[:alpha:]]{3} [[:alpha:]]{3} +[[:digit:]]+ [[:digit:]]{2}:[[:digit:]]{2}:[[:digit:]]{2} [[:digit:]]{4}$/)) {
timestamp=sprintf("%s %s %s %s %s", $(NF-4), $(NF-3), $(NF-2), $(NF-1), $NF)
filename=substr($0, 3, RSTART-3)
# trim trailing whitespace -- *** hope the real filename doesn't end in whitespace
sub(/ +$/, "", filename);
("date --date='"timestamp"' +%s") | getline seconds
if (seconds < oldesttime) {
oldesttime=seconds
oldestfile=filename
}
}
}
END {
print oldestfile
}
Пошаговое выполнение этого awk-скрипта:
/ N /
, то мы видим обычный файл (, а не каталог )$
), тогда Обратите внимание, что у этого есть по крайней мере две проблемы, о которых я знаю:
foo$'\n'bar
, команда smbclient dir
вместо этого показала мне:FKCEWC~I
в качестве имени файла.