Unix & Linux

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

1
更改OpenVPN设备名称
我在同一台服务器上运行多个VPN服务器软件,其中两个(tinc和openvpn)正在使用相同的/dev/net/tun设备并生成tunX iface。 后来开始使用的设备将从0开始使用tun设备,因此它们会重用彼此的设备,并导致很多问题和服务中断。 我的问题是,是否可以让OpenVPN与其他名称(例如tun-X或otun-Y等)产生自己的tun?
13 openvpn 

3
如何使用capsh:我正在尝试以最小的功能运行无特权的ping
我正在Debian Gnu / Linux上试验功能。 我已将/ bin / ping复制到当前工作目录。不出所料,它最初是setuid root。 然后,通过执行sudo /sbin/setcap cap_net_raw=ep ./ping,使ping具有最少的功能(不是root),并且ping可以正常工作。 然后sudo /sbin/setcap -r ./ping撤销该功能。现在,它无法按预期工作。 我现在尝试使用ping进行工作capsh。 capsh 没有特权,因此我需要以超级用户身份运行它,但是然后删除超级用户,从而获得所有其他特权。 我想我也需要secure-keep-caps,这没有记录在capsh,而是在功能手册中。我从那里得到位数/usr/include/linux/securebits.h。它们似乎是正确的,因为的输出--print显示这些位是正确的。 我已经摆弄了几个小时,到目前为止,我已经有了这个。 sudo /sbin/capsh --keep=1 --secbits=0x10 --caps="cap_net_raw+epi" == --secbits=0x10 --user=${USER} --print -- -c "./ping localhost" 但是,ping出现错误时ping: icmp open socket: Operation not permitted,这是当它不具有此功能时发生的。同样的--print节目Current: =p cap_net_raw+i,这还远远不够e。 sudo /sbin/capsh --caps="cap_net_raw+epi" --print -- -c …

2
为什么在执行bash脚本时(仅在采购它时)不能加载模块?
我正在使用模块来控制系统上的软件包,并且已python/2.7.2作为模块安装。我有一个简单的python可执行文件python_exe.py,我将从一个简单的“ driving”脚本中调用它runit.sh。runit.sh脚本看起来像: #!/bin/bash module load python/2.7.2 arg1=myarg1 arg2=15 arg3=$5 /path/to/python_exe.py -a $arg1 -b $arg2 -c $arg3 但是,当我刚运行时./runit.sh,它向我出售“模块:找不到命令”。source runit.sh但是,当我使用时,它将正确加载模块。为什么是这样?
13 bash  shell  python 

2
在Linux Mint 17.1中挂载MTP Android设备
我将ASUS Android设备安装在Linux Mint 17.1(MTP)中。我的电脑没有看到我的设备,因此我尝试按照此页面上的答案进行操作:http : //forum.xda-developers.com/showthread.php?t=1077377 但是,当我单击“连接”时,出现以下错误: Listing raw device(s) mtpfs: symbol lookup error: mtpfs: undefined symbol: LIBMTP_Detect_Raw_Devices
13 mount  android  mtp 

6
在查找搜索中排除目录
搜索带有locate查找文件系统中的路径。 通常,您会先验地只对文件或目录感兴趣。 “查找”搜索通常会返回许多结果。在结果中仅包含一种类型将很有用,因为它有助于缩短输出。 但是,还有一个更有趣的说法是忽略文件或目录:因为结果路径的列表可能不明确-不仅在理论上如此。 下面的示例是一个真实的案例,并且并不罕见: $ locate --regex --basename "xfce4-keyboard-overlay$" /usr/local/bin/xfce4-keyboard-overlay /usr/local/share/xfce4-keyboard-overlay 好的,我们发现了一些东西!但是...文件还是目录? $ file /usr/local/bin/xfce4-keyboard-overlay /usr/local/bin/xfce4-keyboard-overlay: bash script 这是一个文件... $ file /usr/local/share/xfce4-keyboard-overlay /usr/local/share/xfce4-keyboard-overlay: directory 而第二个则不是。 这种歧义使得一长串的路径难以阅读,因此最好将目录过滤掉,例如使用的comman行选项locate。 是否存在这样的东西?即使目录过滤器与locate分开? 至少,可以使用脚本来迭代所有要检查的文件名-这可能很慢。
13 files  find  directory  locate 

1
如何找到交换uuid
我正在进行突袭。sda在安装过程中使用,我刚才复制的分区表sda来sdb像这样: $ sudo sfdisk -dL /dev/sda > partition_table_sda $ sudo sfdisk /dev/sdb < partition_table_sda 但是,我注意到它sda具有用于swapspace的uuid,但sdb没有: $ sudo blkid /dev/sda5: UUID="vvvvvvvv-wwww-xxxx-yyyy-zzzzzzzzzzzz" TYPE="swap" /dev/sda1: UUID="vvvvvvvv-wwww-xxxx-yyyy-zzzzzzzzzzzz" TYPE="ext4" /dev/sdb1: UUID="vvvvvvvv-wwww-xxxx-yyyy-zzzzzzzzzzzz" TYPE="ext4" 尽管该分区看起来正确,但是只是缺少了uuid: $ sudo fdisk -l Disk /dev/sda: 500.1 GB, 500107862016 bytes 255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors Units = sectors …
13 partition  swap  uuid 

2
为什么在“ mv”期间源分区上的可用空间没有变化?
我正在mv将目录(包含许多文件)从一个分区移动到另一个分区。在mv逐个移动目录中的单个文件时,我注意到源分区的可用空间大小没有变化,而目标分区的可用空间大小却在减小。 为什么这样工作,而不是源分区和目标分区的可用空间总和保持不变?
13 mv 

1
是否有带有Tab键补全功能的启动器?
我正在寻找一个“适当的”启动器,该启动器还允许运行原始命令,包括制表符补全。因此,它至少必须做两件事。 这是一个“适当的”启动器,因此请尊重~/.local/share/applications/*.desktop,不仅仅是在中的命令$PATH。 使用制表符补全运行原始命令,因此我可以输入gimp /tmp/foo Tab并将其自动补全为gimp /tmp/foobar.png 我尝试过的 KDE krunner相当不错,但是不提供路径的制表符补全。gmrun并且grun不尊重* .desktop文件,后者也不提供路径的制表符补全。kupfer据我所知,它根本不运行原始命令。 (FWIW我正在运行KDE,但希望这并不重要。)

2
使用SSH的一致且安全的无密码帐户方法
我必须承认,在某些情况下,我喜欢没有密码的服务器。典型的服务器容易受到任何具有物理访问权限的人的攻击。因此,在某些情况下,将其物理锁定是可行的,此后再信任任何物理访问。 基本概念 从理论上讲,当我物理上到达这样的服务器时,只需键入root登录名就可以执行无需密码的管理任务,并且不需要输入密码。这可能适用于用户帐户,但实际上并不能真正访问它们。因此,(偶尔)本地访问不需要系统密码。 远程访问服务器(用于管理或用户帐户)时,我希望始终使用SSH私钥。为刚创建的帐户设置SSH密钥非常容易,因此(常规)远程访问不需要系统密码。 # user=... # # useradd -m "$user" # sudo -i -u "$user" $ keyurl=... $ $ mkdir -p .ssh $ curl -o .ssh/authorized_keys "$keyurl" 结论是,从理论上讲,我们不会为此类用例使用任何系统密码。所以问题是,我们如何配置系统和用户帐户,以使其以一致且安全的方式发生。 本地访问详细信息 我们如何确保无需密码即可在本地访问root帐户?我认为我们不能使用passwd -d它,因为这会使root用户访问权限太宽容,并且没有特权的用户可以免费切换到root 用户,这是错误的。我们无法使用,passwd -l因为它阻止我们登录。 请注意,本地访问专门涉及使用本地键盘的访问。因此,有效的解决方案不得允许任何用户切换(无论使用su还是sudo)。 远程访问详细信息 直到最近,上述解决方案仍然有效,但现在SSH开始检查锁定的用户帐户。passwd -d由于相同的原因,我们可能无法使用。我们不能使用passwd -u它,因为它只是抱怨它将导致什么passwd -d。 有一种解决方法,该部分使用虚拟密码。 user=... echo -ne "$user:`pwgen 16`\n" | chpasswd 也可以完全关闭SSH中的锁定帐户检查功能,但是保留锁定帐户的支持并能够对其进行解锁会更好。 最后的笔记 …

3
什么是firewalld中的dhcpv6-client服务,我可以安全地删除它吗?
在CentOS 7服务器中,输入firewall-cmd --list-all,它会为我提供以下信息: public (default, active) interfaces: enp3s0 sources: services: dhcpv6-client https ssh ports: masquerade: no forward-ports: icmp-blocks: rich rules: 什么是dhcpv6-client服务?它有什么作用?删除它意味着什么? 我读了维基百科页面了dhcpv6,但它并没有告诉我具体是什么这个服务CentOS 7 Firewalld呢。 可通过https和email通过访问此服务器mydomain.com,但它是专用服务器,只能通过https已知ip地址列表进行访问。另外,该服务器可以接收来自已知电子邮件地址列表的电子邮件。是否dhcpv6-client需要服务来调和已知ip https请求中的域地址,以及用已知电子邮件地址交换电子邮件?


5
在bash和鱼之间共享环境变量
bash和fish脚本不兼容,但是我想拥有一个文件,该文件定义了一些由bash和fish初始化的环境变量。 我建议的解决方案是定义一个~/.env文件,其中包含以下环境变量列表: PATH="$HOME/bin:$PATH" FOO="bar" 然后,我可以仅以bash形式提供它,并制作一个脚本,将其转换为fish格式并以fish形式提供。 我当时想可能有比这更好的解决方案,所以我想寻求一种更好的方法来在bash鱼之间共享环境变量。 注意:我正在使用OSX。 这是一个示例.env文件,我希望fish和bash都使用荒谬的fish语法处理(假设〜/ bin和〜/ bin2是空目录): setenv _PATH "$PATH" setenv PATH "$HOME/bin" setenv PATH "$PATH:$HOME/bin2" setenv PATH "$PATH:$_PATH"

2
在逻辑LVM卷中调整btrfs分区的大小
遵循Derobert的技巧,在调整LVM卷大小时可以调整基础文件系统的大小: lvm> lvextend -r -l +100%FREE /dev/VolGroup00/lvolhome fsck from util-linux 2.25.2 /sbin/fsck.btrfs: BTRFS file system. Size of logical volume VolGroup00/lvolhome changed from 3.04 GiB (777 extents) to 14.94 GiB (3824 extents). Logical volume lvolhome successfully resized fsadm: Filesystem "btrfs" on device "/dev/mapper/VolGroup00-lvolhome" is not supported by this tool fsadm failed: …
13 lvm  btrfs 

1
在for循环中恢复暂停的进程
我正在bash中运行: for i in ull-*.pbm; do convert $i tmp2/$i.pdf ; done 我Ctrl-Z在运行中,然后是fg其作业ID。但是其余的迭代不会继续完成。我想知道为什么?
13 bash 


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.