AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-426741

James Newton's questions

Martin Hope
James Newton
Asked: 2024-11-12 21:25:26 +0800 CST

使用另一个目录中同名的文件替换一个目录中的文件

  • 5

我有一个网站的两个存储库:一个用于后端,一个用于前端。我想将文件从前端复制到后端目录,以便所有内容都可以从一个地方提供。

当我build在前端运行命令时,dist/会创建一个名为的文件夹。我想将所有这些文件复制到具有相对路径的文件夹中../backend/public。此public文件夹可能已经包含一些其他文件。

index.html我当前的脚本使用和和目录的硬编码名称assets/,但随着时间的推移可能会添加更多文件,因此我想要一个通用的解决方案,将所有未改变的内容复制到dist/中../backend/public。

#!/bin/bash
cd ../backend/public
rm -rf index.html assets

cp ../../frontend/dist/index.html ./
cp -r ../../frontend/dist/assets ./assets
bash
  • 1 个回答
  • 32 Views
Martin Hope
James Newton
Asked: 2021-12-02 11:53:22 +0800 CST

创建一个文件,当它被双击时将在 VS Code 中打开另一个文件

  • 0

我想编写一个命令,~/.bashrc该命令将创建一个触发器文件,当我双击触发器文件时,该文件将在不同的文件夹中打开不同的目标文件。我希望目标文件在 VS Code 中打开。

这些文件可能出现在这样的目录结构中:

parentDir/
  archiveDir/
  yesterdaysDateDir/
  todaysDateDir/
    fileIWantToOpen.js

  index/
    fileIWantToDoubleClick

我知道我可以创建一个可执行的 .desktop 文件来执行此操作。我找到了.desktop 文件的规范,但我迷失了所有可能的细节。

我认为我想要的可能看起来像这样......

[Desktop Entry]
Type=Application
Terminal=true
Name=fileIWantToDoubleClick
Icon=utilities-terminal
Exec="code '../todaysDate/fileIWantToOpen.js'"
Categories=Application;

...但我已经超出了我的深度。任何有助于理解该做什么的帮助将不胜感激。

创建一个简单的符号链接对我不起作用:我想单击index目录中的文件并让它打开特定文件夹中的特定文件,而不是启动与index目录名称不同的克隆。

bash
  • 1 个回答
  • 56 Views
Martin Hope
James Newton
Asked: 2021-06-25 01:56:39 +0800 CST

删除特定的快照包

  • 0

当我运行时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% 
/snap/gnome-3-28-1804/145    /dev/loop4      163M  163M     0 100% 
/snap/gnome-3-38-2004/39     /dev/loop16     244M  244M     0 100% 
/snap/gtk-common-themes/1514 /dev/loop9       65M   65M     0 100% 
/snap/gtk-common-themes/1515 /dev/loop8       66M   66M     0 100% 
/snap/gtk2-common-themes/13  /dev/loop0      256K  256K     0 100% 
/snap/heroku/4048            /dev/loop2       27M   27M     0 100% 
/snap/opera/128              /dev/loop15     151M  151M     0 100% 
/snap/opera/130              /dev/loop1      151M  151M     0 100% 
/snap/postman/133            /dev/loop18     176M  176M     0 100% 
/snap/skype/173              /dev/loop12     135M  135M     0 100% 
/snap/skype/176              /dev/loop5      136M  136M     0 100% 
/snap/snapd/12057            /dev/loop3       33M   33M     0 100% 
/snap/snapd/12159            /dev/loop20      33M   33M     0 100% 
/snap/telegram-desktop/2637  /dev/loop7      302M  302M     0 100%
package-management
  • 2 个回答
  • 398 Views
Martin Hope
James Newton
Asked: 2020-07-30 09:27:46 +0800 CST

Ubuntu 16.04、Docker 和卷“文件系统根目录”上的零空间

  • 0

今天早些时候,我安装了 Docker 并学习了一些教程。在运行有关使用 Docker 和准系统 Meteor 应用程序的教程时,我收到一个错误,即没有足够的磁盘空间,即使我的/home分区有 17 GB 可用空间。

我重新启动了我的电脑,它告诉我The volume "Filesystem root" has 0 bytes disk space remaining。我的浏览器都不想在如此令人窒息的空间中启动。

我跑了sudo apt-get remove docker-ce docker-ce-cli containerd.io,这回收了 33.4 MB 的磁盘空间/,这意味着我可以启动浏览器并寻找有关如何回收更多空间的提示。在删除旧内核、运行sudo apt autoremove --purge和sudo apt-get clean删除一些我有一段时间没有使用的第三方应用程序之后,我总共可以收回超过 800 MB,所以至少我有一些喘息的空间.

然而,Docker 的安装和六个镜像的创建导致我的 19 GB /分区突然变得饱和,这似乎是一个巧合。似乎还有很多空间没有释放,迫使我删除其他以前没有麻烦的文件。

Docker 对 Docker 做了什么特别的/事情,我可以做些什么来撤消它,并避免它再次发生?

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            3,8G     0  3,8G   0% /dev
tmpfs           783M  9,6M  773M   2% /run
/dev/nvme0n1p5   19G   17G  776M  96% /
tmpfs           3,9G  468K  3,9G   1% /dev/shm
tmpfs           5,0M  4,0K  5,0M   1% /run/lock
tmpfs           3,9G     0  3,9G   0% /sys/fs/cgroup
...
/dev/nvme0n1p6  465M   80M  357M  19% /boot
/dev/nvme0n1p7   77G   57G   17G  78% /home
/dev/nvme0n1p1  496M   82M  415M  17% /boot/efi
tmpfs           783M   52K  783M   1% /run/user/1000
disk-usage 16.04 docker
  • 1 个回答
  • 1568 Views
Martin Hope
James Newton
Asked: 2020-05-09 06:15:20 +0800 CST

在 Ubuntu 16.04 上卸载 umake

  • 1

在 Ubuntu 16.04 上,我umake安装了/usr/bin/umake. 当我运行umake --version它报告

18.05

我只是用来snap install ubuntu-make --classic安装最新版本的,这个安装在/snap/bin/ubuntu-make.umake. 当我运行ubuntu-make.umake --version它报告

20.04+snap678

我原以为较新的版本会覆盖原始版本并在 为自己创建别名,但现在我在两个不同/usr/bin/umake的地方有两个副本。umake我试过了sudo apt remove umake,但这没有任何用处:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package umake

完整性检查:删除旧版本并为新版本创建符号链接是否有意义usr/bin/umake?如果是这样,我如何卸载 18.05 版?

uninstall ubuntu-make
  • 1 个回答
  • 495 Views
Martin Hope
James Newton
Asked: 2019-07-24 23:39:54 +0800 CST

使用 .desktop 文件启动 node.js 应用程序

  • 2

在 Ubuntu 16.04 中,我(最终)想要将一个文本文件拖放到桌面图标上并运行一个 Node.js 应用程序,处理拖放的文件并输出一个新文件。

我已经发现了.desktop文件,并且正在尽我最大的努力了解如何使用准系统设置来使该过程正常工作。我目前有三个文件:两个文件在一个目录中/home/blackslate/Utilities/,一个在我的桌面上。

实用程序文件

一个名为的文本文件convert.js:

const fs = require('fs');
const crypto = require('crypto');
const random = crypto.randomBytes(4).toString('hex');
const filename = random + '.txt'

fs.appendFile(filename, 'Hello ' + random + '!', function (err) {
  if (err) throw err;
  console.log(filename + ' saved');
});

一个名为的可执行文件convert.sh:

#!/bin/sh
node ./convert.js

gnome-terminal -e "bash -c 'echo hello world; sleep 3'"

桌面文件

一个名为的可执行文件convert.desktop:

[Desktop Entry]
Exec=gnome-terminal -e "/home/blackslate/Utilities/convert.sh \"%u\""
Icon=utilities-terminal
Type=Application
Name=Convert

这是发生的事情:

  1. 如果我node ./convert.js从终端窗口调用,我会看到:

    • 创建一个新文件,其名称显示在终端窗口中
  2. 如果我./convert.sh从终端窗口调用,我会看到:

    • 创建一个新文件,其名称显示在同一终端窗口中
    • 第二个终端窗口打开并hello world在 3 秒后关闭之前显示
  3. 如果我单击转换桌面文件,我会看到:

    • 一个终端窗口打开,显示一堆文本,然后立即关闭
    • 第二个终端窗口打开并hello world在 3 秒后关闭之前显示
    • 没有创建新的文本文件

很明显,convert.sh文件中的第二个命令正在执行,但第一个命令似乎出了问题。我可以采取哪些步骤来调试和修复此问题?

bash .desktop nodejs
  • 1 个回答
  • 990 Views
Martin Hope
James Newton
Asked: 2017-11-26 05:40:22 +0800 CST

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

  • 10

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

测试.sh

[[ 0 == 0 ]] && result="true" || result="false"
echo $result
echo $USER $SHELL $0

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

$ ./test.sh
true
me /bin/bash ./test.sh

$ sudo su
# ./test.sh 
true
root /bin/bash ./test.sh

# exit
$ sudo ./test.sh
./test.sh: 1: ./test.sh: [[: not found
false
root /bin/bash ./test.sh

这可能是什么原因造成的?我怎样才能修复它,以便me可以正常使用这个脚本和 with sudo?

bash
  • 2 个回答
  • 2098 Views
Martin Hope
James Newton
Asked: 2017-11-24 07:44:27 +0800 CST

使用 cat 时不计算表达式

  • 6

我有一个 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

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

#!/usr/bin/env bash

DATE=171123-1834

mkdir myproject/$DATE

我想要的结果是这样的:

#!/usr/bin/env bash

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

mkdir myproject/$DATE

如何修改此脚本以便DATE=不评估以下表达式,同时确保$PROJECT对其进行评估?

bash
  • 2 个回答
  • 1721 Views
Martin Hope
James Newton
Asked: 2017-11-24 05:45:07 +0800 CST

在 bash 脚本中调用 apt-get -y update:一次还是多次?

  • 1

我正在编写一个 bash 脚本来安装许多软件包。apt-get -y update每次打电话之前我都需要打电话apt-get install <package_name>吗?还是apt-get -y update在脚本开头调用一次就足够了?

如果需要多次调用,您能解释一下原因吗?

apt
  • 1 个回答
  • 787 Views
Martin Hope
James Newton
Asked: 2017-11-21 07:43:35 +0800 CST

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

  • 18

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

sudo -u node bash

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


我正在provision.sh为 Vagrant 编写脚本,以设置运行 Ubuntu 16.04.3 的服务器,其中包含使用 Meteor 1.6 交付应用程序所需的所有包。

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

随后,我想立即切换回原来的root登录方式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)
useradd -m -p $pass meteor
echo "User meteor created. ls -al /home/meteor:"
ls -al /home/meteor
echo "Install curl as root:"
apt-get install -y curl
echo "Trying sudo -u meteor bash"
sudo -u meteor bash #### THIS IS THE LINE THAT FAILS ###

echo "$ whoami" && whoami && echo "^^^^^^ meteor expected"
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh | bash
echo "ls -al /home/meteor/.nvm # should be populated"
ls -al /home/meteor/.nvm

echo "ls -al /root/.nvm # should not exist"
ls -al /root/.nvm

echo "command -v nvm will fail silently until we log out and back in again"
#command -v nvm
exit

#### Because the script is still running as root, it halts here ####

echo "# whoami" && whoami && echo "^^^^ should be root"
sudo -u meteor bash
echo "$ whoami" && whoami && echo "^^^^^^ should be meteor"
echo "command -v nvm should work now"
command -v nvm
bash
  • 3 个回答
  • 69714 Views
Martin Hope
James Newton
Asked: 2017-11-14 02:23:09 +0800 CST

从 USB 密钥启动时访问内部驱动器

  • 0

我有一个带有 256GB 内部驱动器的戴尔 XPS 13,分区为 Windows 10 和 Ubuntu 16.04 的双启动。固件更新后,笔记本电脑将不再启动进入 Ubuntu,但会启动进入 Windows,因此内部驱动器没有损坏。

我已经在 8GB SanDisk USB 密钥上安装了 Ubuntu 16.04.1,并且可以使用它将笔记本电脑启动到 Ubuntu。

使用这个问题的信息,我跑了sudo fdisk 1,我看到 64MiB 卷的 16 个条目,格式如下:

Disk /dev/ram15: 64 MiB, 67108864 bytes, 131072 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

这些条目的名称从 /dev/ram0 到 /dev/ram15,然后是:

Disk /dev/loop0: 1.4 GiB, 1459982336 bytes, 2851528 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/sda: 7.5 GiB, 8002732032 bytes, 15630336 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x0030553a

Device     Boot Start      End  Sectors  Size Id Type
/dev/sda1  *     2048 15630335 15628288  7.5G  c W95 FAT32 (LBA)

尽管这表示总共略多于 8 GB,但这些条目似乎都没有引用内部驱动器上的任何分区。

在理解命令行界面的所有功能时,我仍然处于肤浅的状态,因此我将不胜感激简单的解释。

我需要做什么才能访问内部驱动器?


编辑。这是 /boot目录的样子:

# tree /boot
/boot
├── abi-4.4.0-31-generic
├── config-4.4.0-31-generic
├── efi
│   └── EFI
│       └── ubuntu
│           ├── fw
│           └── fwupx64.efi
├── grub
│   ├── gfxblacklist.txt
│   ├── grubenv
│   └── unicode.pf2
├── memtest86+.bin
├── memtest86+.elf
├── memtest86+_multiboot.bin
└── System.map-4.4.0-31-generic
mount
  • 1 个回答
  • 1903 Views
Martin Hope
James Newton
Asked: 2017-11-14 00:32:23 +0800 CST

双引导戴尔 XPS 13 在固件更新后无法引导至 Ubuntu

  • 8

一年前,我在工厂购买了一台装有 Windows 10 的戴尔 XPS。当它到达时,我在内部硬盘上添加了新分区——引导、家庭和交换——并安装了 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  

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

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

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

在 SATA 操作面板中,如果我选择 AHCI,笔记本电脑将启动到 SanDisk LiveUSB。如果我将其设置为 RAID On,并在启动顺序中禁用 SanDisk,则笔记本电脑将启动到 Windows。

在任何情况下,它都不会启动到安装在 256 GB 内部 SSD 上的 Ubuntu 操作系统。

我需要采取哪些步骤才能使笔记本电脑能够启动到已安装的 Ubuntu 版本?

boot
  • 2 个回答
  • 5048 Views
Martin Hope
James Newton
Asked: 2017-11-04 03:02:03 +0800 CST

查找具有给定名称的文件或键入具有给定名称的目录

  • 2

我想找到一个名为web. 特别是,我对在index.php这些目录中命名的任何文件感兴趣。

我知道我可以使用sudo find / -type d -name "web"列出所有目录,然后我可以使用sudo find <directory path> -type f -name "*.php"每个输出路径,查看它是否包含 PHP 脚本。

但是有没有办法在一行和两个嵌套的 find 命令中做到这一点:一个 find 命令用于获取web目录的路径,第二个命令依次使用这些目录中的每一个作为根来查找名称匹配的文件模式*.php?

bash
  • 2 个回答
  • 1571 Views
Martin Hope
James Newton
Asked: 2017-10-29 02:15:38 +0800 CST

使用 nginx 作为反向代理运行 Apache2

  • 3

我的目标是从新的 Ubuntu 16.04 服务器提供安全的电子邮件服务。为了做到这一点,我想设置 Apache2 运行 nginx 作为其反向代理。

我的直接问题是 Apache 无法启动,声称没有分配 SSL 证书(请参阅本问题末尾的终端输出),即使我(尚未)尝试使用 HTTPS。

我的问题:

  • 如果 Apache 在本地端口上运行,nginx 知道任何 SSL 证书还不够吗?
  • 我需要做什么才能让 Apache 开始在本地地址监听?

这是我对我需要做的事情的理解。如果您能指出我的理解错误的地方,我将不胜感激。

  • 安装 nginx 和 Apache2
  • 创建一个 nginx 服务器块以:
    • 监听端口 80(和 443)
    • (将流量从 80 端口重定向到 443 端口)
    • (处理 SSL 认证)
    • 将 PHP 文件的任何请求转发到 127.0.0.1:8080 的 Apache
  • 将 Apache 设置为:
    • 只监听 8080 端口,不监听 443 端口
    • 对任何 SSL 认证一无所知

我喜欢一次处理一个问题,所以我目前搁置 SSL 证书的问题,并试图让 Apache 使用 nginx 作为其反向代理仅在端口 80 上运行。


以下是我现有的配置文件:

nginx

$ sudo nano /etc/nginx/sites-available/webmail

server {
  listen   80;

  root /var/www/webmail/web;
  index index.php index.html index.htm;

  server_name webmail.mydomain.com;

  # Look for...
  # * the exact path
  # * a default (index.*) file, considering the path to be a directory
  # ... and if that fails:
  # * get the index.php script at the root to deal with the request

  location / {
    try_files $uri $uri/ /index.php;
  }

  # If the chosen path leads to a PHP fie:
  # * forward the request to Apache running at 127.0.0.1:8080
  # * after having modified certain headers

  location ~ \.php$ {
    proxy_set_header X-Real-IP  $remote_addr;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header Host $host;
    proxy_pass http://127.0.0.1:8080;
  }

  # If there are any Apache HT files in the chosen directory
  # ignore any direct requests for them

  location ~ /\.ht {
    deny all;
  }
}

阿帕奇2

$ sudo nano /etc/apache2/sites-available/webmail.conf 

<VirtualHost 127.0.0.1:8080>
        ServerName webmail.mydomain.com
        ServerAdmin admin@mydomain.com
        DocumentRoot /var/www/webmail/web
        <Directory "/var/www/webmail/web">
            Options FollowSymLinks
            AllowOverride All
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log
        LogLevel warn
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Apache2 端口

$ sudo nano /etc/apache2/ports.conf

Listen 127.0.0.1:8080

#<IfModule ssl_module>
#       Listen 443
#</IfModule>

#<IfModule mod_gnutls.c>
#       Listen 443
#</IfModule>

请注意,我没有明确要求 Apache 监听端口 443。在其他配置文件中是否有另一个地方告诉 Apache 监听端口 443?


这是我的占位符 PHP 和 HTML 文件,在它们的预期位置:

索引.php

$ sudo nano /var/www/webmail/web/index.php

<?php
  echo "PHP from /var/www/webmail/web/index.php\n";
?>

索引.html

$ sudo nano /var/www/webmail/web/index.html

<html>
  HTML from /var/www/webmail/web/index.html
</html>

在浏览器中,对http://webmail.mydomain.com/index.html的请求按预期成功,但对http://webmail.mydomain.com/index.php的请求导致文件被下载,而不是执行.


这是我尝试启动 Apache2 时发生的情况:

$ sudo /etc/init.d/apache2 restart
[ ok ] Restarting apache2 (via systemctl): apache2.service.

$ sudo service apache2 status
* apache2.service - LSB: Apache2 web server
   Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           `-apache2-systemd.conf
   Active: inactive (dead) since <Time>; 3s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 16059 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
  Process: 16043 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)

systemd[1]: Starting LSB: Apache2 web server...
apache2[16043]:  * Starting Apache httpd web server apache2
apache2[16043]: Action 'start' failed.
apache2[16043]: The Apache error log may have more information.
apache2[16043]:  *
apache2[16059]:  * Stopping Apache httpd web server apache2
apache2[16059]:  *
systemd[1]: Started LSB: Apache2 web server.

这是error.log的内容:

$ sudo nano /var/log/apache2/error.log

[ssl:emerg] [pid 15943] AH02572: Failed to configure at least one certificate and key for myhostname.hostingservice.com:443
[ssl:emerg] [pid 15943] SSL Library Error: error:140A80B1:SSL routines:SSL_CTX_check_private_key:no certificate assigned
[ssl:emerg] [pid 15943] AH02311: Fatal error initialising mod_ssl, exiting. See /var/log/apache2/error.log for more information

(这在 var/log/apache2/error.log 中,没有更多信息。)

我错过了什么?


注意:此服务器的主要目的是提供 Meteor 应用程序。我选择使用 Phusion Passenger 和 Nginx 来做这件事。除了电子邮件服务之外,Apache 还将用于提供 WordPress 站点。

apache2
  • 1 个回答
  • 1107 Views
Martin Hope
James Newton
Asked: 2017-10-26 01:14:59 +0800 CST

如何只允许使用 RSA 密钥的 SSH,以及使用密码和 chroot 的 SFTP?

  • 1

在我的 Ubuntu 16.04 LTS 服务器上,我想做以下事情:

  • 启用具有 sudo 权限的非 root 管理员用户使用 RSA 密钥(无密码)通过 SSH 连接到服务器
  • 允许选定的非管理员用户通过 SFTP 将文件上传到自己的主目录,使用密码登录
  • 防止非管理员用户访问文件系统的其余部分

我正在使用新安装的 Ubuntu 16.04.3 LTS 版本,所以一切都处于默认出厂状态。

我已经仔细阅读了这个问题和答案,但我一直无法找到解决方案。

我创建了一个nonrootadmin具有 sudo 权限的用户。

我创建了一个nonadminsftp用户,他是该sftpaccess组的成员。该/home/nonadminsftp/目录如下所示:

$ ls -al ~nonadminsftp
total 24
drwxr-xr-x 3 root         root       4096 Oct 25 00:52 .
drwxr-xr-x 5 root         root       4096 Oct 24 22:29 ..
-rw-r--r-- 1 nonadminsftp sftpaccess  220 Sep  1  2015 .bash_logout
-rw-r--r-- 1 nonadminsftp sftpaccess 3771 Sep  1  2015 .bashrc
drwxr-xr-x 3 nonadminsftp sftpaccess 4096 Oct 25 00:50 ftp
-rw-r--r-- 1 nonadminsftp sftpaccess  655 May 16 13:49 .profile

他们各自的条目/etc/passwd如下:

nonrootadmin:x:1000:1000::/home/nonrootadmin:/bin/bash
nonadminsftp:x:1002:1002::/home/nonadminsftp:/usr/sbin/nologin

我对/etc/sshd/sshd_config文件所做的更改如下:

PermitRootLogin no
#PasswordAuthentication no

AllowUsers nonrootadmin nonadminsftp
Subsystem sftp internal-sftp
Match group sftpaccess
#ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
#ForceCommand internal-sftp

我看到的解决方案建议取消注释其中的 3 行,但我发现:

  • PasswordAuthentication no防止 nonadminsftp 用户使用密码进行连接:

    $ sftp nonadminsftp@mydomain.com
    Permission denied (publickey).
    Couldn't read packet: Connection reset by peer
    
  • ChrootDirectory %h完全阻止非rootadmin用户连接:

    $ ssh nonrootadmin@mydomain.com
    packet_write_wait: Connection to 12.34.56.78 port 22: Broken pipe`
    
  • ForceCommand internal-sftp防止 nonrootadmin 获得 SSH 访问权限:

    $ ssh nonrootadmin@mydomain.com
    This service allows sftp connections only.
    Connection to mydomain.com closed.`
    

将这些行注释掉:

  • nonrootadmin 确实具有使用 RSA 密钥的 SSH 访问权限
  • nonadminsftp 可以使用 FTP 客户端(例如 FileZilla)进行连接

但:

  • nonadminsftp 未chroot编入/home/nonadminsftp目录
  • nonrootadmin 可以使用密码登录

我错过了什么?

提前致谢

permissions
  • 1 个回答
  • 3079 Views
Martin Hope
James Newton
Asked: 2017-08-25 11:10:26 +0800 CST

在戴尔 XPS 13 上恢复点击以单击 Ubuntu 16.04

  • 6

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

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

我有一台戴尔 XPS 13,默认情况下,它有一个非常灵敏的触控板。在你打字的时候,如果你不小心刷了触控板,触控板会认为是点击,文本插入点会跳转到鼠标碰巧所在的位置。我为此问题找到并安装了此修复程序:

sudo apt-get install xserver-xorg-input-libinput

这反转了滚动方向,所以我还编辑了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

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

touchpad
  • 1 个回答
  • 4173 Views
Martin Hope
James Newton
Asked: 2017-08-24 23:07:25 +0800 CST

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

  • 1

我有一台戴尔 XPS 13,默认情况下,它有一个非常灵敏的触控板。在你打字的时候,如果你不小心刷了触控板,触控板会认为是点击,文本插入点会跳转到鼠标碰巧所在的位置。我为此问题找到并安装了此修复程序:

sudo apt-get install xserver-xorg-input-libinput

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

您能否向我解释一下我应该对文件进行哪些更改/usr/share/X11/xorg.conf.d/才能实现这一点?

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

touchpad
  • 2 个回答
  • 1448 Views
Martin Hope
James Newton
Asked: 2016-09-23 15:55:08 +0800 CST

BIOS 中未显示 SHIMx64.EFI

  • 4

我以前使用过实时 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)

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)
dual-boot
  • 2 个回答
  • 5283 Views
Martin Hope
James Newton
Asked: 2015-07-06 14:05:59 +0800 CST

从 USB 驱动器在 Ubuntu 中启动运行 Windows 8.1 的 Sony Vaio 计算机

  • 1

我有安装了 Windows 8.1 的 Sony VAIO Tap 20。我想在上面安装 Ubuntu 14.04 或 15.04,但我从一开始就失败了。我无法让 Ubuntu 启动。

一个特殊性是它是 Windows 8.1 的法语版本,但我怀疑这应该是一个问题。

在具有 7.7 GB 可用空间的 USB 密钥上,我使用我在此处找到的说明创建了 Ubuntu 14.04 的 Live USB 。

  • 如果我在重新启动计算机之前运行 wubi.exe,则会收到一条错误消息,指出 /ubuntu/winboot/wubildr.mbr 丢失或包含错误。
  • 如果我使用“控制面板”>“卸载程序”>“Ubuntu”进行卸载,那么我无法选择从 Live USB 驱动器启动。计算机直接启动进入 Windows 8.1
  • 如果我尝试在 15.04 iso 上运行 wubi.exe,它会告诉我“Wubi 当前不支持 EFI”

我知道 Windows 8.1 在 UEFI 模式下运行,我也应该在 UEFI 模式下安装 Ubuntu。

我冒险进入 BIOS 并禁用了安全启动。我已经关闭了快速启动。我缩小了 Windows 分区,并为 /、/home 和 /swap 创建了 3 个分区...但是我无法让计算机从 Live USB 启动到 Ubuntu,所以我无法安装它到这些分区上。

我已经读过这篇文章(以及许多其他文章),但我无法通过“在 EFI 模式下启动实时 ... USB 闪存驱动器”。

在此页面上,我看到一条建议我应该禁用 Intel 智能响应技术,但我没有找到任何关于如何执行此操作的明确步骤,但我确实发现有报告称 Ubuntu 在启用了 SRT 的系统上运行良好。

我错过了一个重要的步骤吗?


编辑:按照@Rod Smith 的建议,我使用 Rufus 创建了一个可引导的 USB 驱动器,使用 Ubuntu 14.04 的 iso,以及用于 UEFI 的 GPT 分区。

我原以为使用 USB 驱动器重新启动计算机就足够了,并且我可以选择 Ubuntu 或 Windows。然而,即使我告诉 BIOS 优先考虑外置驱动器,计算机也会直接启动进入 Windows,而我没有选择的余地。

我需要做什么才能告诉计算机查看 USB 记忆棒上的替代操作系统?

dual-boot
  • 2 个回答
  • 2631 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve