Unix & Linux

Linux,FreeBSD和其他类似Un * x的操作系统用户的问答

2
限制SFTP的无密码备份
我需要使用Duplicity将服务器备份到计算机上: duplicity /etc sftp://backup@my.dynamic.ip.address//home/backup 在此之前,我需要通过以下操作允许无密码访问: $ ssh-keygen $ ssh-copy-id backup@my.dynamic.ip.address $ ssh backup@my.dynamic.ip.address 我的问题是,如何将命令限制为仅在生成的公钥中进行此SFTP传输? command="restrict to sftp",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa AAAA… 而且由于我使用的是动态IP地址,因此每次IP变化时如何克服“缺少已知主机”的问题?

3
Linux如何处理单独的/ boot分区?
我有兴趣了解Linux如何处理单独的引导分区。我对实际执行此操作不感兴趣,但是我想知道它在后台如何工作。 考虑一个硬盘驱动器sda,它具有两个分区sda1和sda2。假设这sda2是包含Linux OS 的root分区/。 我的理解是,引导加载程序GRUB2已安装到/boot。但是,当目录/boot位于单独的分区上时sda2,在/实际装入之前如何发生呢? /boot在这种情况下,BIOS,主引导记录和GRUB(或文件)之间的交互如何成功进行?是/boot不是/在此早期阶段,数据输入实际上并未安装到文件系统? 注意:此问题与安装根分区有关,但不讨论单独的启动分区。
11 boot  partition  grub 

1
*。*; auth,authpriv.none-/ var / log / syslog行在rsyslog配置文件中是什么意思?
我正在尝试了解该/etc/rsyslog.conf文件,但我缺少一些东西。例如,这是文件的一部分: auth,authpriv.* /var/log/auth.log *.*;auth,authpriv.none -/var/log/syslog cron.* /var/log/cron.log daemon.* -/var/log/daemon.log kern.* -/var/log/kern.log lpr.* -/var/log/lpr.log mail.* -/var/log/mail.log user.* -/var/log/user.log 根据此页面: 该功能是以下关键字之一:auth,authpriv,cron,daemon,kern,lpr,mail,mark,新闻,安全性(与auth相同),syslog,user,uucp和local0到local7。 优先级是以下关键字之一,按升序排列:debug,info,notice,warning,warn(与警告相同),err,error(与err相同),crit,alert,emerg,panic(与emerg相同)。关键字error,warn和panic已被弃用,不再应使用。优先级定义消息的严重性。 星号(“ *”)代表所有设施或所有优先级,具体取决于使用地点(时间段之前或之后)。关键字none代表给定设施的优先级。 您可以使用逗号(“,”)运算符在一个语句中指定具有相同优先级模式的多个功能。您可以根据需要指定任意数量的设施。请记住,只有这样的语句中的设施部分被采用,优先级部分将被跳过。 可以使用分号(“;”)分隔符为单个操作指定多个选择器。请记住,选择器字段中的每个选择器都可以覆盖前面的选择器。使用此行为,您可以从模式中排除某些优先级。 因此,这是可以理解的,但是右边的文件路径呢?它可以只是一个路径,或者路径|或-之前(或甚至是别的东西)。两者之间有什么区别?
11 debian  rsyslog 

5
将FreeBSD添加到GRUB2引导菜单
我的MBR驱动器上安装了带有Grub2的Gentoo x64。今天,我安装了FreeBSD x64 9.2。现在我在Gentoo中,尝试将FreeBSD添加到grub2菜单列表中。 grub2-install /dev/sda os-prober grub2-mkconfig -o /boot/grub2/grub.cfg 我在Gentoo上进行了上述操作,但没有找到FreeBSD。FreeBSD的嵌套分区已打开sda1并包含freebsd-ufs和freebsd-swap分区。 如何添加FreeBSD到grub2?
11 freebsd  grub2 


2
如何通过GRUB2传递VGA / VESA模式?
我的其中一台机器具有3 TB HD设置,可以三次启动Mint 14(Ubuntu 12.10变体),Slackware 14.1和Arch Linux。HD使用GPT / Guid系统进行格式化。从技术上讲,Grub2“属于” Linux Mint安装,但用于对所有3个系统进行三次引导。大约1年前设置它是一个非常痛苦的过程,需要2-3天的时间对其进行摔跤并进行调整,以使其能够识别Slackware和Arch的安装。它始终能够轻松识别Mint Linux的安装。 我需要能够将VGA / VESA模式传递给Slackware和Arch。我从命令行使用Slackware和Arch,因此控制台分辨率和字体大小是重要因素。


3
在ip6tables中设置规则还是禁用ipv6更好?
我具有以下网络配置: # ifconfig -a eth0 Link encap:Ethernet HWaddr 00:e0:1c:73:02:09 inet addr:10.1.4.41 Bcast:10.1.255.255 Mask:255.255.0.0 inet6 addr: fe80::2e0:4cff:fe75:309/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:858600 errors:0 dropped:0 overruns:0 frame:0 TX packets:1069549 errors:0 dropped:0 overruns:5 carrier:0 collisions:0 txqueuelen:1000 RX bytes:142871181 (136.2 MiB) TX bytes:717982640 (684.7 MiB) lo Link encap:Local Loopback inet …
11 iptables  ipv6 

1
清除bash中的旧提示行以节省滚动空间
我的终端主题曾经是这样, 但是我认为提示浪费了很多空间。后来我有了一个主意,每次运行命令时都可以清除提示。我正在使用bash,解决方案之一是使用该preexec_invoke_exec功能。 我使用以下命令清除最后一个提示字符: echo -ne "\033[1A\033[K\033[1A\033[K\033[31;1m$ \033[0m" 这样终端很干净 但是现在我的问题是,如果我想在一行中使用多个命令(例如,当我使用)时会出现问题for i in ...。 这是我的.bashrc中函数的完整版本, preexec () { echo -ne "\033[1A\033[K\033[1A\033[K\033[31;1m$ \033[0m"; echo -n "$1"; echo -ne " \033[37;2m["; echo -n "$2"; echo -ne "]\033[0m\n"; } preexec_invoke_exec () { [ -n "$COMP_LINE" ] && return # do nothing if completing [ "$BASH_COMMAND" …
11 bash  shell  terminal  prompt 

4
将功能传递给Bash中的另一个用户?
有什么方法可以将功能从一个用户传递给另一个用户? 例如,我有一个小的Bash脚本,可以作为Root执行: #!/bin/bash user_func(){ whoami exit } su vagrant -c 'user_func' 但是,user_func函数不是为Vagrant用户定义的,仅针对Root的,并且无法执行。 我的另一种选择是有多行 su vagrant -c 'cmd1' su vagrant -c 'cmd2' , etc 或者,执行多个命令,例如:su vagrant -c 'cmd1; cmd2; cmd3;',但是我不希望多余,尤其是当尝试以Vagrant用户身份执行5条以上的命令时。 是否可以从同一脚本中将功能传递给另一个用户(例如,不以其他用户的身份在磁盘上创建脚本,然后执行该生成的脚本)?还是我还有其他选择?
11 bash 

2
具有流程替代的输出订单
这是我通常在文件上运行grep而wc无需扫描两次的工作 <file.txt tee >(grep LITERAL) >(wc -l) >/dev/null 但是,这产生了 EXEC LITERAL 32 有时和 32 EXEC LITERAL 在其他时间。(第一个实例的输出grep先wc于,第二个实例的反之亦然。) 另一方面,带有重定向和文件描述符 { { <file.txt tee /dev/fd/3 | grep LITERAL >&4; } 3>&1 | wc -l ;} 4>&1 我总是似乎得到 EXEC LITERAL 32 我更喜欢输出顺序是可预测的,但是第二种方法可以保证吗?

3
Linux文件版本控制?
我们正在从VMS环境迁移到Linux环境,以淘汰一些旧的Alpha服务器。我无法克服的一个挑战是文件版本控制。VMS使用版本标志保留同一文件的多个副本。我在Source Forge上找到了多个选项,但是我还没有找到在主要生产环境中有任何经验的人。之所以需要这样做,是因为其他系统的提要没有考虑唯一的文件名。我们正在努力使我们的范围尽可能轻。 任何帮助是极大的赞赏。 似乎可用的2个主要选项是: 回溯 EtcKeeper-不确定是否只能将其应用于一个或多个目录。 有没有人在企业环境中使用过这些?我还应该考虑其他选择吗?

2
如何跟踪用户在Linux上创建的可执行文件?
使用Linux,我想跟踪以我的名字执行的可执行文件,包括整个命令行(实际上,每个exec *()以我自己的用户身份完成)。我应该控制一个程序,以便处理任务,执行我传入的程序,但我想确保它能够执行以及使用了哪些选项。我无法控制的程序是偷偷摸摸的,并且似乎会根据应为该任务执行的程序的名称来更改行为,因此我无法传递将记录信息并调用真实程序的shell脚本程序。 是否可以在Linux系统上以用户身份通知我所有exec *(),包括完整的命令行?就是ps没有循环运行。我宁愿直接在我工作的系统上执行此操作,而不需要root用户访问权限,但是如果需要,我可以生成一个我具有root用户访问权限的系统,然后安装程序并在那里进行调查。 使用Ubuntu 12.4 LTS。

2
CapsLock作为应用程序键映射的修改键
我是开发人员,当前正在将Ubuntu Linux与PyCharm IDE结合使用来开发网站。为了提高键入性能,我考虑将CapsLock更改为Hyper_L,然后使用xmodmap将其分配给mod3。之后,我想将“ i”键的mod3映射到“ Up”。到目前为止,我所做的是: xmodmap -e "keysym Caps_Lock = Hyper_L" 输出是这样的: shift Shift_L (0x32), Shift_R (0x3e) lock Hyper_L (0x42) control Control_L (0x25), Control_R (0x69) mod1 Alt_L (0x40), Alt_R (0x6c), Meta_L (0xcd) mod2 Num_Lock (0x4d) mod3 mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf) mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb) …
11 x11  keyboard  xkb  xmodmap 

6
从bibtex文件中提取选定条目的脚本
我有一个很大的bibtex文件,其中包含许多条目,每个条目都具有常规结构 @ARTICLE{AuthorYear, item = {...}, item = {...}, item = {...}, etc } (在某些情况下,ARTICLE可能是一个不同的词,例如BOOK) 我想做的是编写一个简单的脚本(最好仅是一个Shell脚本)以提取具有给定AuthorYear的条目并将其放入新的.bib文件中。 我可以想象我可以通过AuthorYear识别条目的第一句,而通过单引号可以识别条目的末尾,}也许可以sed用来提取条目,但是我真的不知道该怎么做。有人可以告诉我我将如何实现这一目标吗? 可能应该是这样的 sed -n "/AuthorYear/,/\}/p" file.bib 但这由于}条目的第一项的关闭而停止,从而给出以下输出: @ARTICLE{AuthorYear, item = {...}, 因此,我需要识别出这是否}是一行中唯一的字符,并且在这种情况下,只有“ sed”停止读取。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.