小编Jam*_*ton的帖子

如何在以 root 权限启动的脚本中以非 root 用户身份运行命令?

问题
在 bash 脚本中,我正在使用命令...

sudo -u node bash
Run Code Online (Sandbox Code Playgroud)

.. 从 root 切换到非 sudo 用户,这是失败的。

上下文
我写一个provision.sh为流浪脚本,建立运行Ubuntu 16.04.3的所有包的服务器需要与流星1.6提供的应用程序。

一个必需的步骤是以nvm非 root 用户身份安装。nvm安装完成后,您需要注销并重新登录才能激活nvm。因此,我创建了一个名为 的非 sudo 用户meteor,并希望在下载和安装nvm.

随后,我想切换回 beroot并立即登录为meteor,以便开始使用nvm安装 Node.js。

你会在下面找到一个被大量评论的脚本。每次我调用 Vagrant 时都会运行这个脚本vagrant reload --provision

我应该使用什么命令而不是sudo -u node bash


echo "# whoami" && whoami && echo "^^^^ root expected"
echo "As root, create non-sudo user meteor:"
pass=$(perl -e 'print crypt($ARGV[0], "password")' $password) …
Run Code Online (Sandbox Code Playgroud)

bash sudo scripts

15
推荐指数
1
解决办法
5万
查看次数

bash 脚本:使用或不使用 sudo 调用时的不同结果

在 Ubuntu 16.04.3 中,我有一个非常简单的 bash 脚本:

测试文件

[[ 0 == 0 ]] && result="true" || result="false"
echo $result
echo $USER $SHELL $0
Run Code Online (Sandbox Code Playgroud)

当我将它称为非 root 用户me或 as 时root,它按预期工作。如果我使用sudo ./test.sh,它会抱怨语法错误:

[[ 0 == 0 ]] && result="true" || result="false"
echo $result
echo $USER $SHELL $0
Run Code Online (Sandbox Code Playgroud)

什么可能导致这种情况?如何修复它以便me可以正常使用此脚本并与 一起使用sudo

bash sudo scripts

10
推荐指数
2
解决办法
1828
查看次数

双启动 Dell XPS 13 固件更新后无法启动到 Ubuntu

一年前,我买了一台出厂安装了 Windows 10 的戴尔 XPS。当它到来时,我在内部硬盘上添加了新的分区——boot、home 和 swap——并安装了 Ubuntu 16.04 LTS 来创建一个双引导系统。当时我是按照戴尔官方的教程安装Ubuntu的,做了两处改动:

  1. 戴尔说明说要选择SHIMx64.EFI,但这不可用。我的选择是在\EFI\BOOT\BOOTx64.EFI和之间\EFI\BOOT\grubx64.efi。我相信我选择了grub64.efi
  2. 我将 SATA Operation 从 RAID On 设置为 AHCI。

在此之后,我能够安装 Ubuntu 16.04.1,直到今天一切正常。

今天,我收到了固件更新,我接受了。据推测,此更新是为仅限 Windows 的机器设计的。现在,当笔记本电脑启动时,它不再识别内部 SSD 上的 Ubuntu 操作系统。运行系统扫描后(启动时F12),我清除了分区错误,之后BIOS中的Boot Sequence菜单出现如下:

[?] UEFI: THNSN5256GPU7 NVMe TOSHIBA 256 GB, Par(tition 1)
[?] UEFI: SanDisk Partition 1 
[?] Windows Boot Manager  
Run Code Online (Sandbox Code Playgroud)

SanDisk 是我正在使用的 LiveUSB 密钥。

为此,我添加了一个新的 Boot Option [?] Ubuntu,它\EFI\BOOT\grubx64.efi像以前一样使用 。我把它作为列表中的第一个。

我已禁用安全启动,但我认为这不是以前的问题。

在 SATA 操作面板中,如果我选择 AHCI,笔记本电脑将启动到 SanDisk LiveUSB。如果我将其设置为 …

boot dual-boot firmware dell

8
推荐指数
1
解决办法
4594
查看次数

使用 cat 时不计算表达式

我有一个 bash 脚本,旨在输出另一个 bash 脚本。我在用cat。我想评估输出脚本中的一些表达式,而不是其他表达式。

PROJECT=myproject

cat << EOF > create_dir.sh
#!/usr/bin/env bash

DATE=`date '+%y%m%d-%H%M'`
mkdir $PROJECT/\$DATE
EOF
Run Code Online (Sandbox Code Playgroud)

生成的create_dir.sh文件如下所示:

#!/usr/bin/env bash

DATE=171123-1834

mkdir myproject/$DATE
Run Code Online (Sandbox Code Playgroud)

我想要的结果是这样的:

#!/usr/bin/env bash

DATE=`date '+%y%m%d-%H%M'`

mkdir myproject/$DATE
Run Code Online (Sandbox Code Playgroud)

如何修改此脚本,以便DATE=不评估后面的表达式,同时确保$PROJECT评估它?

bash

6
推荐指数
2
解决办法
2688
查看次数

在 Dell XPS 13 上的 Ubuntu 16.04 中恢复点击以单击

这个问题是从这个关于自然滚动的问题开始的

在我进行更改之前,我只需点击我的戴尔 XPS 13 的触控板即可产生点击。现在我必须明确点击,这需要额外的努力。如果可能的话,我想恢复点击点击。

我有一个戴尔 XPS 13,默认情况下,它有一个非常敏感的触控板。在您键入时,如果您不小心刷了触控板,触控板会将其视为单击,并且文本插入点会跳转到鼠标所在的位置。我为此问题找到并安装了此修复程序

sudo apt-get install xserver-xorg-input-libinput
Run Code Online (Sandbox Code Playgroud)

这反转了滚动方向,所以我还编辑了MatchIsTouchpadin的条目/usr/share/X11/xorg.conf.d/90-libinput.conf

Section "InputClass"
        Identifier "libinput touchpad catchall"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
        Option "NaturalScrolling" "true"
EndSection
Run Code Online (Sandbox Code Playgroud)

有了这个新设置,点击就不会发生。这是不可避免的吗?这是防止意外刷触控板产生点击的唯一方法吗?或者是否可以调节灵敏度,以便将有意的轻敲与短暂的触摸区别对待?

touchpad dell tap-to-click

5
推荐指数
1
解决办法
3634
查看次数

BIOS 中未显示 SHIMx64.EFI

我以前从实时 USB 驱动器中使用过 Ubuntu,但现在我想永久安装它。我正在寻找分步说明,以便我可以准确了解我哪里出错了。

我刚买了一台运行 Windows 10 的戴尔 XPS13,我想安装 Ubuntu 以获得双引导笔记本电脑。我使用 Windows 磁盘管理器来缩小 Windows 分区,并留下未分配的空间。我按照戴尔知识库中说明进行操作,直到看到图 6。此时,我看到了选项...

BOOTx64.EFI
grubx64.efi

...在文件面板中,但没有 SHIMx64.EFI 的迹象。我已经能够使用 grubx64.efi 启动到 Ubuntu,但是当我进入安装类型屏幕时,我没有看到此屏幕截图中显示的选项。

相反,安装程序直接跳转到类似于分区表的屏幕,但该表完全空白,仅/dev/sda在设备下拉列表中可见,并且没有任何按钮反应......除了立即安装,它抱怨(可以理解)没有定义根。就在“安装类型”屏幕出现之前,WiFi 连接断开,WiFi 菜单中出现“无可用网络设备”。

我尝试使用 14.04 和 16.04,以及 Rufus 和 Universal-USB-Installer 来创建我的可启动 USB 驱动器。

是否有我遗漏的步骤会在 EFI 引导选择步骤中将 SHIMx64.EFI 显示为选项?如果 grubx64.efi 可以启动到 Ubuntu,那么我是否遗漏了允许我选择未分配分区的步骤?

预先感谢您可以分享的所有见解。


编辑:当与 ubuntu-16.04.1-desktop-amd64.iso 一起使用时,来自 Rufus 2.11.995 的日志仅显示包含字符串“shim”的两行:

Extracting: F:\pool\main\s\shim\shim_0.8-0ubuntu2_amd64.deb (432.6 KB)
Extracting: F:\pool\main\s\shim-signed\shim-signed_1.17~16.04.1+0.8-0ubuntu2_amd64.deb (307.6 KB)
Run Code Online (Sandbox Code Playgroud)

ubuntu-14.04.5-desktop-amd64.iso 也是如此:

Extracting: F:\pool\main\s\shim\shim_0.8-0ubuntu2_amd64.deb (432.6 KB)
Extracting: F:\pool\main\s\shim-signed\shim-signed_1.18~14.04.1+0.8-0ubuntu2_amd64.deb (307.2 KB)
Run Code Online (Sandbox Code Playgroud)

partitioning dual-boot

4
推荐指数
1
解决办法
4566
查看次数

在 Dell XPS 13 上的 Ubuntu 16.04 中恢复自然滚动

我有一个戴尔 XPS 13,默认情况下,它有一个非常敏感的触控板。在您键入时,如果您不小心刷了触控板,触控板会将其视为单击,并且文本插入点会跳转到鼠标所在的位置。我为此问题找到并安装了此修复程序

sudo apt-get install xserver-xorg-input-libinput
Run Code Online (Sandbox Code Playgroud)

但是,现在滚动是不自然的。当我使用触控板滚动长文档时,它是在内容上移动的视口。我希望内容与我的手指在同一方向移动,就像以前一样,就像在触摸屏上一样。

你能向我解释我应该对文件做哪些改变吗? /usr/share/X11/xorg.conf.d/才能实现这一点吗?

这里提出的解决方案没有帮助。

touchpad dell scrolling

1
推荐指数
1
解决办法
1314
查看次数

删除特定的 snap 包

当我运行时,df -h我看到我有几个/snap名称和大小相似的条目。我已经编辑并重新排列了输出,以便相似的名称都出现在一起(见下文)。

我猜我应该能够删除(例如)早期的 Gimp: 实例/snap/gimp/367这篇文章告诉我如何减少一个命名的snap 包,但我还没有找到如何只删除两个同名包中的一个。

另外,core...我真正需要哪些软件包?

提前感谢您对此的任何帮助。

/snap/audacity/857           /dev/loop17     188M  188M     0 100% 
/snap/chromium-ffmpeg/17     /dev/loop11      33M   33M     0 100% 
/snap/core/11167             /dev/loop10     100M  100M     0 100% 
/snap/core/11187             /dev/loop19     100M  100M     0 100% 
/snap/core18/2066            /dev/loop13      56M   56M     0 100% 
/snap/core18/2074            /dev/loop6       56M   56M     0 100% 
/snap/core20/1026            /dev/loop23      62M   62M     0 100% 
/snap/core20/975             /dev/loop14      62M   62M     0 100% 
/snap/gimp/367               /dev/loop22     269M  269M     0 100% 
/snap/gimp/372               /dev/loop21     277M  277M     0 100% …
Run Code Online (Sandbox Code Playgroud)

package-management snap

0
推荐指数
1
解决办法
118
查看次数