小编Dor*_*Dor的帖子

如何在不提示输入密码的情况下进行 rsync,而不使用公钥身份验证?

我需要执行rsync,而不提示我输入密码。

我在rsync联机帮助页中看到它不允许将密码指定为命令行参数。
但我注意到它允许通过变量指定密码RSYNC_PASSWORD

所以我尝试导出变量,但rsync一直要求我输入密码。

export RSYNC_PASSWORD="abcdef"
rsync root@1.2.3.4:/abc /def
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

请考虑:

换句话说,我需要让RSYNC_PASSWORD方法起作用!:-)

password ssh rsync

76
推荐指数
5
解决办法
29万
查看次数

为什么不应该有人在命令行中使用密码?

为什么人们害怕在命令行中写密码?

历史文件位于 中~/.history,因此它仅对执行命令的用户(和 root)可用。

command-line security bash password command-history

33
推荐指数
3
解决办法
7244
查看次数

如何获取当前终端名称?

如何获取当前终端名称?

我的意思ps是在 TTY 列中显示的名称,例如:

root@dor-desktop:/home/dor/Documents/LAMP_setup/webs_install/do/install# ps aux | egrep 'mysql|(^USER)'
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
dor       2238  0.2  1.9 448052 79796 ?        S    17:27   0:17 gedit /home/dor/Documents/LAMP_setup/webs_install/do/install/mysql.install /home/dor/Documents/LAMP_setup/webs_install/do/install/mysql.setup
root      4975  0.1  0.5 324984 22876 ?        S    18:12   0:04 gedit /usr/local/mysql/bin/mysqld_safe
root      8160  0.0  0.0   4108   664 pts/2    S    19:08   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --skip-networking --skip-grant-tables --user=mysql --basedir=/usr/local/mysql --ledir=/usr/local/mysql/libexec
mysql     8279  0.0  0.4 146552 19032 pts/2    Sl   19:08   0:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --user=mysql --skip-networking …
Run Code Online (Sandbox Code Playgroud)

bash terminal

22
推荐指数
1
解决办法
3万
查看次数

使用密码安全地提供程序

在了解了在命令行中使用密码的问题后,我需要找到一种方法来为程序提供密码而不会出现问题(密码不会被记录在某处)。

我有一个 bash 脚本,它可以从源代码自动安装整个 LAMP 服务器:Apache、FastCGI、PHP 和 MySQL。这些安装需要密码,尤其是 MySQL。

如何在不泄露密码的情况下使脚本完全自动化?

编辑(UTC 时间 6 月 9 日,3:55):
我在命令行上通过 root 使用密码调用 mysql:

root@dor-desktop:/home/dor# PASS=`cat /home/dor/tmpf/pass`
root@dor-desktop:/home/dor# mysql -u root -p"$PASS"
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6
Run Code Online (Sandbox Code Playgroud)

(在我们的例子中,PASS="p4ssw0rd")
ps aux | grep mysql通过我的普通用户(dor)执行,它没有显示密码
(一些)ps输出是:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root      3562  0.0  0.0  34156  2864 pts/0    S+   05:53 …
Run Code Online (Sandbox Code Playgroud)

security password bash-script

9
推荐指数
2
解决办法
3820
查看次数

是否可以通过 STDIN 提供 Open Office?

我有一个存储在 bash 变量中的 Open Office 电子表格文档。我想做以下类似的事情来通过以下方式提供开放式办公室STDIN

echo "$openOfficeDoc" | ooffice
Run Code Online (Sandbox Code Playgroud)

但它不起作用。

注意: bash 变量的内容不得写入磁盘。

我要强调的是,我正在尝试将文件的实际数据传递给 Open Office。

我正在尝试将密码存储在 Open Office 电子表格文件中。密码使用 GPG 加密。出于安全原因,我不希望将密码写入磁盘。

bash 变量值是 Open Office 电子表格文档的二进制 blob。它不是ASCII。

我用来创建 blob 的 bash 代码是:

data=$(cat "Encrypted.gpg" | gpg -u "Dor" -d)
Run Code Online (Sandbox Code Playgroud)

WhileEncrypted.gpg是 Open Office 电子表格的加密文件。

是否可以通过 STDIN 提供 Open Office?

bash pipe openoffice stdin

7
推荐指数
1
解决办法
3655
查看次数

Linux各种分区类型代码用法

我正在阅读“Full_Disk_Encryption_Howto_2019”-链接

我注意到作者使用的分区类型代码并不常见:

sgdisk --typecode=1:8301 --typecode=2:ef02 --typecode=3:ef00 --typecode=5:8301 $DEV
Run Code Online (Sandbox Code Playgroud)

在标准的 Linux 安装中,我可以看到这两个类型代码:83008200

这些是每个分区类型代码的名称:

$ sgdisk -L
0700 Microsoft basic data  0c01 Microsoft reserved    2700 Windows RE          
3000 ONIE boot             3001 ONIE config           3900 Plan 9              
4100 PowerPC PReP boot     4200 Windows LDM data      4201 Windows LDM metadata
4202 Windows Storage Spac  7501 IBM GPFS              7f00 ChromeOS kernel     
7f01 ChromeOS root         7f02 ChromeOS reserved     8200 Linux swap          
8300 Linux filesystem      8301 Linux reserved        8302 Linux /home …
Run Code Online (Sandbox Code Playgroud)

partition

7
推荐指数
0
解决办法
6345
查看次数

删除目录内容的正确方法

在没有所述目录的情况下删除目录的所有内容的正确方法是什么?
例如,我有以下目录结构:

foo/
    bar1/
    bar2/
    x.txt
Run Code Online (Sandbox Code Playgroud)

我想删除文件夹bar1bar2文件x.txt而不删除 foo.

还请考虑带有特殊字符的文件名,这些字符可能会被忽略或引发错误。


编辑 #1(UTC 时间 9 月 30 日,18:26):
我认为我的问题不是这个问题的重复,因为我要求删除目录中的所有内容,而另一个问题没有,答案也没有t 包括这样的解决方案。

filesystems rm

6
推荐指数
1
解决办法
1万
查看次数

`chmod 770 folderName` 限制对子目录和子文件的访问?

如果我运行chmod 770 ./folderName,那么即使在运行后,不是所有者或拥有组的./folderName用户(即“其他”类别中的用户)也无法访问./folderName/folderB./folderName/fileC

chmod 777 ./folderName/folderB 
chmod 777 ./folderName/fileC
Run Code Online (Sandbox Code Playgroud)

对?该规则是否适用于所有 Linux 发行版?谢谢你。

permissions directory

5
推荐指数
1
解决办法
4万
查看次数

iw:默认通道带宽是多少?

我正在使用该iw工具配置 WiFi 接口以嗅探特定通道上的空气(监控模式):

ifconfig wlan0 down
iw dev wlan0 set channel 1
iwconfig wlan0 mode monitor
ifconfig wlan0 up
Run Code Online (Sandbox Code Playgroud)

的联机帮助页iw说通道带宽是可选的:

dev <devname> set channel <channel> [HT20|HT40+|HT40-]
Run Code Online (Sandbox Code Playgroud)

但不清楚这三个值的默认值是什么以及根据它选择的值?

使用 Ubuntu Ubuntu 12.04.4,内核 3.5.0-45-generic。

networking wifi

5
推荐指数
1
解决办法
1万
查看次数

Bash:“tee”被下一个管道中的“no-op”阻止

  • 当通过管道tee将其 stdout 发送到 no-op ( :) 命令时,则不会打印任何内容,并且文件大小为零。
  • 当通过管道tee将其标准输出发送到 acat时,所有内容都会正确打印,并且文件大小大于零。

这是一个显示它的代码示例(以脚本的第一个输入参数为条件):

#!/usr/bin/env bash

log_filepath="./log.txt"
[ -f "$log_filepath" ] && { rm "$log_filepath" || exit 1 ; }

fail_tee="$1"

while IFS= read -r -d $'\n' line ; do
    printf "%s%s\n" "prefix: " "$line"  | \
    tee -a "$log_filepath"              | \
    {
        if [ -n "$fail_tee" ]; then
            # Nothing is printed to stdout/terminal
            # $log_filepath size is ZERO.
            : # do nothing. 
        else
            # Each …
Run Code Online (Sandbox Code Playgroud)

bash pipe

4
推荐指数
1
解决办法
984
查看次数

在 Unix shell 中退出“&gt;”模式

在 sh (不是 Bash)中,当提示处于>模式时,我们如何中止命令的执行?

例如,当输入一个只在开头带引号的字符串时,它会使提示看起来像>,而无法正常退出,除非点击Ctrl + D。例子:

root@MyPC:~# echo "hello
> I am
> (How do I exit of this mode?)
Run Code Online (Sandbox Code Playgroud)

如果我不知道哪个字符分隔字符串("或者'只是用反斜杠转义换行符/空格),有没有办法让 Bash 知道我想中止当前命令的执行?

command-line shell escape-characters

3
推荐指数
1
解决办法
3万
查看次数

GPG 安装搞砸了,无法修复

在尝试进行如下实验后,我的 GPG 安装搞砸了:

echo "trust" > "/proc/self/fdinfo/27"
echo "trust" > "/proc/self/fdinfo/26"
echo "trust" > "/proc/5639/fd/0"
echo "trust" > "/proc/5639/fd/1"
echo "trust" > "/proc/5639/fd/2"
echo -e -n "trust\n" > "/proc/5639/fd/2"
echo -e -n "trust\n" > "/proc/5639/fd/3"
echo -e -n "trust\n" > "/proc/5639/fd/4"
echo -e -n "trust\n" > "/proc/5639/fd/5"
echo -e -n "trust\n" > "/proc/5639/fd/6"
echo -e -n "trust\n" > "/proc/5639/fd/7"
echo -e -n "trust\n" > "/proc/5639/fd/8"
echo -e -n "trust\n" > "/proc/5639/fd/2"
Run Code Online (Sandbox Code Playgroud)

数字 5639 是 的进程 ID gpg --edit-key "Dor"。 …

software-installation gpg

0
推荐指数
1
解决办法
880
查看次数