Unix & Linux

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

1
可以在sudo'ing之前检查sudo的功能吗?
我正在编写一个小型实用程序。我希望它可以尝试sudo在需要时运行某些程序。 那就是:如果文件许可不允许当前用户对特定文件进行操作(sudo规则会允许它),我希望我的实用程序以sudo文件所有者的身份运行某些文件。 我希望事先检查一下此功能,因为我希望系统日志不会充满sudo尝试失败带来的噪音。由于sudo自身故障时的报道:“这件事会报”。 因此,我希望以编程方式检查:可以通过?user <x>运行。command <y>sudo 问题在于:尽管/etc/sudoers包含该映射,但它是根目录拥有的,普通用户无法读取。 我正在考虑产生一个要运行的子进程sudo -l(该子进程输出当前用户可以sudo运行的命令)。然后,我将解析此输出。但是,这似乎有些脆弱。输出包含我想要的信息,但它似乎是供人类阅读的(而不是供程序使用)。我不知道是否可以保证将来输出的格式相同或跨平台使用。 以编程方式解析sudo -l输出是否安全?如果没有,是否有更好的选择来提前确定sudo命令是否成功? (X / Y上的背景:此实用程序供受限访问角色帐户使用。我希望其他一些用户有效地选择加入,以允许受限访问帐户通过sudo规则对其文件进行操作。但是,我赢了无法提前知道其他哪些用户已设置了相关的sudo规则)
11 sudo 

2
在vi / vim中,如何附加到文件而不是覆盖文件?
我知道只要做一下就可以写文件:w <file>。我想知道如何通过附加文件而不是覆盖文件来写入文件。 用例示例:我想从一个日志文件中取出一些样本到另一个文件中。为此,我今天可以做到: 打开日志文件 选择一些行 Shift+v 写入文件: :w /tmp/samples 选择更多行 Shift+v 附加到/tmp/samples与:w !cat - >> /foo/samples 不幸的是,第5步很长,很丑陋且容易出错(缺少a >会使您丢失数据)。我希望Vim在这里有更好的东西。

3
发送输出到/ dev / stderr vs.>&2
在脚本中,错误通常使用传送到文件描述符2 &2,即: echo "error" >&2 有时/dev/stderr代替使用: echo "error" > /dev/stderr 看一下/dev/stderr,我发现它只是到的符号链接/proc/self/fd/2,而这又是到/dev/pts/5(在我当前的终端上)的符号链接。 似乎有点复杂。这背后有逻辑吗? 是使用/dev/stderr和&2等价吗? 是那些比其他的首选吗?

2
是否有任何可以成功执行ln -d的文件系统?
从ln的手册页中: -d, -F, --directory allow the superuser to attempt to hard link directories (note: will probably fail due to system restrictions, even for the superuser) 是否有任何文件系统驱动程序实际上允许这样做,还是唯一的选择mount --bind <src> <dest>?还是这种行为被内核阻止,甚至还没有到达文件系统特定的驱动程序? 注意:我实际上并不打算在任何计算机上执行此操作,只是出于好奇。

1
bash在交互式Docker容器中无法正确调整大小
每次终端大小更改时,通常bash都会resize自动更改,以便正确地重新计算LINES和COLUMNS。但是由于某种原因,它不能在bash交互式运行的Docker容器中工作。 我有shopt checkwinsize -s我bashrc的泊坞窗容器(并验证它on使用shopt)。与主机bash会话相同。 我真的没主意了;shopt checkwinsize -s是我发现的唯一一种可以在调整窗口大小时bash自动评估resize的方法。
11 bash  docker 

1
在不影响原始安装的情况下卸载rbind安装
在服务器故障时被询问,但没有引起足够的重视,因此在此处重新发布,希望这里的某些人知道答案。 关于卸载rbind挂载,还有另一个问题在讨论,但是该解决方案产生了不良影响。请考虑以下目录布局: . ├── A_dir │ └── mount_b ├── B_dir │ └── mount_c └── C_dir 现在我将绑定C_dir到B_dir/mount_c和rbind B_dir到A_dir/mount_b: [hidden]$ sudo mount --bind C_dir B_dir/mount_c [hidden]$ sudo mount --rbind B_dir A_dir/mount_b [hidden]$ mount | grep _dir | wc -l 3 现在umount A_dir/mount_b会失败,这并不奇怪。根据网络上所有地方的答案,我们需要umount A_dir/mount_b/mount_c先然后umount A_dir/mount_b。但是,umount A_dir/mount_b/mount_c也会unmount B_dir/mount_c,这是不需要的: [hidden]$ sudo umount A_dir/mount_b/mount_c [hidden]$ mount …

1
使用xrandr的双显示器设置:扩展具有/不具有/不具有滚动功能
这不是问题,而是我遇到的在Ubuntu下解决问题的方法。 设置: 给定笔记本电脑屏幕(例如“ LVDS-1-0”)和第二个屏幕(例如“ DP-1”),其中第二个屏幕是您的主屏幕,显示器位于您的主屏幕的右侧(或左)作为扩展名(参见图片)。尽管显式xrandr指示不这样做,但实际上实际上始终扩展了第一个屏幕。输入此内容时,将鼠标光标移至主显示器的右侧时,可以避免令人讨厌的滚动。 xrandr --output LVDS-1-0 --off xrandr --output DP-1 --mode 1920x1080 --primary --pos 0x0 --output LVDS-1-0 --mode 1920x1080 --pos 1920x0 此后,它无需滚动屏幕即可从一台显示器转到另一台显示器。 更新资料 切换到独立显卡(nvidia是独立显卡,并且我的笔记本电脑集成了Intel)之后,需要更改输出顺序: output_DP=$(xrandr | grep " connected" | grep DP | awk '{print $1}') output_LVDS=$(xrandr | grep " connected" | grep LVDS | awk '{print $1}') …

4
每次显示新提示时,Bash提示执行命令
我在bash中有以下提示,其中显示了当前的git分支: PS1+="$(git_prompt)" #git_prompt is a function in my .bashrc 当我获取.bashrc时有效,但当我更改分支时无效,因此PS1 var仅在我获取.bashrc时得到评估,但每次显示新提示时都应对其进行评估。如何使用bash 4.3做到这一点?
11 bash  prompt 

5
在启动过程中摆脱“未找到缓存模式页面”消息
在早期启动期间,我收到以下错误消息: [sdb] No Caching mode page found [sdb] Assuming drive cache: write through 如果我理解正确,这实际上只是一条无害的信息,而不是实际的错误。sdb是我的USB磁盘,它不使用缓存。 问题是,我有意将内核日志级别设置为4,以摆脱这些无用的信息消息。 为什么为什么我仍然收到此信息消息? 之所以困扰我,是因为它干扰了我的密码提示(用于解密我的LUKS磁盘) 有没有办法消除此消息?
11 kernel  logs  startup  console 


2
让我们加密-Nginx-OCSP装订
我想在我的Nginx服务器中启用OCSP装订。我在用着 nginx版本:nginx / 1.6.2 Debian 让我们加密证书 我在这件事上真的没有经验,所以这可能是一个琐碎的问题。 这是我的Nginx安全配置 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_dhparam /etc/ssl/private/dhparams_4096.pem; 这是我的站点/服务器安全性配置: add_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload"; # All files have been generated by Let's encrypt ssl_certificate /etc/letsencrypt/live/myexample.org/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/myexample.org/privkey.pem; # Everything below this line was added to enable OCSP stapling # What …
11 nginx  ssl 

3
在Linux中修改现有的路由条目
在Linux中修改现有路由条目的度量的命令是什么?我可以使用“ ip route change”命令更改现有条目的网关,如下所示,但无法更改指标。还有其他命令吗? route –n 40.2.2.0 30.1.3.2 255.255.255.0 eth2 ip route change 40.2.2.0/24 via 30.1.2.2 route -n 40.2.2.0 30.1.2.2 255.255.255.0 eth1
11 linux  routing 

2
流浪者的日志文件在哪里?
我正在尝试调试与vagrant或VirtualBox相关的问题(请参阅taiga-vagrant无法提供工作的taiga环境#21)。 该命令将VAGRANT_LOG=debug vagrant up --debug打印出很多可能有用的信息。但是,此日志存储在哪里? 编辑: VAGRANT_LOG=debug vagrant up实际上与相同vagrant up --debug。我使用以下工具:Funtoo-Linux,Vagrant 1.4.3和VirtualBox 4.3.32。

2
计算bash数组中元素的数目,其中数组名称是动态的(即存储在变量中)
问题的简要说明: 是否有内置的bash方法来计算bash数组中元素的数量,而该数组的名称是动态的(即存储在变量中),而无需求助于对该数组的完全复制或使用eval? 更多信息: 使用bash参数替换,可以执行以下操作: 确定数组的长度: myArr=(A B C); echo ${#myArr[@]}。 通过名称间接引用变量:( NAME=myVar; echo ${!NAME}这也适用于数组元素): NAME=myArr[1]; echo ${!NAME} 但是,如果数组的名称存储在另一个变量中,那么如何确定数组中元素的数量呢?(可以将其视为上述两个参数替换的组合。)例如: myArr=(A B C D) NAME=myArr # Get the number of elements in the array indirectly referenced by NAME. count=${#$NAME[@]} # This syntax is invalid. What is the right way? 以下是所有失败的多次尝试: # Setup …

1
从.acsm下载.epub
我想将我在Google Play上购买的图书(下载.acsm文件)转移到我的Kobo阅读器设备上。我可以在互联网上找到的所有内容: 您是否正在运行Adobe Digital Editions 旨在删除DRM 我要避免两者:只要我可以在设备上阅读本书,我对DRM很好,而且我不想通过葡萄酒或其他方式来运行ADE(已经花了很多时间尝试)。 我猜acsm-> epub“转换”主要是下载,但是在此过程中是否存在转换/加密?.acsm中的<src>标记中有一个url ,但还有许多其他参数。有没有办法“手动”下载(没有ADE)?
11 ebooks  epub 

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.