过去,每当我尝试ssh
连接到服务器而不指定密码时ssh
,我都会尝试所有密钥ssh-agent
,如果密钥太多,我的 IP 地址可能会因连接失败次数过多而被禁止。
行为似乎已经改变,即使列表中有一个有效键,ssh-agent
我也必须将其包含在命令中,例如ssh -i ~/.ssh/alternate-key user@host
。
这是由于某些配置设置的改变或可执行文件本身行为的改变造成的ssh
。
过去,每当我尝试ssh
连接到服务器而不指定密码时ssh
,我都会尝试所有密钥ssh-agent
,如果密钥太多,我的 IP 地址可能会因连接失败次数过多而被禁止。
行为似乎已经改变,即使列表中有一个有效键,ssh-agent
我也必须将其包含在命令中,例如ssh -i ~/.ssh/alternate-key user@host
。
这是由于某些配置设置的改变或可执行文件本身行为的改变造成的ssh
。
由于各种原因,主要是因为不需要记住密码,我忘记了帐户密码,而我需要执行需要密码的命令,例如sudo
当我很长时间没有使用它时使用。
这通常是因为大多数时候使用 SSH 密钥登录并且需要需要密码的命令,例如更改 shell、运行 sudo 或其他提示输入现有密码的命令。
就安全性而言,能够登录到 shell 意味着用户有权执行该命令。
在这种情况下,我希望命令生成一个新密码并将其输出在屏幕上,使用一些pwgen
类似的实用程序。
我尝试将一些浏览器缓存文件复制到单独的磁盘,虽然可用空间足够,但磁盘空间不足,因为每个小文件都占用了最小的磁盘分配空间。
是否有一种工具可以改变块大小,而无需复制出文件、重新格式化磁盘,然后再复制回文件?
我想在虚拟机主机上保留某些端口号以供虚拟机自己使用。
是否存在一种机制,主机可以通过在列表中查找或根据预设规则检查这些端口,从而排除这些端口分配给与虚拟机无关的进程?
如果其他软件未与主机核实就请求某个端口,它会发现该端口已被阻止,就像正在使用中一样。
虚拟机本身也是在主机上运行的软件,所以我猜它们本身可能会被阻止,因此它应该更像是一个为虚拟机管理器用来分配这些端口的某些特定实用程序保留某些端口的系统。
它也可能与 Docker 容器相关。
更新:虚拟机与主机共享 IP 地址,并且需要将一些传入端口转发到虚拟机或容器上运行的服务。我不知道是否需要保留传出端口,除非它们会干扰侦听服务。我猜 iptables 规则可以区分它们,或者不能。
ArchWiki - rsnapshot 页面uid
提到使用和gid
设置为 创建多个用户0
作为创建远程登录以执行备份的用户的一种方法。
为了减轻备份服务器漏洞造成的潜在损害,您可以采取的一件事是在客户端计算机上创建备用用户,并将uid和gid设置为 0,但使用限制性更强的 shell,例如 scponly。
我认为目的是为这些帐户提供用户的读写执行权限,root
但前提是他们的登录 shell 给予他们减少的权限。
这是否意味着即使帐户具有相同的gid
并且uid
它们仍然通过帐户名进行区分并且具有相同的gid
并uid
赋予它们相同的访问权限?
我已配置git diff
为一个调用替代 diff 来查看文件差异的命令,/usr/bin/vim -dR "$2" "$3"
即当我想使用git diff > patchfile
.
有没有办法直接调用 git 自己的内置 diff,而不禁用我用于视觉比较的替代 diff?
我正在运行一个rsync -avz
命令,该命令通过使用排除一个 32GB 的大文件--exclude=/file/path
,无论我做什么都会rsync
传输该文件。
我理解逻辑上该选项意味着镜像所有内容,但是对该选项等效的选项--archive
的检查似乎并没有明确覆盖该选项-rlptgoD
--archive
--exclude
--archive, -a archive mode is -rlptgoD (no -A,-X,-U,-N,-H)
--recursive, -r recurse into directories
--links, -l copy symlinks as symlinks
--times, -t preserve modification times
--perms, -p preserve permissions
--group, -g preserve group
--owner, -o preserve owner (super-user only)
-D same as --devices --specials
--devices preserve device files (super-user only)
--specials preserve special files
当我在非交互式 shell 中从 Emacs 安装一些软件包时,例如从文件中安装org-babel
某些软件包时,会产生以下消息:
debconf: unable to initialize frontend: Dialog
debconf: (Dialog frontend will not work on a dumb terminal, an emacs shell buffer, or without a controlling terminal.)
debconf: falling back to frontend: Readline
我知道,以 mysql 为例,它会提示输入 root 密码,或者询问用户的首选项或设置的其他一些内容。
我认为在这种情况下,安装程序可能会使用一些默认设置并继续。
所以我主要关心的是:
后果会这么严重吗?
是否有某种与每个包相关的响应文件可以传递给安装程序,或者某些预设位置的一些默认文件可用于此目的?
为什么 .zsh_history 中的持续时间列通常为 0,尽管“history -D”命令显示它?
在测试了这个答案后,What is the Purpose of the column with the '0' after the numeric timestamp in .zsh_history? 我注意到,虽然该history -D
命令显示了该命令的运行时间,但持续时间列~/.zsh_history
仍然显示0
。
这是什么原因呢?
是因为~/.zsh_history
文件在初始命令时更新,但之后没有更新,还是history -D
从单独的位置(可能是从内存或另一个文件)获取时间?
0
.zsh_history 中数字时间戳后面的列的用途是什么?
: 1568128379:0;cp -a ~/.zshrc.pre-oh-my-zsh ~/.zshrc
: 1568128381:0;exit
它是时间戳的一部分还是完全有不同的用途?
firmware-misc-nonfree
我正在尝试在特定的 Linux 安装上安装 Debian 包。
╰─○ apt install firmware-misc-nonfree
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Package firmware-misc-nonfree is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'firmware-misc-nonfree' has no installation candidate
似乎有什么东西阻碍了它,但在其他两个系统上它很好。
这是输出apt-cache policy
╰─○ apt-cache policy firmware-misc-nonfree
firmware-misc-nonfree:
Installed: (none)
Candidate: (none)
Version table:
20210315-3 -1
-1 http://uk.mirrors.clouvider.net/debian bullseye/non-free amd64 Packages
有什么方法可以自动找到冲突的原因吗?
这些是的内容/etc/apt/sources.list
# updated 2023-03-11-1956 for Debian 11 Bullseye
deb http://uk.mirrors.clouvider.net/debian/ bullseye main contrib non-free
deb-src http://uk.mirrors.clouvider.net/debian/ bullseye main contrib non-free
deb http://security.debian.org/debian-security bullseye-security main contrib non-free
deb-src http://security.debian.org/debian-security bullseye-security main contrib non-free
# bullseye-updates, previously known as 'volatile'
deb http://uk.mirrors.clouvider.net/debian/ bullseye-updates main contrib non-free
deb-src http://uk.mirrors.clouvider.net/debian/ bullseye-updates main contrib non-free
# deb http://uk.mirrors.clouvider.net/debian/ bullseye-backports main contrib non-free
# deb-src http://uk.mirrors.clouvider.net/debian/ bullseye-backports main contrib non-free
我唯一能想到的是,这个安装是一个 VirtualBox 系统,虚拟化可能与它有关。
它需要一些不在正确目录中的二进制固件,但我可以将它从其他系统复制到它可以在启动时加载的正确位置。
当一个软件包的安装触发另一个软件包的保留、删除或阻止时,Debian 打包系统是否维护发出命令的日志?
我在https://askubuntu.com/questions/640986/how-to-get-a-list-of-installed-packages-held-back-from-upgrade上尝试了一些建议,但命令没有显示任何事物。
我注意到,当我编译存储在/usr/bin
eg中的打包程序的自定义构建时/usr/bin/emacs
,会which emacs
显示已经存在的可执行文件,尽管在我的./usr/bin/emacs
/usr/local/bin/emacs
/usr/local/bin
PATH
我需要登录和注销,或者在显示新的二进制文件screen
之前打开一个新框架。which emacs
这是因为一些缓存,还是有一些安全功能导致在再次登录之前引用现有路径?
编辑:
对于那些认为这个问题是重复的或由其他问题回答的人,例如 -如何清除 Bash 的可执行文件路径缓存?, hash 命令的目的是什么?,这个问题专门询问 a shell
,而不是 aboutbash
或hash
内置的命令bash
(我不知道),尽管它是大多数系统上的默认 shell。
还有其他的shell,例如,zsh
我使用的那个,fish
, ksh
, eshell
,ksh
还有许多其他新的shell,例如oilshell
进入市场,可以这么说。
所以我认为这个问题应该独立存在,一般是关于贝壳,而不是一个特定的外壳。
如果有理由这样做,经验表明这是明智的选择,或者它与经济或性能有关,而不是其他答案可能会详细说明。
我希望此编辑成为评论,但它们的长度有限。
git 和 Gitolite 等一些实用程序可以通过修改authorized_key
文件来限制 SSH 密钥可以运行的命令。
例如,Gitolite 更改会修改authorized_keys
文件中的条目,因此:
command="/usr/bin/gitolite/src/gitolite-shell username",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty
由于此命令在接收端运行,它必须处理来自 SSH 连接的数据流。
像这样的命令如何处理传入的数据,例如读取传入的数据流并将其发送到使用它的任何目录或进程?
由于 sshd 服务可以侦听不同的端口,因此是否可以配置一个密钥,该密钥仅在一个端口上建立连接时才有效,而在另一个端口上无效?
我的意思是密钥在列表中出现多次,authorized_keys
如果在密钥中指定的端口上进行连接,则允许连接。
这个想法是使用相同的密钥,但具有不同的command=
和其他选项,以允许将相同的密钥用于不同的服务。
我的笔记本电脑的屏幕分辨率为 1366x768,但我想创建一个分辨率更高的 X 显示器并在其周围滚动。
在驱动程序和显卡允许的 Windows 中是可能的。
在 Linux 中也可以这样做吗?
在我详细介绍我的问题之前,有一个 debian 邮件列表似乎可以解释原因 - https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=854414
安装 Debian 9 后,登录远程 shell 会导致错误消息 "screen.xterm-256color: unknown terminal type"
。在某些情况下,打字export TERM=xterm-256color
可以解决问题。
当我登录到远程控制台并运行一些命令时,例如apt-get xxx
出现错误消息WARNING: terminal is not fully functional
并且 apt 还添加了- (press RETURN)WARNING: apt does not have a stable CLI interface yet. Use with caution in scripts.
我注意到的是,当我按下Ctrl-Alt F1
直接执行这些命令时,问题不存在,所以我认为 Debian 9 的默认配置中存在错误或缺失Konsole
可能是问题所在,我的其他研究似乎支持这一点。
这个问题zsh
比我想的更多,bash
但我认为我.bashrc
几年前对配置所做的一些更改可能正在修复它。
我想对其中进行一些更改,.screenrc
但在其中阅读了一些内容,因为 Konsole 是必须进行更改的终端。
我的 Konsole 设置中的缺陷可能是什么,它们是否来自 X11 配置中设置的默认值?
我想使用 Drupal 的系统日志模块之一,但将日志放在用户的主目录中,这样当用户想要查看或分析文件时就不会出现权限问题。
有没有办法以这种方式设置系统日志配置?
我已经安装了 Stretch,我发现 NetworkManager 经常妨碍我,我宁愿根据 /etc/network/interfaces 的内容熟悉较低级别的网络接口管理。
当禁用 NetworkManager 时,哪些命令行程序会接管任务网络配置?
有许多程序,如ip
、ifconfig
、iwconfig
,wicd
很难分辨其中哪些用于/etc/network/interfaces
配置网络设置。
我需要创建一种“备份操作员”帐户,该帐户可以读取系统上的所有文件以复制到备份系统,而无需修改任何文件,包括属于root
.
该root
帐户似乎是唯一能够做到这一点的帐户,但是该root
帐户并没有被阻止运行它想要的任何东西。我能想到的另一个选择是将帐户放在具有读取权限的组中,并使该帐户成为每个用户组的成员。Linux 中的基本rwx
权限似乎并不是为此而创建的。
Linux 是否有更复杂的功能来实现这一目的,例如 ACL 可能提供的功能?
该权限适用于从远程备份服务器登录并将所有文件备份到远程服务器的用户。如果备份服务器受到威胁,该帐户应该无法登录到正在备份的服务器并造成一些损害。备份服务器上的帐户也不应该能够登录到备份服务器,并且如果受到损害会造成一些损害。