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-264847

Lucio Crusca's questions

Martin Hope
Lucio Crusca
Asked: 2024-01-16 19:56:44 +0800 CST

可以在Keycloak 23+中管理用户的客户端

  • 5

我需要授权我的应用程序(从现在起名为“Logic”)来管理 Keycloak 领域的用户。“逻辑”已经使用客户端凭据授予访问类型针对该领域进行了自身身份验证,因此代码已经可以运行。

现在,在 Keycloak 管理控制台中,我需要向客户端添加正确的角色,以便“Logic”有权调用 Keycloak 提供的任何 API 端点来管理领域用户。

在领域客户端列表中有一个名为 的客户端realm-management,Keycloak 默认为每个领域提供该客户端。该客户端可以管理整个领域,而不仅仅是其用户,因此它有一个客户端角色列表。manage-users是该列表中的角色之一,也是我需要分配给其他客户端(我logic在 Keycloak 中命名)的角色。换句话说,我的“Logic”应用程序使用 keycloak client-idlogic来验证自身,我需要将manage-users角色添加到logic客户端。

问题是,在我的客户端 ( logic) 角色设置中,在客户端下列出的那些相同角色realm-management根本没有列出,并且列表只有uma_protection角色:

该列表只有uma_protection

如果我通过在搜索框中键入“管理用户”来搜索“管理用户”,它不会显示。同时,如果我在客户端的角色列表中单击该角色realm-management,它会显示没有用户拥有该角色,它允许我将该角色添加到用户,而不是客户端,即使该角色实际上列在客户端中( realm-management) 。

logic在我的客户端中创建一个同名的新角色manage-users是可能的,但我不确定这是否可行。我的意思是,我为什么要重复现有的角色?闻起来有股错误的味道。

您能告诉我在Keycloak 23中将manage-users角色添加到客户端的正确方法吗?

keycloak
  • 1 个回答
  • 237 Views
Martin Hope
Lucio Crusca
Asked: 2022-01-13 12:37:38 +0800 CST

USB HDD 出现故障时,dmesg 中消息的正常顺序是什么?

  • 0

我有一个连接到 Debian GNU/Linux 服务器的 USB 硬盘。我正在尝试使用以下命令对其进行格式化(NTFS):

# mkntfs -v /dev/sdd1

这需要几个小时,因为它也会检查磁盘。检查时,dmesg -T显示以下内容:

[Wed Jan 12 15:22:53 2022] sd 9:0:0:0: [sdd] Attached SCSI disk
[Wed Jan 12 18:03:26 2022] usb 1-4: USB disconnect, device number 5
[Wed Jan 12 18:03:26 2022] blk_update_request: I/O error, dev sdd, sector 621745808 op 0x1:(WRITE) flags 0x104000 phys_seg 240 prio class 0
[Wed Jan 12 18:03:26 2022] Buffer I/O error on dev sdd1, logical block 621743760, lost async page write
[Wed Jan 12 18:03:26 2022] Buffer I/O error on dev sdd1, logical block 621743761, lost async page write
   (...and so on for a few lines, then)
[Wed Jan 12 18:03:26 2022] blk_update_request: I/O error, dev sdd, sector 621746048 op 0x1:(WRITE) flags 0x104000 phys_seg 240 prio class 0
[Wed Jan 12 18:03:26 2022] blk_update_request: I/O error, dev sdd, sector 621746288 op 0x1:(WRITE) flags 0x100000 phys_seg 8 prio class 0
[Wed Jan 12 18:03:26 2022] blk_update_request: I/O error, dev sdd, sector 621746296 op 0x1:(WRITE) flags 0x800 phys_seg 16 prio class 0
   (...and so on for a few lines, then)
[Wed Jan 12 18:03:31 2022] buffer_io_error: 9015384 callbacks suppressed
   (...other errors...)

看着大量的错误消息,我会说 HDD 几乎死了,但将它附加到 Windows PC 似乎可以工作。此外usb 1-4: USB disconnect, device number 5,dmesg在其他错误之前出现的第一个错误( .

但是我在dmesg输出方面不是很有经验,所以很可能我读错了。

编辑:根据 NiKiZe 的要求,这里是输出smartctl -a /dev/sdd:

# smartctl -a /dev/sdd
smartctl 6.6 2017-11-05 r4594 [x86_64-linux-5.10.0-3-amd64] (local build)
Copyright (C) 2002-17, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Western Digital Blue Mobile
Device Model:     WDC WD10SPCX-00KHST0
Serial Number:    WD-WXF1A95F0J3X
LU WWN Device Id: 5 0014ee 65b7e0332
Firmware Version: 01.01A01
User Capacity:    1.000.204.886.016 bytes [1,00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    5400 rpm
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ACS-2 (minor revision not indicated)
SATA Version is:  SATA 3.0, 6.0 Gb/s (current: 1.5 Gb/s)
Local Time is:    Thu Jan 13 11:04:19 2022 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART Status not supported: Incomplete response, ATA output registers missing
SMART overall-health self-assessment test result: PASSED
Warning: This result is based on an Attribute check.

General SMART Values:
Offline data collection status:  (0x00) Offline data collection activity
                    was never started.
                    Auto Offline Data Collection: Disabled.
Self-test execution status:      (   0) The previous self-test routine completed
                    without error or no self-test has ever 
                    been run.
Total time to complete Offline 
data collection:        (16080) seconds.
Offline data collection
capabilities:            (0x7b) SMART execute Offline immediate.
                    Auto Offline data collection on/off support.
                    Suspend Offline collection upon new
                    command.
                    Offline surface scan supported.
                    Self-test supported.
                    Conveyance Self-test supported.
                    Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                    power-saving mode.
                    Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                    General Purpose Logging supported.
Short self-test routine 
recommended polling time:    (   2) minutes.
Extended self-test routine
recommended polling time:    ( 184) minutes.
Conveyance self-test routine
recommended polling time:    (   5) minutes.
SCT capabilities:          (0x7035) SCT Status supported.
                    SCT Feature Control supported.
                    SCT Data Table supported.

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x002f   200   200   051    Pre-fail  Always       -       0
  3 Spin_Up_Time            0x0027   190   184   021    Pre-fail  Always       -       1500
  4 Start_Stop_Count        0x0032   081   081   000    Old_age   Always       -       19048
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x002e   200   200   000    Old_age   Always       -       0
  9 Power_On_Hours          0x0032   073   073   000    Old_age   Always       -       20415
 10 Spin_Retry_Count        0x0032   100   100   000    Old_age   Always       -       0
 11 Calibration_Retry_Count 0x0032   100   100   000    Old_age   Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       188
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       43
193 Load_Cycle_Count        0x0032   187   187   000    Old_age   Always       -       41054
194 Temperature_Celsius     0x0022   119   095   000    Old_age   Always       -       28
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   100   253   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always       -       0
200 Multi_Zone_Error_Rate   0x0008   100   253   000    Old_age   Offline      -       0

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]

SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

假设这个 HDD 确实出现故障,并且其中的错误消息dmesg是针对真正的坏扇区,为什么会在坏扇区消息之前而不是之后dmesg显示断开连接?

drive-failure
  • 0 个回答
  • 260 Views
Martin Hope
Lucio Crusca
Asked: 2021-10-30 09:19:31 +0800 CST

由 nodm/lightdm 启动的 .xsession 中的 mount.ecryptfs_private 抱怨“挂载:没有这样的文件或目录”

  • 0

我试图在系统启动时自动解密Private用户内部的目录。$HOME该系统是使用NoDM启动 Xorg 的 Debian GNU/Linux 10(实际上是 Raspbian,但我认为这与此没有什么不同)。

编辑 1:我现在尝试在虚拟机中安装带有 Nodm 的干净 Debian 11,我遇到了与下面描述的完全相同的问题。

Nodm 自动登录非特权用户,并运行$HOME/.xsession启动脚本。

我有以下脚本,由 .xsession 调用:

#!/bin/bash -x
# Original by Michael Halcrow, IBM
# Extracted to a stand-alone script by Dustin Kirkland
# Edited on 2021-10-28 by Lucio Crusca

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PD="Private"    
WPF="$HOME/.ecryptfs/wrapped-passphrase"
MPSF="$HOME/.ecryptfs/$PD.sig"

if /sbin/mount.ecryptfs_private ; then
    exit 0
fi

if [ -f "$WPF" -a -f "$MPSF" ]; then
        if [ $(wc -l < "$MPSF") = "1" ]; then
            if printf "%s\0" "$LP" | ecryptfs-unwrap-passphrase "$WPF" - | ecryptfs-add-passphrase -; then
                echo Ok
            else
                echo incorrect LP
                exit 1
            fi
        else
            if printf "%s\0" "$LP" | ecryptfs-insert-wrapped-passphrase-into-keyring "$WPF" - ; then
                echo Ok
            else
                echo incorrect LP
                exit 1
            fi
        fi
    /sbin/mount.ecryptfs_private
else
    echo Setup error
    exit 1
fi
exit 0

它是/usr/bin/ecryptfs-mount-private. 它只执行相同的命令,但它希望 LP 环境变量包含密码,而不是交互式地询问密码。

我将此脚本保存为$HOME/el-mount.sh. 当我的系统启动并且 NoDM 启动时,它会执行 .xsession,然后调用我的脚本、重定向stdout并stderr到一个日志文件进行调试。这件事不起作用,因为它输出了这个:

...
+ /sbin/mount.ecryptfs_private
mount: No such file or directory

但是,如果我通过连接到系统ssh并运行相同的el-mount.sh脚本,以在 NoDM 中配置的相同用户身份登录,则该脚本可以完美运行。以防万一您想知道,在这两种情况下都正确设置了 LP 变量(已在日志文件中检查)。

我已经尝试从 NoDM 切换到 lightdm-autologin-greeter,但我得到了相同的结果。

mount.ecryptfs_private在自动登录期间调用时如何工作?

debian ecryptfs
  • 1 个回答
  • 138 Views
Martin Hope
Lucio Crusca
Asked: 2020-10-27 14:43:41 +0800 CST

Wireguard 未完成握手

  • 8

我有两个 Debian GNU/Linux 系统(bullseye/sid),都在端口 23456 上运行wireguard,都在 NAT 后面。两者都运行 > 5.6 的内核版本(wireguard mainlined)。

系统 A 是服务器,它在权威名称服务器中为其 Internet 域动态更新专用“A 记录”,并为其分配面向 Internet 的路由器 A(ZyWALL USG 100 防火墙)分配的正确公共 IP 地址。它每分钟这样做一次,但公共 IP 地址实际上仅在路由器/防火墙重新启动时才会更改,这基本上不会发生。

系统 B 在 VDSL 路由器 B 后面,它充当线卫客户端,指向动态更新的“A 记录”和端口 33456。路由器 B 是消费级 VDSL 路由器,它允许出站方向的所有内容,只回复入站。

路由器/防火墙 A (ZyWALL USG 100) 被配置为允许端口 23456 上的 UDP 数据包通过它并将它们转发到服务器 A。以下是相关配置屏幕:

ZyWALL USG 100wireguard-behind-NAT 配置

这是服务器 A Wireguard 配置文件(此代码段中的密钥,尽管有效,但不是真实的):

[Interface]
Address = 10.31.33.100/24, fc00:31:33::1/64
ListenPort = 23456
PrivateKey = iJE/5Qy4uO55uUQg8nnDKQ/dFT1MEq+tDfFXrGNj3GY=
# PreUp = iptables -t nat -A POSTROUTING -s 10.31.33.0/24  -o enp1s0 -j MASQUERADE; ip6tables -t nat -A POSTROUTING -s fc00:31:33::/64 -o enp1s0 -j MASQUERADE
# PostDown = iptables -t nat -D POSTROUTING -s 10.31.33.0/24  -o enp1s0 -j MASQUERADE; ip6tables -t nat -D POSTROUTING -s fc00:31:33::/64 -o enp1s0 -j MASQUERADE

# Simon
[Peer]
PublicKey = QnkTJ+Qd9G5EybA2lAx2rPNRkxiQl1W6hHeEFWgJ0zc=
AllowedIPs = 10.31.33.211/32, fc00:31:33::3/128

这是客户端 B 的wireguard 配置(同样,密钥和域不是真实的):

[Interface]
PrivateKey = YA9cRlF4DgfUojqz6pK89poB71UFoHPM6pdMQabWf1I=
Address = 10.31.33.211/32

[Peer]
PublicKey = p62kU3HoXLJACI4G+9jg0PyTeKAOFIIcY5eeNy31cVs=
AllowedIPs = 10.31.33.0/24, 172.31.33.0/24
Endpoint = wgsrv.example.com:33456
PersistentKeepalive = 25

这是描述这种情况的脏图:

Client B -> LAN B -> VDSL Router B (NAT) -> the internet -> ZyWALL (NAT) -> LAN A -> Server A

在两个系统上启动wireguard 不会建立VPN 连接。在客户端激活调试消息并将 LOG 规则添加到 iptables 中,记录OUTPUT数据包,我得到了很多这些:

[414414.454367] IN= OUT=wlp4s0 SRC=10.150.44.32 DST=1.2.3.4 LEN=176 TOS=0x08 PREC=0x80 TTL=64 ID=2797 PROTO=UDP SPT=36883 DPT=33456 LEN=156 
[414419.821744] wireguard: wg0-simon: Handshake for peer 3 (1.2.3.4:33456) did not complete after 5 seconds, retrying (try 2)
[414419.821786] wireguard: wg0-simon: Sending handshake initiation to peer 3 (1.2.3.4:33456)

我已经向服务器添加了一个 LOG iptables 规则,以便诊断路由器配置问题。

root@wgserver ~ # iptables -t nat -I INPUT 1 -p udp --dport 23456 -j LOG

它记录从客户端收到的wireguard数据包(但我不知道它们是无效还是不完整):

[ 1412.380826] IN=enp1s0 OUT= MAC=6c:62:6d:a6:5a:8e:d4:60:e3:e0:23:30:08:00 SRC=37.161.119.20 DST=10.150.44.188 LEN=176 TOS=0x08 PREC=0x00 TTL=48 ID=60479 PROTO=UDP SPT=8567 DPT=23456 LEN=156 
[ 1417.509702] IN=enp1s0 OUT= MAC=6c:62:6d:a6:5a:8e:d4:60:e3:e0:23:30:08:00 SRC=37.161.119.20 DST=10.150.44.188 LEN=176 TOS=0x08 PREC=0x00 TTL=48 ID=61002 PROTO=UDP SPT=8567 DPT=23456 LEN=156 

所以我倾向于假设 A 路由器(ZyWALL USG 100)已正确配置为让数据包进入服务器本地网络。为了证实这个假设,我什至尝试用另一个消费级路由器替换 ZyWALL 并将服务器移动到不同的互联网连接上,但问题仍然存在,所以我确定问题不是防火墙,也不是它的具体问题网络连接。

这是服务器网络配置,以防万一:

auto lo
iface lo inet loopback

auto enp1s0
iface enp1s0 inet static
    address 10.150.44.188/24
    gateway 10.150.44.1

最重要的是,使用相同的客户端、相同的 VDSL 路由器(客户端)、相同的互联网连接、类似的服务器配置(显然不同的密钥和域)、类似的防火墙配置(服务器端、不同的防火墙模型)。

firewall nat wireguard zyxel
  • 2 个回答
  • 48582 Views
Martin Hope
Lucio Crusca
Asked: 2020-07-22 03:05:30 +0800 CST

克隆 NTFS 磁盘

  • 0

我需要使用 Debian GNU/Linux 克隆一个失败的 2TB 磁盘,该磁盘包含一个 NTFS 分区。磁盘有许多不可重定位的坏扇区,所以我知道部分数据已经丢失;但是我需要克隆磁盘才能尝试使用testdisk.

我发出克隆它的命令是:

dd if=/dev/sdc of=/dev/md2 bs=512 conv=noerror status=progress

大约花了 2 天时间完成,在此期间它发现了大约 3GB、66GB 和 88GB 的​​坏扇区。故障磁盘很旧而且不是高级格式,所以我知道它的扇区肯定是 512 字节。

问题是尝试testdisk /dev/sdc读取目录(但由于坏扇区而无法恢复文件),而 tryngtestdisk /dev/md2甚至没有列出目录内容。该磁盘仅包含 NTFS 分区,它跨越了整个可用空间。为什么克隆与原始不一样,至少在未损坏的扇区上?我是否以一种不好的方式克隆,我应该以其他方式克隆它,例如不同的命令或选项?

linux clone ntfs forensics
  • 1 个回答
  • 256 Views
Martin Hope
Lucio Crusca
Asked: 2019-03-15 11:01:40 +0800 CST

在 Debian 上使用香草内核破坏 WoL

  • 1

我在使用 Debian Buster/Sid,但我喜欢自己编译新的 vanilla 内核,只是为了尝试一下。但是我面临一个反复出现的问题:如果我使用 Debian 打包内核,Wake On Lan 可以正常工作,我可以通过向它发送魔术包来唤醒我的电脑。如果我使用我自己编译的香草内核,它不会。

这是我使用的程序:

$ wget 'https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.0.2.tar.xz'
$ tar xJf linux-5.0.2.tar.xz 
$ cd linux-5.0.2/
linux-5.0.2 $ cp /boot/config-4.19.0-2-amd64 .config
linux-5.0.2 $ make oldconfig

[KCONFIG 问题省略] 我最终添加了一些东西,但我从不删除任何东西

linux-5.0.2 $ CONCURRENCY_LEVEL=20 fakeroot make-kpkg --initrd binary-arch
[...]
linux-5.0.2 $ cd..
$ su -
# dpkg -i linux-image-*.deb linux-headers-*.deb
# reboot

[...新内核启动...]

# init 0

现在我尝试从另一个联网设备发送神奇的 WoL 数据包,但我的电脑无法启动。如果我使用 Debian 打包内核(4.19.0-2,对应于上游 4.19.16)启动它,然后关闭它,那么 WoL 数据包按预期工作,我的 PC 启动。

这是 lsmod 的输出,因为有人要求我这样做:

$ lsmod 
Module                  Size  Used by
nft_chain_route_ipv4    16384  1
xt_CHECKSUM            16384  1
nft_chain_nat_ipv4     16384  4
ipt_MASQUERADE         20480  1
xt_conntrack           16384  1
ipt_REJECT             16384  1
nf_reject_ipv4         16384  1 ipt_REJECT
nft_counter            16384  34
xt_tcpudp              20480  2
nft_compat             20480  27
devlink                73728  0
nf_tables             147456  188 nft_chain_route_ipv4,nft_compat,nft_chain_nat_ipv4,nft_counter
nfnetlink              16384  2 nft_compat,nf_tables
tun                    57344  5
bridge                188416  0
stp                    16384  1 bridge
llc                    16384  2 bridge,stp
binfmt_misc            24576  1
nls_ascii              16384  1
nls_cp437              20480  1
vfat                   24576  1
fat                    81920  1 vfat
edac_mce_amd           28672  0
kvm_amd               102400  0
ccp                    94208  1 kvm_amd
rng_core               16384  1 ccp
snd_hda_codec_realtek   122880  1
snd_hda_codec_hdmi     61440  1
kvm                   733184  1 kvm_amd
snd_hda_codec_generic    90112  1 snd_hda_codec_realtek
ledtrig_audio          16384  2 snd_hda_codec_generic,snd_hda_codec_realtek
irqbypass              16384  1 kvm
crct10dif_pclmul       16384  1
snd_hda_intel          45056  6
amdgpu               3928064  17
crc32_pclmul           16384  0
ghash_clmulni_intel    16384  0
snd_hda_codec         155648  4 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek
joydev                 28672  0
aesni_intel           372736  0
aes_x86_64             20480  1 aesni_intel
snd_hda_core           98304  5 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek
crypto_simd            16384  1 aesni_intel
chash                  16384  1 amdgpu
cryptd                 24576  3 crypto_simd,ghash_clmulni_intel,aesni_intel
eeepc_wmi              16384  0
asus_wmi               32768  1 eeepc_wmi
snd_hwdep              20480  1 snd_hda_codec
sparse_keymap          16384  1 asus_wmi
snd_pcm               118784  4 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core
rfkill                 32768  2 asus_wmi
gpu_sched              36864  1 amdgpu
glue_helper            16384  1 aesni_intel
ttm                   114688  1 amdgpu
snd_timer              45056  1 snd_pcm
drm_kms_helper        204800  1 amdgpu
video                  49152  1 asus_wmi
pcc_cpufreq            20480  0
pcspkr                 16384  0
snd                    98304  20 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek,snd_timer,snd_pcm
drm                   487424  12 gpu_sched,drm_kms_helper,amdgpu,ttm
evdev                  24576  31
sg                     36864  0
soundcore              16384  1 snd
i2c_algo_bit           16384  1 amdgpu
sp5100_tco             20480  0
efi_pstore             16384  0
k10temp                16384  0
efivars                20480  1 efi_pstore
fam15h_power           16384  0
button                 16384  0
acpi_cpufreq           28672  0
wmi_bmof               16384  0
mxm_wmi                16384  0
iptable_nat            16384  0
nf_nat_ipv4            16384  3 ipt_MASQUERADE,nft_chain_nat_ipv4,iptable_nat
nf_nat                 36864  1 nf_nat_ipv4
nf_conntrack          159744  4 xt_conntrack,nf_nat,ipt_MASQUERADE,nf_nat_ipv4
nf_defrag_ipv6         24576  1 nf_conntrack
nf_defrag_ipv4         16384  1 nf_conntrack
ecryptfs              122880  0
parport_pc             32768  0
ppdev                  24576  0
nfsd                  425984  13
lp                     20480  0
auth_rpcgss            69632  1 nfsd
nfs_acl                16384  1 nfsd
lockd                 118784  1 nfsd
parport                61440  3 parport_pc,lp,ppdev
grace                  16384  2 nfsd,lockd
sunrpc                421888  18 nfsd,auth_rpcgss,lockd,nfs_acl
efivarfs               16384  1
ip_tables              28672  1 iptable_nat
x_tables               49152  7 xt_conntrack,nft_compat,xt_tcpudp,ipt_MASQUERADE,xt_CHECKSUM,ipt_REJECT,ip_tables
autofs4                49152  2
ext4                  733184  2
crc16                  16384  1 ext4
mbcache                16384  1 ext4
jbd2                  126976  1 ext4
fscrypto               36864  1 ext4
dm_mod                151552  3
hid_generic            16384  0
usbhid                 61440  0
hid                   147456  2 usbhid,hid_generic
raid10                 65536  1
sd_mod                 53248  13
raid456               176128  0
async_raid6_recov      24576  1 raid456
async_memcpy           20480  2 raid456,async_raid6_recov
async_pq               20480  2 raid456,async_raid6_recov
async_xor              20480  3 async_pq,raid456,async_raid6_recov
async_tx               20480  5 async_pq,async_memcpy,async_xor,raid456,async_raid6_recov
xor                    24576  1 async_xor
raid6_pq              122880  3 async_pq,raid456,async_raid6_recov
libcrc32c              16384  3 nf_conntrack,nf_nat,raid456
crc32c_generic         16384  0
raid1                  49152  1
raid0                  24576  1
multipath              20480  0
linear                 20480  0
md_mod                167936  8 raid1,raid10,raid0,linear,raid456,multipath
ohci_pci               20480  0
ahci                   40960  9
libahci                40960  1 ahci
xhci_pci               20480  0
ohci_hcd               57344  1 ohci_pci
ehci_pci               20480  0
libata                278528  2 libahci,ahci
crc32c_intel           24576  3
r8169                  90112  0
xhci_hcd              258048  1 xhci_pci
realtek                20480  1
ehci_hcd               94208  1 ehci_pci
libphy                 86016  2 r8169,realtek
i2c_piix4              28672  0
usbcore               286720  7 xhci_hcd,ohci_hcd,ehci_pci,usbhid,ehci_hcd,xhci_pci,ohci_pci
scsi_mod              241664  3 sd_mod,libata,sg
wmi                    36864  3 asus_wmi,wmi_bmof,mxm_wmi

以下是中的模块配置/etc/modprobe.d/:

blacklist microcode
blacklist radeon
options md_mod start_ro=1
options cirrus modeset=1
options mgag200 modeset=1

我错过了什么?

debian
  • 1 个回答
  • 692 Views
Martin Hope
Lucio Crusca
Asked: 2018-07-21 14:06:27 +0800 CST

cifs、sssd 和 Bionic Beaver 上的 pam_mount 主目录

  • 2

我已经使用sssd配置了一个 Ubuntu Bionic Beaver 客户端来针对 Samba ADS (Zentyal) 进行身份验证。本指南或多或少是到达那里所需要的。编辑:请参阅我的答案以获取“或多或少”含义的引用。EDIT2:提到的指南已(重新?)移动,但无论如何它都无法在 Ubuntu 20.04 和更新版本上运行。

然后我配置了 pam_mount以便将主目录保留在服务器上,而我的客户端安装这些目录以供登录用户使用。它似乎有效,只有在使用 AD 帐户登录时才会出现一些问题。使用本地帐户登录时,一切都按预期工作(但在这种情况下不涉及 pam_mount)。

问题是:

  1. 即使系统全是意大利文,键盘布局也是英文的,输入法配置为意大利文。
  2. 我无法将启动器添加到 Ubuntu Dock(它说已添加,但未显示)
  3. (似乎是 1+2)我无法添加任何新语言,就像我无法将启动器添加到 Dock

这是我的/etc/security/pam_mount.conf.xml:

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd">
<pam_mount>
    <debug enable="0" />
    <volume user="*" fstype="cifs" server="zentyal" path="%(DOMAIN_USER)" mountpoint="/home/%(DOMAIN_USER)" options="sec=ntlmssp,nodev,nosuid,mfsymlinks,nobrl" />
    <mntoptions allow="nosuid,nodev,loop,encryption,fsck,nonempty,allow_root,allow_other" />
    <mntoptions require="nosuid,nodev" />
    <logout wait="0" hup="no" term="no" kill="no" />
    <mkmountpoint enable="1" remove="true" />
</pam_mount>

有什么线索吗?

ubuntu
  • 3 个回答
  • 4253 Views
Martin Hope
Lucio Crusca
Asked: 2018-03-12 13:24:57 +0800 CST

Nginx 作为反向代理不缓存

  • 2

我正在尝试将 Nginx 配置为缓存反向代理。源服务器是 Apache,它托管一个 WordPress 实例,如果这很重要的话。

反向代理功能按预期工作,但缓存似乎不起作用。如果我连续两次获得相同的静态资源,我会获得x-proxy-cache: MISS两次。

assodigitale.it 是域,138.201.87.123 是源服务器 IP 地址,138.201.87.124 是 Nginx 代理 IP 地址。

源服务器似乎回复允许代理缓存资源:

$ curl --connect-to ::138.201.87.123:443 --http2 -I https://assodigitale.it/wp-content/uploads/2018/03/aereo.jpg
HTTP/2 200 
date: Sun, 11 Mar 2018 20:59:39 GMT
server: Apache/2.4.25 (Debian)
content-length: 32989
strict-transport-security: max-age=31536000; includeSubdomains; preload
last-modified: Wed, 07 Mar 2018 09:34:41 GMT
etag: "80dd-566cf44ca2952"
accept-ranges: bytes
vary: Accept-Encoding
cache-control: max-age=1209600, public
x-content-type-options: nosniff
content-type: image/jpeg

正如预期的那样,对代理服务器的第一个请求会导致 MISS:

$ curl --connect-to ::138.201.87.124:443 --http2 -I https://assodigitale.it/wp-content/uploads/2018/03/aereo.jpg
HTTP/2 200 
server: nginx/1.13.9
date: Sun, 11 Mar 2018 21:04:00 GMT
content-type: image/jpeg
content-length: 32989
strict-transport-security: max-age=31536000; includeSubdomains; preload
last-modified: Wed, 07 Mar 2018 09:34:41 GMT
etag: "80dd-566cf44ca2952"
vary: Accept-Encoding
cache-control: max-age=1209600, public
x-content-type-options: nosniff
x-proxy-cache: MISS
strict-transport-security: max-age=4838400; includeSubDomains; preload
accept-ranges: bytes

对 Nginx 代理的第二个请求应该会导致 HIT,但会导致另一个 MISS:

$ curl --connect-to ::138.201.87.124:443 --http2 -I https://assodigitale.it/wp-content/uploads/2018/03/aereo.jpg
HTTP/2 200 
server: nginx/1.13.9
date: Sun, 11 Mar 2018 21:05:52 GMT
content-type: image/jpeg
content-length: 32989
strict-transport-security: max-age=31536000; includeSubdomains; preload
last-modified: Wed, 07 Mar 2018 09:34:41 GMT
etag: "80dd-566cf44ca2952"
vary: Accept-Encoding
cache-control: max-age=1209600, public
x-content-type-options: nosniff
x-proxy-cache: MISS
strict-transport-security: max-age=4838400; includeSubDomains; preload
accept-ranges: bytes

这是我的 nginx 配置的相关部分:

proxy_cache_path /srv/cache/nginx levels=1:2 keys_zone=revproxy:2000m inactive=2880m use_temp_path=off;
proxy_cache_key "$scheme$request_method$host$request_uri";
proxy_cache_methods GET HEAD;
proxy_cache_valid any 1m;
proxy_cache_valid 200 1440m;

server {
    listen 443 ssl http2;
    ssl on;
    server_name assodigitale.it;

    ssl_certificate /etc/letsencrypt/live/assodigitale.it/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/assodigitale.it/privkey.pem;

    ssl_session_timeout 1d;
    ssl_session_cache shared:SSL:50m;
    ssl_session_tickets off;

    ssl_protocols TLSv1.2;
    ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
    ssl_prefer_server_ciphers on;

    location / {
        proxy_cache revproxy;
        add_header X-Proxy-Cache $upstream_cache_status;
        add_header Strict-Transport-Security "max-age=4838400; includeSubDomains; preload";

        proxy_pass  https://138.201.87.123;
        proxy_cache_use_stale updating error timeout http_500 http_502 http_503 http_504;
        proxy_cache_bypass $http_x_forceflushcacheurl;
        proxy_cache_lock on;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_hide_header Upgrade;
        proxy_buffering off;
        proxy_connect_timeout       600;
        proxy_send_timeout          600;
        proxy_read_timeout          600;
        send_timeout                600;
        proxy_ignore_headers Set-Cookie;

        http2_push_preload on;
        client_max_body_size 64M;
    }
}

该/srv/cache/nginx目录有 755 个权限和www-data所有者,Nginx 运行为www-data. 事实上,Nginx 确实在其中写入了它的文件夹,即0 1 2 3 4 5 6 7 8 9 a b c d e f,但是现在占用的总空间是 344Kb,对于一个非常大的站点来说,它的流量远远超过临时流量。

尝试curl上面相同的命令,但使用页面而不是图像,产生相同的结果,它总是一个 MISS。

为什么 Nginx 拒绝缓存资源?

nginx
  • 3 个回答
  • 4475 Views
Martin Hope
Lucio Crusca
Asked: 2018-01-27 05:10:24 +0800 CST

崇光与 Zentyal ADDC

  • 0

我刚刚将 Zentyal 实例从 4.1 升级到 5.0.1。升级后崇光不再让用户登录。用户可以访问其他 Zentyal 服务,如共享和域登录,但 SOGo 拒绝相同的凭据。

我试过/etc/sogo/sogo.conf从旧安装复制到新安装。我也尝试过清除新的sogo和zentyal-sogo软件包,然后再次安装它们,但这会导致更糟糕的情况(没有 Mysql 连接并且整个/etc/sogo/sogo.conf注释掉了)。

在 /var/log/sogo/sogo.log 文件中,我得到:

Jan 31 09:40:41 sogod [13184]: <0x0x561c14f67ce0[LDAPSource]> <NSException: 0x561c155e19b0> NAME:LDAPException REASON:operation bind failed: Invalid credentials (0x31) INFO:{"error_code" = 49; login = "cn=direzione di agape,cn=users,dc=ufficio,dc=lan"; }
Jan 31 09:40:41 sogod [13184]: SOGoRootPage Login from '192.168.1.253' for user 'direzione' might not have worked - password policy: 65535  grace: -1  expire: -1  bound: 0
Jan 31 09:40:41 sogod [13184]: 192.168.1.253 "POST /SOGo/connect HTTP/1.1" 403 34/64 0.028 - - 0

这是我认为是我当前 sogo.conf 的相关部分(在旧版本中工作的那个):

/* LDAP authentication */
  SOGoUserSources = (
      {
          type = ldap;
          id = sambaLogin;
          displayName = "SambaLogin";
          canAuthenticate = YES;
          CNFieldName = cn;
          IDFieldName = cn;
          UIDFieldName = sAMAccountName;
          hostname = "ldap://127.0.0.1";
          baseDN = "DC=ufficio,DC=lan";
          bindDN = "CN=zentyal-mail-barth,CN=Users,DC=ufficio,DC=lan";
          bindPassword = "mWaByi97SfgLAWZQ49GS";
          bindFields = (sAMAccountName, mail);
          filter = "(mail='*')";
          MailFieldNames = (mail, otherMailbox);
      },
      {
          type = ldap;
          id = sambaShared;
          displayName = "Shared Addressbook";
          canAuthenticate = NO;
          isAddressBook = YES;
          CNFieldName = cn;
          IDFieldName = mail;
          UIDFieldName = mail;
          hostname = "ldap://127.0.0.1";
          baseDN = "DC=ufficio,DC=lan";
          bindDN = "CN=zentyal-mail-barth,CN=Users,DC=ufficio,DC=lan";
          bindPassword = "mWaByi97SfgLAWZQ49GS";
          filter = "((NOT isCriticalSystemObject='TRUE') AND     (mail=\'*\') AND (NOT objectClass=contact))";
          MailFieldNames = (mail, otherMailbox);
      },
      {
          type = ldap;
          id = sambaContacts;
          displayName = "Shared Contacts";
          canAuthenticate = NO;
          isAddressBook = YES;
          CNFieldName = cn;
          IDFieldName = mail;
          UIDFieldName = mail;
          hostname = "ldap://127.0.0.1";
          baseDN = "DC=ufficio,DC=lan";
          bindDN = "CN=zentyal-mail-barth,CN=Users,DC=ufficio,DC=lan";
          bindPassword = "mWaByi09SfgLAWZQ49GS";
          filter = "((((objectClass=person) AND (objectClass=contact)     AND ((uidNumber>=2000) OR (mail=\'*\'))) AND (NOT isCriticalSystemObject='TRUE') AND (NOT showInAdvancedViewOnly='TRUE') AND (NOT uid=Guest)) OR (((objectClass=group) AND (gidNumber>=2000)) AND (NOT isCriticalSystemObject='TRUE') AND (NOT showInAdvancedViewOnly='TRUE')))";
          mapping = {
              displayname = ("cn");
          };
          MailFieldNames = (mail, otherMailbox);
      }
  );

  /* Web Interface */
  SOGoPageTitle = "Zentyal Webmail";
  SOGoVacationEnabled = NO;
  SOGoForwardEnabled = YES;
  SOGoSieveScriptsEnabled = YES;

你能帮我找出问题吗?

编辑:看这里,如果我正确理解错误报告,似乎我需要编辑我sogo.conf的,因为 SOGo 在版本 3.0.2 和版本 3.2.4 之间的某个时间引入了更改。这可能是罪魁祸首,因为 Zentyal 4.1 捆绑了 SOGo 2.3.2,而 Zentyal 5 捆绑了 SOGo 3.2.10。但是,即使假设这是问题所在,我也不明白我应该如何编辑我的sogo.conf...

编辑 2:我发现这个命令可以提供一些启示,只要我能够理解它的输出......我想它通过阅读配置文件显示了 SOGo 理解的内容,但我不知道大多数的含义设置:

root@barth:~# sogo-tool dump-defaults all
{
    DAVParserDebugProp = NO;
    "GNUSTEP_LOCAL_ADMIN_APPS" = "/usr/local/lib/GNUstep/Applications";
    "GNUSTEP_LOCAL_ADMIN_TOOLS" = "/usr/local/sbin";
    "GNUSTEP_LOCAL_APPS" = "/usr/local/lib/GNUstep/Applications";
    "GNUSTEP_LOCAL_DOC" = "/usr/local/share/GNUstep/Documentation";
    "GNUSTEP_LOCAL_DOC_INFO" = "/usr/local/share/info";
    "GNUSTEP_LOCAL_DOC_MAN" = "/usr/local/share/man";
    "GNUSTEP_LOCAL_HEADERS" = "/usr/local/include/GNUstep";
    "GNUSTEP_LOCAL_LIBRARIES" = "/usr/local/lib";
    "GNUSTEP_LOCAL_LIBRARY" = "/usr/local/lib/GNUstep";
    "GNUSTEP_LOCAL_ROOT" = "/usr/Local";
    "GNUSTEP_LOCAL_TOOLS" = "/usr/local/bin";
    "GNUSTEP_LOCAL_USERS_DIR" = "/home";
    "GNUSTEP_LOCAL_WEB_APPS" = "/usr/local/lib/GNUstep/WebApplications";
    "GNUSTEP_MAKEFILES" = "/usr/share/GNUstep/Makefiles";
    "GNUSTEP_NETWORK_ADMIN_APPS" = "/usr/local/lib/GNUstep/Applications";
    "GNUSTEP_NETWORK_ADMIN_TOOLS" = "/usr/local/sbin";
    "GNUSTEP_NETWORK_APPS" = "/usr/local/lib/GNUstep/Applications";
    "GNUSTEP_NETWORK_DOC" = "/usr/local/share/GNUstep/Documentation";
    "GNUSTEP_NETWORK_DOC_INFO" = "/usr/local/share/info";
    "GNUSTEP_NETWORK_DOC_MAN" = "/usr/local/share/man";
    "GNUSTEP_NETWORK_HEADERS" = "/usr/local/include/GNUstep";
    "GNUSTEP_NETWORK_LIBRARIES" = "/usr/local/lib";
    "GNUSTEP_NETWORK_LIBRARY" = "/usr/local/lib/GNUstep";
    "GNUSTEP_NETWORK_ROOT" = "/usr/Network";
    "GNUSTEP_NETWORK_TOOLS" = "/usr/local/bin";
    "GNUSTEP_NETWORK_USERS_DIR" = "/home";
    "GNUSTEP_NETWORK_WEB_APPS" = "/usr/lib/GNUstep/WebApplications";
    "GNUSTEP_SYSTEM_ADMIN_APPS" = "/usr/lib/GNUstep/Applications";
    "GNUSTEP_SYSTEM_ADMIN_TOOLS" = "/usr/sbin";
    "GNUSTEP_SYSTEM_APPS" = "/usr/lib/GNUstep/Applications";
    "GNUSTEP_SYSTEM_DOC" = "/usr/share/GNUstep/Documentation";
    "GNUSTEP_SYSTEM_DOC_INFO" = "/usr/share/info";
    "GNUSTEP_SYSTEM_DOC_MAN" = "/usr/share/man";
    "GNUSTEP_SYSTEM_HEADERS" = "/usr/include/GNUstep";
    "GNUSTEP_SYSTEM_LIBRARIES" = "/usr/lib";
    "GNUSTEP_SYSTEM_LIBRARY" = "/usr/lib/GNUstep";
    "GNUSTEP_SYSTEM_ROOT" = "/usr/System";
    "GNUSTEP_SYSTEM_TOOLS" = "/usr/bin";
    "GNUSTEP_SYSTEM_USERS_DIR" = "/home";
    "GNUSTEP_SYSTEM_WEB_APPS" = "/usr/lib/GNUstep/WebApplications";
    "GNUSTEP_USER_CONFIG_FILE" = ".GNUstep.conf";
    "GNUSTEP_USER_DEFAULTS_DIR" = "GNUstep/Defaults";
    "GNUSTEP_USER_DIR" = GNUstep;
    "GNUSTEP_USER_DIR_ADMIN_APPS" = "GNUstep/Applications/Admin";
    "GNUSTEP_USER_DIR_ADMIN_TOOLS" = "GNUstep/Tools/Admin";
    "GNUSTEP_USER_DIR_APPS" = "GNUstep/Applications";
    "GNUSTEP_USER_DIR_DOC" = "GNUstep/Library/Documentation";
    "GNUSTEP_USER_DIR_DOC_INFO" = "GNUstep/Library/Documentation/info";
    "GNUSTEP_USER_DIR_DOC_MAN" = "GNUstep/Library/Documentation/man";
    "GNUSTEP_USER_DIR_HEADERS" = "GNUstep/Library/Headers";
    "GNUSTEP_USER_DIR_LIBRARIES" = "GNUstep/Library/Libraries";
    "GNUSTEP_USER_DIR_LIBRARY" = "GNUstep/Library";
    "GNUSTEP_USER_DIR_TOOLS" = "GNUstep/Tools";
    "GNUSTEP_USER_DIR_WEB_APPS" = "GNUstep/WebApplications";
    GSLocale = "it_CH.UTF-8";
    ImapDebugEnabled = YES;
    LDAPDebugEnabled = YES;
    MySQL4DebugEnabled = YES;
    NGImap4ConnectionGroupIdPrefix = "$";
    NGImap4ConnectionStringSeparator = "/";
    NGImap4DisableIMAP4Pooling = YES;
    NGLogDefaultAppenderClass = NGLogStderrAppender;
    NGLogDefaultLogEventFormatterClass = NGLogEventDetailedFormatter;
    NGLogDefaultLogLevel = INFO;
    "NGObjWeb_doc_" = "NSUserDefaults for NGObjWeb";
    NGUseUTF8AsURLEncoding = YES;
    NSAMPMDesignation = (
  "",
  ""
    );
    NSCurrencySymbol = "Fr.";
    NSDateFormatString = "%A %d %B %Y";
    NSDateTimeOrdering = DMYH;
    NSDecimalDigits = (
  0,
  1,
  2,
  3,
  4,
  5,
  6,
  7,
  8,
  9
    );
    NSDecimalSeparator = ".";
    NSEarlierTimeDesignations = (
  prima,
  passato,
  fa
    );
    NSFormalName = Italiano;
    NSHourNameDesignations = (
  (
      0,
      mezzanotte
  ),
  (
      12,
      mezzogiorno
  ),
  (
      10,
      mattina
  ),
  (
      14,
      pomeriggio
  ),
  (
      19,
      sera
  )
    );
    NSInternationalCurrencyString = "'";
    NSLanguageCode = ITA;
    NSLanguageName = SwitzerlandItalian;
    NSLanguages = (
  SwitzerlandItalian,
  Italian,
  English
    );
    NSLaterTimeDesignations = (
  dopo,
  prossimo
    );
    NSMonthNameArray = (
  gennaio,
  febbraio,
  marzo,
  aprile,
  maggio,
  giugno,
  luglio,
  agosto,
  settembre,
  ottobre,
  novembre,
  dicembre
    );
    NSNegativeCurrencyFormatString = "EUR-9,999.00";
    NSNextDayDesignations = (
  domani
    );
    NSNextNextDayDesignations = (
  "il giorno seguente"
    );
    NSParentContext = Default;
    NSPositiveCurrencyFormatString = "EUR9,999.00";
    NSPriorDayDesignations = (
  ieri
    );
    NSShortDateFormatString = "%d. %m. %y";
    NSShortMonthNameArray = (
  gen,
  feb,
  mar,
  apr,
  mag,
  giu,
  lug,
  ago,
  set,
  ott,
  nov,
  dic
    );
    NSShortTimeDateFormatString = "%d %b %Y %H:%M";
    NSShortWeekDayNameArray = (
  dom,
  lun,
  mar,
  mer,
  gio,
  ven,
  sab
    );
    NSThisDayDesignations = (
  oggi
    );
    NSThousandsSeparator = "'";
    NSTimeDateFormatString = "%a %d %b %Y %T %Z";
    NSTimeFormatString = "%T";
    NSWeekDayNameArray = (
  domenica,
  "luned\U00EC",
  "marted\U00EC",
  "mercoled\U00EC",
  "gioved\U00EC",
  "venerd\U00EC",
  sabato
    );
    NSYearMonthWeekDesignations = (
  anno,
  mese,
  settimana
    );
    OCSFolderInfoURL = "mysql://sogo:AGJBm5JQ@127.0.0.1:3306/sogo/sogo_folder_info";
    OCSSessionsFolderURL = "mysql://sogo:AGJBm5JQ@127.0.0.1:3306/sogo/sogo_sessions_folder";
    PGDebugEnabled = YES;
    SOGoACLsSendEMailNotifications = NO;
    SOGoAddressBookDAVAccessEnabled = YES;
    SOGoAlternateAvatar = none;
    SOGoAnimationMode = normal;
    SOGoAppointmentSendEMailNotifications = YES;
    SOGoCacheCleanupInterval = "300.0";
    SOGoCalendarCategories = (
  Customer,
  Calls,
  Favorites,
  Meeting,
  Ideas,
  Miscellaneous,
  Birthday,
  Anniversary,
  Vacation,
  Travel,
  Projects,
  Suppliers,
  Gifts,
  Clients,
  Issues,
  Business,
  Holidays,
  Personal,
  Status,
  Competition,
  "Follow up",
  "Public Holiday"
    );
    SOGoCalendarCategoriesColors = {
  Anniversary = "#CCCCCC";
  Birthday = "#CCCCCC";
  Business = "#CCCCCC";
  Calls = "#FFCC33";
  Clients = "#CCCCCC";
  Competition = "#CCCCCC";
  Customer = "#CCCCCC";
  Favorites = "#CCCCCC";
  "Follow up" = "#CCCCCC";
  Gifts = "#CCCCCC";
  Holidays = "#CCCCCC";
  Ideas = "#CCCCCC";
  Issues = "#CCCCCC";
  Meeting = "#CCCCCC";
  Miscellaneous = "#CCCCCC";
  Personal = "#CCCCCC";
  Projects = "#CCCCCC";
  "Public Holiday" = "#CCCCCC";
  Status = "#CCCCCC";
  Suppliers = "#CCCCCC";
  Travel = "#CCCCCC";
  Vacation = "#CCCCCC";
    };
    SOGoCalendarDAVAccessEnabled = YES;
    SOGoCalendarDefaultReminder = NONE;
    SOGoCalendarEventsDefaultClassification = PUBLIC;
    SOGoCalendarShouldDisplayWeekend = YES;
    SOGoCalendarTasksDefaultClassification = PUBLIC;
    SOGoDayEndTime = 18;
    SOGoDayStartTime = 8;
    SOGoDebugRequests = YES;
    SOGoDefaultCalendar = selected;
    SOGoDraftsFolderName = Drafts;
    SOGoEnableDomainBasedUID = NO;
    SOGoEncryptionKey = MySOGoEncryptionKey;
    SOGoExternalAvatarsEnabled = YES;
    SOGoFirstDayOfWeek = 0;
    SOGoFirstWeekOfYear = January1;
    SOGoForceExternalLoginWithEmail = YES;
    SOGoForwardEnabled = YES;
    SOGoFreeBusyDefaultInterval = (
  7,
  7
    );
    SOGoGravatarEnabled = NO;
    SOGoIMAPServer = "127.0.0.1:143";
    SOGoJunkFolderName = Junk;
    SOGoLDAPContactInfoAttribute = description;
    SOGoLDAPQueryLimit = 0;
    SOGoLDAPQueryTimeout = 0;
    SOGoLanguage = English;
    SOGoLoginModule = Mail;
    SOGoLongDateFormat = "%A, %B %d, %Y";
    SOGoMailAutoSave = 5;
    SOGoMailComposeFontSize = 0;
    SOGoMailComposeMessageType = html;
    SOGoMailCustomFromEnabled = YES;
    SOGoMailDisplayRemoteInlineImages = never;
    SOGoMailDomain = "ufficio.lan";
    SOGoMailLabelsColors = {
  "$label1" = (
      Important,
      "#FF0000"
  );
  "$label2" = (
      Work,
      "#FF9900"
  );
  "$label3" = (
      Personal,
      "#009900"
  );
  "$label4" = (
      "To Do",
      "#3333FF"
  );
  "$label5" = (
      Later,
      "#993399"
  );
    };
    SOGoMailListViewColumnsOrder = (
  Thread,
  Flagged,
  Attachment,
  Subject,
  From,
  Unread,
  Date,
  Priority,
  Size
    );
    SOGoMailMessageForwarding = inline;
    SOGoMailReplyPlacement = below;
    SOGoMailSignaturePlacement = below;
    SOGoMailSpoolPath = "/var/spool/sogo";
    SOGoMailingMechanism = smtp;
    SOGoMemcachedHost = localhost;
    SOGoPageTitle = "Zentyal Webmail";
    SOGoPasswordChangeEnabled = YES;
    SOGoProfileURL = "mysql://sogo:AGJBm5JQ@127.0.0.1:3306/sogo/sogo_user_profile";
    SOGoRefreshViewCheck = manually;
    SOGoRefreshViewIntervals = (
  1,
  2,
  5,
  10,
  20,
  30,
  60
    );
    SOGoSMTPServer = "127.0.0.1:25";
    SOGoSearchMinimumWordLength = 2;
    SOGoSelectedAddressBook = collected;
    SOGoSentFolderName = Sent;
    SOGoShortDateFormat = "%d-%b-%y";
    SOGoSieveFolderEncoding = "UTF-7";
    SOGoSieveScriptsEnabled = YES;
    SOGoSieveServer = "sieve://127.0.0.1:4190";
    SOGoSubscriptionFolderFormat = "%{FolderName} (%{UserName} <%{Email}>)";
    SOGoSupportedLanguages = (
  Arabic,
  Basque,
  BrazilianPortuguese,
  Catalan,
  ChineseChina,
  ChineseTaiwan,
  Croatian,
  Czech,
  Danish,
  Dutch,
  English,
  Finnish,
  French,
  German,
  Hebrew,
  Hungarian,
  Icelandic,
  Italian,
  Latvian,
  Lithuanian,
  Macedonian,
  NorwegianBokmal,
  NorwegianNynorsk,
  Polish,
  Portuguese,
  Russian,
  Serbian,
  Slovak,
  Slovenian,
  SpanishArgentina,
  SpanishSpain,
  Swedish,
  TurkishTurkey,
  Ukrainian,
  Welsh
    );
    SOGoTimeFormat = "%H:%M";
    SOGoTimeZone = "Europe/Rome";
    SOGoTrashFolderName = Trash;
    SOGoUIxDebugEnabled = YES;
    SOGoUserSources = (
  {
      CNFieldName = cn;
      IDFieldName = cn;
      MailFieldNames = (
    mail,
    otherMailbox
      );
      UIDFieldName = sAMAccountName;
      baseDN = "DC=ufficio,DC=lan";
      bindDN = "CN=zentyal-mail-barth,CN=Users,DC=ufficio,DC=lan";
      bindFields = (
    sAMAccountName,
    mail
      );
      bindPassword = mWaByi97SfgLAWZQ49GS;
      canAuthenticate = YES;
      displayName = SambaLogin;
      filter = "(mail='*')";
      hostname = "ldap://127.0.0.1";
      id = sambaLogin;
      type = ldap;
  },
  {
      CNFieldName = cn;
      IDFieldName = mail;
      MailFieldNames = (
    mail,
    otherMailbox
      );
      UIDFieldName = mail;
      baseDN = "DC=ufficio,DC=lan";
      bindDN = "CN=zentyal-mail-barth,CN=Users,DC=ufficio,DC=lan";
      bindPassword = mWaByi97SfgLAWZQ49GS;
      canAuthenticate = NO;
      displayName = "Shared Addressbook";
      filter = "((NOT isCriticalSystemObject='TRUE') AND (mail='*') AND (NOT objectClass=contact))";
      hostname = "ldap://127.0.0.1";
      id = sambaShared;
      isAddressBook = YES;
      type = ldap;
  },
  {
      CNFieldName = cn;
      IDFieldName = mail;
      MailFieldNames = (
    mail,
    otherMailbox
      );
      UIDFieldName = mail;
      baseDN = "DC=ufficio,DC=lan";
      bindDN = "CN=zentyal-mail-barth,CN=Users,DC=ufficio,DC=lan";
      bindPassword = mWaByi97SfgLAWZQ49GS;
      canAuthenticate = NO;
      displayName = "Shared Contacts";
      filter = "((((objectClass=person) AND (objectClass=contact) AND ((uidNumber>=2000) OR (mail='*'))) AND (NOT isCriticalSystemObject='TRUE') AND (NOT showInAdvancedViewOnly='TRUE') AND (NOT uid=Guest)) OR (((objectClass=group) AND (gidNumber>=2000)) AND (NOT isCriticalSystemObject='TRUE') AND (NOT showInAdvancedViewOnly='TRUE')))";
      hostname = "ldap://127.0.0.1";
      id = sambaContacts;
      isAddressBook = YES;
      mapping = {
    displayname = (
        cn
    );
      };
      type = ldap;
  }
    );
    SOGoVacationEnabled = NO;
    SOGoWebAccessEnabled = YES;
    SOGoXSRFValidationEnabled = NO;
    SOGoZipPath = "/usr/bin/zip";
    SoClassRegistryDebugEnabled = NO;
    SoDebugBaseURL = YES;
    SoDebugKeyLookup = NO;
    SoDebugProductLoading = NO;
    SoDebugProductRegistry = NO;
    SoDebugRequestClassification = NO;
    SoDebugTraversal = NO;
    SoDefaultWebDAVPropertyNames = (
  "{DAV:}creationdate",
  "{DAV:}getcontentlength",
  "{DAV:}getlastmodified",
  "{DAV:}getetag",
  "{DAV:}resourcetype",
  "{DAV:}getcontenttype",
  "{DAV:}displayname",
  "{DAV:}href",
  "{http://apache.org/dav/props/}executable"
    );
    SoLogSecurityDeclarations = NO;
    SoOFSDebugAuthLookup = NO;
    SoOFSDebugFactory = NO;
    SoOFSDebugNegotiate = NO;
    SoOFSDebugPlistObject = NO;
    SoOFSDebugRestore = NO;
    SoOFSResourceManagerDebugEnabled = NO;
    SoOFSWebMethodDebugEnabled = NO;
    SoObjCClassDebugEnabled = NO;
    SoObjectDAVDispatcherDebugEnabled = NO;
    SoObjectDataSourceDebugEnabled = NO;
    SoObjectMethodDispatcherDebugEnabled = NO;
    SoObjectRequestHandlerDebugEnabled = NO;
    SoObjectSOAPDispatcherDebugEnabled = NO;
    SoObjectXmlRpcDispatcherDebugEnabled = NO;
    SoPageInvocationDebugEnabled = NO;
    SoPreferredNamespacePrefixes = {
  "DAV:" = D;
  "http://apache.org/dav/props/" = ap;
  "http://schemas.microsoft.com/exchange/" = X;
  "http://schemas.microsoft.com/hotmail/" = hm;
  "http://schemas.microsoft.com/mapi/proptag/" = pt;
  "http://webdav.org/cadaver/custom-properties/" = cdv;
  "http://www.ietf.org/internet-drafts/draft-ietf-calsch-many-xcal-01.txt" = xcal;
  "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" = xul;
  "http://www.skyrix.com/od/binding" = var;
  "http://www.skyrix.com/od/constant" = const;
  "http://www.skyrix.com/od/javascript" = js;
  "http://www.w3.org/1999/02/22-rdf-syntax-ns#" = RDF;
  "http://www.w3.org/1999/XSL/Transform" = xsl;
  "http://www.w3.org/1999/xhtml" = html;
  "http://www.w3.org/1999/xlink" = xlink;
  "http://www.w3.org/TR/REC-html40" = html4;
  "http://www.wapforum.org/DTD/wml_1.2.xml" = wml;
  "urn:schemas:calendar:" = C;
  "urn:schemas:contacts:" = A;
    };
    SoProductResourceManagerDebugEnabled = NO;
    SoRedirectToDefaultMethods = YES;
    SoRendererDebugEnabled = NO;
    SoRequestDispatcherRules = (
  "context.soRequestType='WebDAV'  => renderer = 'SoWebDAVRenderer' ; high",
  "context.soRequestType='XML-RPC' => renderer = 'SoXmlRpcRenderer' ; high",
  "context.soRequestType='SOAP'    => renderer = 'SoSOAPRenderer' ;   high",
  "*true* => renderer = 'SoDefaultRenderer' ; fallback",
  "request.isSoSOAPRequest=YES   => dispatcher = 'SoObjectSOAPDispatcher'",
  "request.isSoWebDAVRequest=YES => dispatcher = 'SoObjectWebDAVDispatcher'",
  "request.isSoXmlRpcRequest=YES => dispatcher = 'SoObjectXmlRpcDispatcher'",
  "*true* => dispatcher = 'SoObjectMethodDispatcher'; fallback",
  "request.isSoSOAPRequest=YES   => requestType = 'SOAP'",
  "request.isSoWebDAVRequest=YES => requestType = 'WebDAV'",
  "request.isSoXmlRpcRequest=YES => requestType = 'XML-RPC'",
  "*true*                        => requestType = 'METHOD'; fallback",
  "request.isSoWebDAVRequest=YES => useAcquisition = NO",
  "headers.translate='f'         => useAcquisition = NO; high",
  "method='GET'                  => useAcquisition = YES; low",
  "method='HEAD'                 => useAcquisition = YES; low",
  "method='POST'                 => useAcquisition = YES; low",
  "*true*                        => useAcquisition = NO; fallback"
    );
    SoSecurityManagerDebugEnabled = NO;
    SoWebDAVDefaultAllowMethods = (
  GET,
  HEAD,
  POST,
  OPTIONS,
  MKCOL,
  MKCALENDAR,
  DELETE,
  PUT,
  LOCK,
  UNLOCK,
  COPY,
  MOVE,
  REPORT
    );
    SoWebDAVDetectionMethods = (
  OPTIONS,
  MKCOL,
  MKCALENDAR,
  PROPFIND,
  PROPPATCH,
  DELETE,
  PUT,
  LOCK,
  UNLOCK,
  COPY,
  MOVE,
  SEARCH,
  NOTIFY,
  POLL,
  SUBSCRIBE,
  UNSUBSCRIBE,
  BCOPY,
  BDELETE,
  BMOVE,
  BPROPFIND,
  BPROPPATCH
    );
    SoWebDAVDisableCrossHostMoveCheck = NO;
    SoWebDAVFormatOutput = NO;
    SxVMemLimit = 384;
    WOAdaptor = WOHttpAdaptor;
    WOAdaptorLogPath = "";
    WOAdditionalAdaptors = (
    );
    WOApplicationBaseURL = "/WebObjects";
    WOApplicationSuffix = ".woa";
    WOAutoOpenInBrowser = NO;
    WOCGIAdaptorURL = "http://localhost/cgi-bin/WebObjects";
    WOCachingEnabled = YES;
    WOComponentExtensions = (
  wo
    );
    WOComponentLoadWOOFiles = NO;
    WOComponentRequestHandlerKey = wo;
    WOCompoundElementPool = NO;
    WOContextClass = WOContext;
    WOCoreOnApplicationException = NO;
    WOCoreOnAwakeComponentInCtxDealloc = NO;
    WOCoreOnHTTPAdaptorException = NO;
    WOCoreOnRecursiveSubcomponents = NO;
    WOCoreOnXmlRpcFault = NO;
    WODebugActions = NO;
    WODebugComponentAwake = NO;
    WODebugComponentDefinition = NO;
    WODebugComponentLookup = NO;
    WODebugCursor = NO;
    WODebugHttpTransaction = NO;
    WODebugKeyPathAssociation = NO;
    WODebugResourceLookup = NO;
    WODebugStaticLinkProcessing = NO;
    WODebugTakeValues = NO;
    WODebugZipResponse = NO;
    WODebuggingEnabled = NO;
    WODefaultLanguages = (
    );
    WODefaultResourceManager = WOResourceManager;
    WODefaultSessionTimeOut = 3600;
    WODescriptiveElementIDs = NO;
    WODirectActionRequestHandlerKey = x;
    WODontZipResponse = YES;
    WOEnableComponentsWithoutClasses = NO;
    WOExpirationTimeInterval = 120;
    WOFormAlwaysPassDown = YES;
    WOFrameworksBaseURL = "/WebObjects/Frameworks";
    WOGenerateMissingResourceLinks = NO;
    WOHTTPAdaptorCapitalizeHeaders = YES;
    WOHttpAdaptorForkCount = 0;
    WOHttpAdaptorReceiveTimeout = 120;
    WOHttpAdaptorSendTimeout = 120;
    "WOHttpAdaptor_LogStream" = NO;
    WOHttpAllowHost = (
    );
    WOHttpTransactionLoggerConfig = {
  Appenders = (
      {
    Class = NGLogStdoutAppender;
    Formatter = {
        Class = NGLogEventDetailedFormatter;
    };
      }
  );
    };
    WOHttpTransactionUseSimpleParser = NO;
    WOIncludeCommentsInResponse = YES;
    WOIsRedirectionEnabled = NO;
    WOKeyPathAssociationsCacheSize = 200;
    WOListenQueueSize = 5;
    WOLogComponents = NO;
    WOLogDefaultsOnStartup = NO;
    WOLogFile = "/var/log/sogo/sogo.log";
    WOLogPageCache = NO;
    WOLogScriptDealloc = NO;
    WOLogScriptInit = NO;
    WOLogScriptKVC = NO;
    WOLogXmlRpcSelectorMapping = NO;
    WOMessageUseUTF8 = YES;
    WONoProxySuffixes = (
    );
    WONoSelectionString = WONoSelectionString;
    WOOutputValidationEnabled = NO;
    WOPageCacheSize = 30;
    WOPageRefreshOnBacktrack = YES;
    WOPageRequestHandlerDebugEnabled = NO;
    WOParsersUseUTF8 = YES;
    WOPermanentPageCacheSize = 30;
    WOPidFile = "/var/run/sogo/sogo.pid";
    WOPort = "127.0.0.1:20000";
    WOProfileApplication = NO;
    WOProfileComponents = NO;
    WOProfileDirectActionRequestHandler = NO;
    WOProfileElements = NO;
    WOProfileHttpAdaptor = NO;
    WOProfileLoading = NO;
    WOProfileResponse = NO;
    WOProjectSearchPath = (
    );
    WORedirectURISafetySuffix = "/view/view/view/view";
    WOResourceRequestHandlerKey = y;
    WOResourceURLAssociationDebugEnabled = NO;
    WORunMultithreaded = NO;
    WOSMTPHost = mail;
    WOSendMail = "/usr/lib/sendmail";
    WOSessionStore = WOServerSessionStore;
    WOSimpleHTTPParserDebugEnabled = NO;
    WOSimpleHTTPParserFileIOBoundary = 16384;
    WOSimpleHTTPParserHeavyDebugEnabled = NO;
    WOSimpleHTTPParserMaxUploadSizeInKB = 262144;
    WOStatsStylesheetName = "WOStats.xsl";
    WOSubmitButtonEnableValueSync = NO;
    WOUseGlobalCookiePath = YES;
    WOUseRelativeURLs = YES;
    WOValueAssociationsCacheSize = 200;
    WOWatchDogRequestTimeout = 10;
    WOWorkerThreadCount = 0;
    WOWorkersCount = 1;
    WOxAssociationClassMapping = {
  "OGo:bind" = WOKeyPathAssociation;
  "OGo:bool" = WOBoolAssociation;
  "OGo:label" = WOLabelAssociation;
  "OGo:path" = SoLookupAssociation;
  "OGo:script" = WOScriptAssociation;
  "OGo:url" = WOResourceURLAssociation;
  "OGo:value" = WOValueAssociation;
  "http://www.skyrix.com/od/binding" = WOKeyPathAssociation;
  "http://www.skyrix.com/od/constant" = WOValueAssociation;
  "http://www.skyrix.com/od/javascript" = WOScriptAssociation;
  "http://www.skyrix.com/od/so-lookup" = SoLookupAssociation;
    };
    WOxBuilderClasses = (
  WOxTalElemBuilder,
  WOxControlElemBuilder,
  WOxMiscElemBuilder,
  WOxHTMLElemBuilder,
  WOxXULElemBuilder,
  WExCalElemBuilder,
  WExDnDElemBuilder,
  WExExtElemBuilder,
  WOxExtElemBuilder,
  WOxComponentElemBuilder
    );
    WOxComponentElemBuilderDebugEnabled = NO;
    "WOxElemBuilder_LogAssociationCreation" = NO;
    "WOxElemBuilder_LogAssociationMapping" = NO;
    WOxFileExtensions = (
  wox,
  xtmpl,
  xhtml
    );
    WOxLogBuilderQueue = NO;
}

编辑 3:我尝试清除 SOGo 并再次安装它,然后在 Zentyal 控制面板中再次激活它。这次 Zentyal 正确配置了 SOGo MySQL 连接,这样至少 SOGo 启动了,但是登录问题依然存在。

编辑 4:我从上面的日志文件中又添加了一行,也许有帮助

authentication
  • 1 个回答
  • 1515 Views
Martin Hope
Lucio Crusca
Asked: 2017-04-10 03:46:40 +0800 CST

ssh 配置文件环境变量?

  • 8

在我的管理工作期间,我需要登录多个远程 ssh 服务器。我使用三台不同的计算机客户端,它们都是 Debian GNU/Linux 系统。我保留了一个工作区目录,其中放置了完成工作所需的所有内容,并且该目录除其他外包含一个bashrc文件和一个ssh_config文件。

rsync当我移动并开始使用不同的客户端时,我手动将该目录内容与从一台客户端计算机使用到其他计算机的脚本同步。

三个客户端中的每一个上的本地用户都需要最少的配置,因此如果我需要创建新的本地用户或重新安装客户端,我只需到rsync工作区并workspace/bashrc在真实用户的$HOME/.bashrc. 我的自定义workspace/bashrc创建了几个别名,无论我使用的是什么客户端,我都会得到我常用的环境。

我的自定义workspace/bashrc创建别名以这种方式连接到远程服务器:

alias s1='ssh -F ~/workspace/etc/ssh_config server1.example.com'

s1我只需输入任何客户端的终端即可登录到 server1 ,因为我的自定义ssh_config设置了所需的公钥身份验证选项、正确的端口 server1 正在侦听和正确的用户。

现在这就像一个魅力,只要ssh命令是我需要的。不幸的是,一旦我需要另一个反过来使用的命令ssh,事情就会变得更加混乱。

例如,如果我需要对rsync其中一台服务器进行任何操作,我不得不编写整个 ssh 命令:

rsync -Pavz --delete -e "ssh -F $HOME/workspace/etc/ssh_config" ...

类似的事情发生在其他命令上,例如scp,ssh-copy-id和其他。

我希望能够写作

rsync -Pavz --delete -e "ssh" ...

相反,并让 ssh 从环境变量中获取它的配置文件名,这样我就可以在我的bashrc和每个ssh调用中自动设置该环境变量。

是否有这样的环境变量或者有不同的解决方案?

linux
  • 1 个回答
  • 9927 Views
Martin Hope
Lucio Crusca
Asked: 2017-01-09 08:35:20 +0800 CST

htaccess 301 从目录重定向到文件

  • 1

我继承了一个站点(一个vbulletin论坛)并将其从另一个主机迁移到我的,通过使用scp命令复制所有内容。根目录有以下内容.htaccess

RewriteOptions inherit

RewriteEngine on
RewriteCond %{HTTP_HOST} ^.*$
RewriteRule ^/?$ "http\:\/\/example\.com\/forums\/content\/" [R=301,L]

我不知道这应该如何工作,但它确实有效,不管该/forums/content/文件夹不存在。但是,一旦转移到我的主机,它就停止工作,产生 404 错误。由于/forums/content.php文件存在,所以我编辑了.htaccess这样的:

RewriteOptions inherit

RewriteEngine on
RewriteCond %{HTTP_HOST} ^.*$
RewriteRule ^/?$ "http\:\/\/example\.com\/forums\/content.php" [R=301,L]

content.php现在它可以工作了,但有一个小故障:我的浏览器(以及所有其他论坛用户浏览器)正在缓存以前的 301 重定向,因此只有在我清除浏览器缓存(一次)或输入URL时,我才能访问和使用论坛手动(每次)。

我已经尝试了通过添加to来添加重定向 from /forums/content/to的解决方法:/forums/content.phpRewriteRule.htaccess

RewriteOptions inherit

RewriteEngine on
RewriteCond %{HTTP_HOST} ^.*$
RewriteRule ^/forums/content/$ "http\:\/\/example\.com\/forums\/content.php" [R=301,L]
RewriteRule ^/?$ "http\:\/\/example\.com\/forums\/content.php" [R=301,L]

但是,似乎该规则被忽略了,因为浏览器仍然在/forums/content/目录上收到 404 错误并且它不会重定向到content.php. 我究竟做错了什么?

rewrite .htaccess vbulletin
  • 1 个回答
  • 2386 Views
Martin Hope
Lucio Crusca
Asked: 2016-08-11 22:55:45 +0800 CST

什么是重定向到 https?

  • 0

我正在尝试将 nginx 配置为运行 Apache + Wordpress 并配置为将所有 HTTP 流量重定向到 HTTPS 的网站的反向代理(缓存)。为此,我试图在 Apache/Wordpress(源服务器)中禁用 HTTPS 重定向。

更不用说 nginx了,源服务器 (Apache) 的工作副本位于http://test.assodigitale.it:14580,这是我到目前为止所做的:

  1. 从虚拟主机中删除了“重定向 301 https://...”
  2. 删除 .htaccess
  3. 禁用所有 WP 插件
  4. 用 替换数据库中的所有https://test.assodigitale匹配http://test.assodigitale项,包括序列化的 Wordpress 字符串
  5. 禁用 mod_http2
  6. Protocols h2 h2c http/1.1从 apache 配置中注释掉
  7. 检查没有HSTS配置到位

然而,我得到的只是服务器只回复纯 HTTP,但浏览器重定向到 HTTPS 仍在发生,它会导致您通过单击上面的链接看到明显的 SSL 错误。

我忽略了一些东西,但我不明白什么,我不知道如何跟踪浏览器和服务器之间的通信来确定有罪的配置。你能帮忙吗?

评论后编辑:

我正在使用 Apache,因为我需要它的原因超出了这个问题的范围。我知道我可以只用 nginx 做所有事情,但是在考虑问题时请忽略 nginx。我将它包含在我的问题中只是为了提供一个上下文,但无论 nginx 是什么问题都存在。它是 Apache 监听端口 14580,它是 Apache 或其他重定向浏览器后的东西,而不是位于 Apache 之前的 nginx,顺便说一下,目前甚至没有监听端口 80(因此连接到端口时连接被拒绝80 由madeddie报道)。

然而, madeddie还报告说服务器将他的浏览器重定向到端口 80,而在我的情况下,我被重定向到端口 443,这让我想知道服务器为什么甚至向我和他发出不同的重定向......

redirect https apache-2.4
  • 1 个回答
  • 111 Views
Martin Hope
Lucio Crusca
Asked: 2016-02-11 07:43:23 +0800 CST

强制门户和 SSL

  • 0

我认为类似的问题已经被反复提出,但我的问题略有不同。我了解我无法将 HTTPS 流量重定向到 Captive Portal 登录页面,而不会导致浏览器中出现 SSL 错误。我明白为什么。我同意,因为事情就是这样,我很高兴 SSL 和我们在一起。

但是,我可以说确实存在比放弃这个更好的解决方案,因为我几天前在学校使用过它。起初我没有意识到我的(Debian 8)笔记本已经自动连接到他们开放的 wifi 网络,我在 Chrome 地址栏中输入了一些搜索词。我的默认搜索引擎是 Google,它只提供 HTTPS 页面。我希望获得 Google 结果的页面显示连接错误(不可避免),但 Chrome 自动打开了一个新选项卡,显示 Captive Portal 登录页面和登录表单。

这就是我想使用任何 Linux 发行版和任何硬件来实现的,但暂时更不用说发行版和硬件了,让我们坚持这个原则:这个新的标签技巧是如何工作的?它在什么协议级别实现?如何?

linux
  • 1 个回答
  • 1251 Views
Martin Hope
Lucio Crusca
Asked: 2015-11-20 00:15:26 +0800 CST

如何在 Debian 8 上禁用核心转储

  • 4

我假装我已经尝试了所有的方法,但是当我的 Debian 8 发生崩溃时,我会不断创建核心​​转储。它大约在一个月内发生一次或两次。它是一些网站的生产服务器,带有打包的 Apache 2.4、php5-fpm 和 mysql。我怀疑它是 php5-fpm 崩溃,因为我在 DocumentRoot 文件夹中获取了转储文件。我得到的文件名为“核心”,它的大小约为千兆字节。

这是我已经为禁用核心转储所做的,但没有成功:

ln -s /dev/null /etc/systemd/coredump.conf

然后重新启动。没有骰子。

echo '*               hard    core    0' >> /etc/security/limits.conf
echo "fs.suid_dumpable = 0" >> /etc/sysctl.conf
sysctl -p

然后重新启动。还是没有骰子。我没有将 kernel.suid_dumpable 设置为 0,因为我后来找到了它,但是当我找到它时,我还读到零是它的默认值。无论如何,这些设置不应该有任何区别,因为 php5-fpm 不是 setuid。Apache 和 mysql 也是如此,以防它不是 php5-fpm 崩溃。

目前有一个脚本可以查找核心转储并删除它们。Crontab 完成了剩下的工作,但它不是最好的解决方案。

如何在 Debian 8 中全局且无条件地禁用核心转储?

systemd
  • 2 个回答
  • 3440 Views
Martin Hope
Lucio Crusca
Asked: 2015-09-26 03:33:38 +0800 CST

Windows XP 和 ZyWALL USG 200 之间没有证书的 L2TP VPN

  • 1

我正在尝试配置 ZyWALL USG 200 防火墙,让 Windows XP 远程客户端(动态 IP 地址)通过 L2TP VPN 连接到工作场所网络。我不想使用证书,一个通用的用户名和密码就足够了(证书管理太多了)。

我不是 L2TP 专家,更不是 IPsec,所以如果我提出一些琐碎的问题或犯明显的错误,请多多包涵。

我已经在 USG200 上配置了我认为应该是 L2TP VPN,但是当我尝试从 WinXP 客户端连接时,我在其日志中收到以下错误:

1 2015-09-25 11:03:33 info IKE Send:[NOTIFY:NO_PROPOSAL_CHOSEN] 192.168.0.1:500 84.223.99.164:500 IKE_LOG
2 2015-09-25 11:03:33 info IKE [SA] : No proposal chosen 192.168.0.1:500 84.223.99.164:500 IKE_LOG
3 2015-09-25 11:03:33 info IKE The cookie pair is : 0x214b5575aaa53052 / 0xa212f247eeebfb4b [count=2] 192.168.0.1:500 84.223.99.164:500 IKE_LOG
4 2015-09-25 11:03:33 info IKE Recv:[SA][VID][VID][VID][VID] 84.223.99.164:500 192.168.0.1:500 IKE_LOG
5 2015-09-25 11:03:33 info IKE The cookie pair is : 0xa212f247eeebfb4b / 0x214b5575aaa53052 84.223.99.164:500 192.168.0.1:500 IKE_LOG
6 2015-09-25 11:03:33 info IKE Recv Main Mode request from [84.223.99.164] 84.223.99.164:500 192.168.0.1:500 IKE_LOG
7 2015-09-25 11:03:33 info IKE The cookie pair is : 0x214b5575aaa53052 / 0x0000000000000000 84.223.99.164:500 192.168.0.1:500 IKE_LOG

(请注意,USG200 首先显示最近的日志条目)。从 Google 搜索中,我了解到错误“未选择提议”可能是由 IKE 阶段 1 提议配置中客户端和服务器之间的不匹配引起的。从本文档中,我假设以下 USG200 配置应该可以工作,但它不能:

USG200 VPN配置

我显然也配置了 VPN 连接和 L2TP VPN,但我想这些配置不相关,至少暂时不相关。不幸的是,我不知道为什么它不起作用,或者是防火墙还是客户端的问题。我似乎无法从 Windows 获取任何相关日志来诊断问题,因此这是我配置连接的方式:

在此处输入图像描述

你能帮我理解我做错了什么吗?

windows-xp
  • 1 个回答
  • 1270 Views
Martin Hope
Lucio Crusca
Asked: 2015-02-26 06:19:41 +0800 CST

fcgid 和 PHP 出现 403 禁止错误

  • 1

我正在尝试在 Apache 2.4、Debian jessie、x64 上配置 php 和 mod_spdy。我已经按照本指南并按照其他指南配置了 Apache并安装了这些软件包:

libapache2-mod-fcgid
php-cgi
php5-fpm

我现在遇到了 php 应用程序的问题:当我尝试打开它们时,我得到了 403 Forbidden。这是我的 /etc/apache2/conf-enabled/fcgid.conf

<Location />
  AddHandler fcgid-script .php
  Options +ExecCGI
  FcgidWrapper /usr/bin/php-cgi .php
</Location>

我在 /var/log/apache2/error.log 中得到的错误

AH01630: client denied by server configuration: /usr/lib/cgi-bin/php5

我试过添加

Order allow,deny
Allow from all

到 PHP 应用程序 VirtualHost 中,但结果是一样的。为什么我得到403?

php-fpm
  • 2 个回答
  • 5665 Views
Martin Hope
Lucio Crusca
Asked: 2015-01-28 10:12:06 +0800 CST

LVM:删除物理卷

  • 1

我想重新分区我的磁盘。我当前的分区表如下:

Disk /dev/vda: 1 TiB, 1136018849792 bytes, 2218786816 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: 0x9039e337

Device     Boot     Start       End   Sectors   Size Id Type
/dev/vda1  *         2048 224610303 224608256 107,1G 8e Linux LVM
/dev/vda2       224610304 226490367   1880064   918M 8e Linux LVM

我想删除 /dev/vda2 并扩展 /dev/vda1 以填满整个磁盘。这是我当前的物理卷状态:

--- Physical volume ---
PV Name               /dev/vda1
VG Name               vg0
PV Size               107,10 GiB / not usable 4,00 MiB
Allocatable           yes (but full)
PE Size               4,00 MiB
Total PE              27417
Free PE               0
Allocated PE          27417
PV UUID               XKfnoJ-VBxR-reLg-eE5n-h2yM-W5wt-RTbEcK

--- Physical volume ---
PV Name               /dev/vda2
VG Name               vg0
PV Size               918,00 MiB / not usable 2,00 MiB
Allocatable           yes 
PE Size               4,00 MiB
Total PE              229
Free PE               229
Allocated PE          0
PV UUID               2xT1xt-wYCF-fDzm-f36Q-zeIc-xR0Y-Mf3sCo

如果我说我可以安全,我是否正确

vgreduce vg0 /dev/vda2

事先没有 pvmove-ing /dev/vda2,因为没有使用该物理卷?

linux
  • 2 个回答
  • 1905 Views
Martin Hope
Lucio Crusca
Asked: 2015-01-15 08:19:14 +0800 CST

LVM2:带有偏移量的 pvscan?

  • 0

在我使用 mdadm 有点太用力之后,我现在正在尝试恢复位于原始 RAID1 阵列中的 lvm2 卷。pvscan 什么也没找到,但这并不奇怪:因为 mdadm 无法重建阵列,所以 pvscan 没有 /dev/md1 可供查看。

但是我知道(呃......我希望)我的 lvm2 卷仍然存在,我想我只删除了 raid 元数据。

我的想法是使用实​​时 sysresccd 在 /dev/loop1 下使用偏移量来丢失 /dev/sdc2,以便我跳过 /dev/sdc2 中损坏的 RAID 元数据并到达 PV 本身。我计划类似:

losetup -o xxxxxx /dev/loop1 /dev/sdc2
pvscan

然后 pvscan 可以在 /dev/loop1 中找到卷。问题是我不知道偏移量(但这可以通过学习或反复试验来克服),最重要的是,losetup 不适用于物理设备。如何创建一个指向另一个具有偏移量的设备的设备?或者,如何使 pvscan 使用偏移量查找物理卷?

在@lsd 评论后编辑:

当我尝试时:

losetup -o 32256 /dev/loop1 /dev/sdc2 

我有:

losetup: /dev/sdc2: warning: file smaller than 512 bytes, the loop device maybe be useless or invisible for system tools. 

我认为警告告诉我出了点问题,因为 /dev/sdc2 仅当您将其视为普通文件时才小于 512 字节,但如果 losttup 支持块设备,它应该知道它的实际大小......我应该忽略然而警告?

linux
  • 1 个回答
  • 592 Views

Sidebar

Stats

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

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve