Unix & Linux

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

1
ssh进入没有主目录的帐户
作为我上一个问题的跟进,我决定如下创建本地用户帐户。 adduser --system --no-create-home USERNAME 现在,我希望本地用户能够使用来访问计算机ssh。根据我的理解,其ssh工作原理如下。 假设我有2台机器(例如alpha和beta)。 从Alpha机:ssh user@beta alpha的公钥将出现~/.ssh/authorized_keys在beta机中。 alpha的私钥将出现/~/.ssh在alpha机器中。 现在,我已经计划实施没有回家的用户。因此,假设我adduser进入没有任何用户家园的Beta机器,我是否仍然可以从alpha转换为beta?

3
为GPG键添加“随机数熵”?
在下面的视频中:Linux HOWTO:使用PGP保护数据,第2部分,显示了如何使用创建密钥对gpg。大约在1:50,讲师说: 生成密钥时,最好将鼠标稍稍移动一下,以便为创建密钥对提供更多的随机数熵。 在我看来,这就像是一个神话,尤其是因为命令行工具通常不应受到光标的影响。另一方面,我不知道Linux的随机数生成器是如何工作的,无论它是由GUI共享还是独立于GUI。他声称有什么存货,还是这是一个货运崇拜计划的例子?
10 linux  gpg  random 

3
使用Shell脚本作为虚拟打印机
我有一个Shell脚本,该脚本以PDF文件为参数,并使用其他打印机特定的选项进行打印。如何将此脚本添加为可从GUI选择的虚拟打印机? Shell脚本是一个手动双工脚本,可获取PDF文件,打印偶数页,使用zenity提示用户提示,要求用户翻转页面然后打印奇数页。 我当前的工作流程是: 文件->打印->保存到文件-> tmp.pdf my_duplex_script tmp.pdf rm tmp.pdf 有什么办法使其成为: 文件->打印-> my_script_as_virtual_printer 注意:这是在Linux薄荷13肉桂上。我已经尝试过,gnome-manual-duplex但是对我不起作用。 可以从中打印到PDF文件的GUI对话框 my_duplex_script #!/bin/bash lp_args= while getopts o: opt do case "$opt" in o) lp_args="$lp_args -o $OPTARG" ;; \?) echo >&2 Invalid argument; exit 1 ;; esac done shift `expr $OPTIND - 1` file=$1 page_count=$(pdfinfo "$file" | grep …

1
挂载点的类型为“ none”是什么?为什么在/ run下有相同类型的挂载点?
在Ubuntu 14.04中,当执行命令挂载时,我得到以下摘录 tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755) none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880) none on /run/shm type tmpfs (rw,nosuid,nodev) none on /run/user type tmpfs (rw,noexec,nosuid,nodev,size=104857600,mode=0755) 我不明白为什么/run在已经安装的父目录(/run)中分别安装的子目录以及none文件系统的含义。我的/etc/fstab文件是空的。

8
mount.cifs不能使用smbclient使用的同一证书文件
我试图将NetApp CIFS共享安装到我们的其中一台服务器上,并且不断将“ Permission Denied”(权限被拒绝)打印到stderr并NT_STATUS_WRONG_PASSWORD打印到运行中dmesg。 root@xxxehpvld05 ~ $ mount.cifs -vv //zhp-nas.xxx.com/perspectives /mnt/secure/cifs -o credentials=/etc/cifs.creds mount error(13): Permission denied Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) root@xxxehpvld05 ~ $ dmesg | tail CIFS VFS: cifs_mount failed w/return code = -13 Status code returned 0xc000006a NT_STATUS_WRONG_PASSWORD CIFS VFS: Send error in …
10 linux  samba  cifs  smb 

3
在Debian上动态增长交换文件
我知道如何创建交换文件并将其用作交换文件。但是我必须事先配置文件的大小,如果不使用交换,则要在磁盘上使用空间。 如何创建初始大小为0并按需增长的交换?
10 linux  swap 

2
将脚本输出的副本发送到文件
假设我有一个Zsh脚本,我想让它将输出打印到STDOUT,而且还要将其输出复制(转储)到磁盘上的文件中。 此外,脚本以以下选项开头 set -o xtrace 这迫使它变得冗长,并打印它运行的命令。我也想在磁盘上的文件中捕获此输出。 我的理解是,如果我这样做 ./my_script.sh > log.txt 它只会发送STDOUT到log.txt,但是如果我也希望能够在终端中看到输出怎么办? 我已经阅读了Zsh中的tee和MULTIOS选项,但是不确定如何使用它们。 当我做: ./my_script | tee log.txt 我可以在终端上看到输出,但是该文件log.txt似乎无法捕获所有内容(实际上它几乎捕获不到任何内容)。

1
从服务器到客户端启动ssh连接
我们可以轻松地通过连接ssh到具有公共IP的远程计算机。 但是现在我有一台没有公共IP的远程计算机,我需要从具有公共IP的计算机连接到它。因此,远程计算机应启动此连接(添加客户端)。 我需要它,因为我的祖父在没有公共IP的计算机上,有时他的系统需要帮助。 在Windows上类似的情况下,我使用VNC连接(通过TightVNC),TightVNC服务器具有“添加客户端”选项:用户刚刚输入了客户端的IP(即我的公共IP),客户端已经处于“监听模式”,并且当“服务器”添加客户端时,连接被初始化。 因此,是否可以通过SSH连接执行相同的技巧?

3
在管道中调用我的函数时未设置环境变量
我具有以下递归函数来设置环境变量: function par_set { PAR=$1 VAL=$2 if [ "" != "$1" ] then export ${PAR}=${VAL} echo ${PAR}=${VAL} shift shift par_set $* fi } 如果我自己调用它,它将设置变量并回显到stdout: $ par_set FN WORKS FN=WORKS $ echo "FN = "$FN FN = WORKS 将stdout重定向到文件也可以: $ par_set REDIR WORKS > out cat out REDIR=WORKS $ echo "REDIR …

1
我如何在Linux上以非root身份维护单独的(较新的)glibc / gcc /…堆栈
我们的计算集群运行的CentOS版本非常旧,带有旧的内核(2.6.18),当然还有旧的库和二进制文件。因为更新整个事情需要在所有节点上进行大量工作,所以这不是一个选择。 我正在尝试编译和使用需要C++11(因此需要更高版本的gcc(和/或clang)版本)的程序。因为我根本不想弄乱系统,所以我想以某些本地目录树中的非root用户身份进行操作。 问题是,这gcc需要glibc比机器上存在的机器更新的机器。因此,我需要保持一个独立的,新版本glibc在我的本地lib/所描述的树,可能是在这里。 我迷路的地方是如何将本地库的路径“硬编码”为所有所需的二进制文件,例如gcc,g++等等。将LD_LIBRARY_PATH设置为我的本地lib/树会导致所有系统二进制文件不再起作用(ELF file OS ABI invalid),因为它们要使用尚未针对其编译的new libm.so/ libc.so。 所以,把它包起来:什么是保持一个较新的,局部的开发堆栈(含适当的方式glibc,gcc并行等)旧系统没有乱搞的根源? 附带提出一个问题:设置LD_LIBRARY_PATH作为SE的解决方案发布到整个SE上glibc。对我来说,当我尝试执行任何系统二进制文件(如ls)时,都会导致上述错误。怎么来的?我做错了什么还是预期的行为?

1
为什么readelf将“ System V”显示为我的操作系统而不是Linux?
我用gcc编译了一个小型C程序(两行代码),以尝试了解ELF文件格式。readelf -h在目标文件上做一个,我在标题中: OS/ABI: UNIX - System V 我正在使用Fedora,所以为什么不使用Linux? 编辑:我编译 int main(){ int x = 0; x++; } 与gcc -o main.o -c main.c。我的gcc版本是 gcc (GCC) 4.5.1 20100924 (Red Hat 4.5.1-4)
10 linux  elf 


1
在命令行中使用“时间”时,“系统时间”是什么
我曾经在Ubuntu 14.04的标准终端上time为Perl脚本计时。 我读过那real time是秒表时间;从用户启动程序直到程​​序终止,我一直是用户使用的时间。但我没有得到什么user或sys时间。time至少可以说,手册页上含糊不清。 尽管很明显real时间是分开的user,sys但不清楚它们代表什么。 在我的脚本中,我正在将基准测试[1]与C ++和Perl进行对比,以了解它们之间的区别,并且我想知道我实际上正在获取什么数据。输出示例为: real 0m24.198s user 0m23.120s sys 0m1.030s 有人可以解释一下默认的时间格式告诉用户吗?我是Linux的新手,所以请不要承担太多。 [1]有趣的是,尽管C ++在real时间方面比我的基准测试中的Perl快得多,但sys时间差别不大,因为C ++实际使用的sys时间比Perl多。这就是为什么我想知道它们的意思
10 time 

2
为什么我的sshd日志显示对无效端口的多次尝试?
我的ssh守护程序设置为侦听2221端口。我还禁用了ssh的root登录。 我不明白为什么auth.log我会尝试登录其他端口(此处以4627为例)。 May 17 15:36:04 srv01 sshd[21682]: PAM service(sshd) ignoring max retries; 6 > 3 May 17 15:36:08 srv01 sshd[21706]: User root from 218.10.19.134 not allowed because none of user's groups are listed in AllowGroups May 17 15:36:08 srv01 sshd[21706]: input_userauth_request: invalid user root [preauth] May 17 15:36:10 srv01 sshd[21706]: …

1
如何在FreeBSD上安装最新的gcc?
如何gcc在FreeBSD上安装最新版本并设置系统,以便该最新版本可用于编译其他程序? 在撰写本文时,最新版本gcc为4.9.0。我使用的是FreeBSD 10.0。 我实际上需要g++C ++编译器;但是我需要为其安装类似gcc49软件包的东西,对吗?
10 freebsd  gcc  g++ 

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.