标签: authorization

禁用用户登录而不禁用帐户

假设我使用该adduser命令创建了一个名为“bogus”的用户。在不禁用帐户的情况下,如何确保该用户不是可行的登录选项。简而言之,我希望该帐户可通过 访问su - bogus,但我不希望它可通过常规登录提示访问。

四处搜索,似乎我需要禁用该用户的密码,但这样做passwd -d bogus并没有帮助。事实上,这让事情变得更糟,因为我现在甚至不用输入密码就可以登录到伪造的。

有没有办法禁用给定帐户的常规登录?

注意:为了清楚起见,我知道如何从图形登录屏幕(例如 gdm)的菜单选项中删除用户,但这些方法只是隐藏帐户,而实际上并未禁用登录。我正在寻找一种完全禁用常规登录的方法,包括文本模式。

users password login authorization

109
推荐指数
4
解决办法
22万
查看次数

24
推荐指数
2
解决办法
9万
查看次数

如何编辑authorized_keys?

编辑/root/.ssh/authorized_keys文件的最佳方法是什么?

我的意思是,如果我需要在我的authorized_keys文件中附加一个新密钥,那么最好的方法是什么?

ssh authorization

21
推荐指数
1
解决办法
6万
查看次数

是否可以使用 2 个不同的身份验证方案在 SSH 上打开 2 个端口?

我目前正在尝试设置 SSH 服务器,以便仅允许使用 SSH 密钥从网络外部访问它,并且不允许访问 root 或任何其他用户名/密码组合。

同时,网络内部的内部用户,仍然需要能够连接到同一个系统,但期望使用用户名和密码以更传统的方式登录。

外部和内部用户将使用 PuttySSH 从 Windows 访问系统,外部访问将通过端口转发防火墙进入系统,该防火墙将在某些任意选择的高编号端口(如 55000(或管理员决定什么)

下图试图更好地显示交通流。

SSH 设置

我知道如何将实际登录设置为仅使用密钥,并且我知道如何拒绝 root,我不知道如何将两种登录类型分开。

我曾考虑在同一 IP 上的不同端口上运行两个 SSHD 副本,并为每个端口设置两种不同的配置。

我还考虑过设置“匹配”规则,但我不确定是否可以使用这些选项隔离服务器范围的配置。

最后,登录的外部人员将始终是同一用户,出于这个问题的目的,我们称他们为“弗兰克”,因此“弗兰克”将只被允许从外部 IP 登录,而实际上永远不会坐在前面任何内部连接的系统,因为系统的每个其他用户只会在内部连接,而永远不会从外部 IP 连接。

他连接的 Franks IP 是动态分配的,但他连接的公共 IP 也是静态的,永远不会改变,端口转发器的内部 IP 也不会改变,SSH 服务器的内部 IP 地址也不会改变.

内部客户端将始终从私有网络范围内的 IP 连接,该 IP 是内部 SSH 服务器 IP 的一部分,并且是 16 位掩码 EG:192.168.0.0/16

是否可以使用一个配置文件和一个 SSH 服务器实例进行设置?如果是这样,我该怎么做?

或者

使用具有不同配置的 2 个正在运行的服务器会更好吗?

参考 SSH 服务器在 Ubuntu 18.04 上运行。

login key-authentication authorization sshd

16
推荐指数
2
解决办法
2万
查看次数

D-Bus 认证和授权

我正在尝试设置对 D-Bus 的远程访问,但我不明白身份验证和授权是如何(不)工作的。

我有一个 D-Bus 服务器侦听抽象套接字。

$ echo $DBUS_SESSION_BUS_ADDRESS 
unix:abstract=/tmp/dbus-g5sxxvDlmz,guid=49bd93b893fe40d83604952155190c31
Run Code Online (Sandbox Code Playgroud)

我跑过dbus-monitor去看发生了什么事。我的测试用例是notify-send hello,它在从本地机器执行时有效。

从同一台机器上的另一个帐户,我无法连接到该总线。

otheraccount$ DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-g5sxxvDlmz,guid=49bd93b893fe40d83604952155190c31 dbus-monitor
Failed to open connection to session bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
otheraccount$ DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-g5sxxvDlmz,guid=49bd93b893fe40d83604952155190c31 notify-send hello
Run Code Online (Sandbox Code Playgroud)

浏览了D-Bus 规范后,我复制~/.dbus-keyrings/org_freedesktop_general到另一个帐户,但没有帮助。

我尝试通过 TCP 转发 D-Bus 套接字,灵感来自schedarAccess D-Bus …

security authentication d-bus tcp authorization

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

为什么非特权用户可以执行`sync`命令?

目前在 Ubuntu Linux 上,但我在其他操作系统上也注意到了这一点。显然任何用户都可以执行该sync命令——但这是为什么呢?我只能看到缺点:由于不必要的磁盘写入,系统速度变慢。

为什么每个用户都可以执行sync

hard-disk synchronization authorization privileges

12
推荐指数
2
解决办法
6969
查看次数

用户在 AllowUsers 列表中拒绝 ssh 访问

我在我的工作场所继承了 linux box 的管理;它是由一位现已离开的同事建立的。最近,我在系统中添加了一个新用户,并尝试给她 ssh 访问权限;大多数使用机器的人访问它的方式。这,我不能上班。

这是发生的事情:

scmb-bkobe03m:~ xzhang$ ssh -v -X -p 22 arwen@myServer
OpenSSH_5.2p1, OpenSSL 0.9.8r 8 Feb 2011
debug1: Reading configuration data /etc/ssh_config
debug1: Connecting to myServer [152.98.xx.xx] port 22.
debug1: Connection established.
debug1: identity file /Users/xzhang/.ssh/identity type -1
debug1: identity file /Users/xzhang/.ssh/id_rsa type 1
debug1: identity file /Users/xzhang/.ssh/id_dsa type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.5p1 Debian-6+squeeze2
debug1: match: OpenSSH_5.5p1 Debian-6+squeeze2 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version …
Run Code Online (Sandbox Code Playgroud)

ssh debian authorization

10
推荐指数
1
解决办法
6万
查看次数

pbrun 和 sudo 命令有什么区别?

pbrunsudo命令有什么区别?
我见过有人执行 pbrun sudo su - 这是什么意思?我知道 su -,它会尝试切换到 root 用户。
当 pbrun 与 sudo 命令一起使用时,它赋予 sudo 什么特殊功能?

shell login authentication authorization command

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

如何在 CLI 登录时自动进入 sudo 的宽限期?

我想要做的是能够立即登录和 sudo 命令而无需再次输入密码。当我需要登录并运行特权命令时,连续输入两次密码是非常多余的。我了解安全风险,这需要我们在离开一段时间后重新输入密码,但似乎登录应该默认自动设置此会话以防止这种情况发生,但出于某种原因并没有这样做。

我知道这些解决方案,但它们都依赖于 gdm,而且我似乎只为初学者安装了 LightDM。此外,我没有登录到 GUI 界面,AFAIK 控制台首先不使用其中任何一个来管理登录。

如果重要的话,我在 VMware 中使用 Ubuntu 13.04。我确实安装了 KDE,但除非有理由,否则我通常不会加载它。

理想的解决方案也适用于 SSH 登录。

更新

根据吉尔斯的建议,我现在有了这个工作设置:

~ tail -n1 /etc/pam.d/sshd
session optional pam_exec.so seteuid /usr/local/sbin/update_sudo_ticket
Run Code Online (Sandbox Code Playgroud)

和(一定sudo visudo用来编辑sudoers)

~  sudo head -n12 /etc/sudoers|tail -n1
Defaults        !tty_tickets
Run Code Online (Sandbox Code Playgroud)

并创建一个新脚本

~ cat /usr/local/sbin/update_sudo_ticket
#!/bin/sh
touch -c "/var/lib/sudo/$PAM_USER" 2>/dev/null
Run Code Online (Sandbox Code Playgroud)

并使其可执行 ( sudo chmod u=+rwx,g=+rx-w,o=-rwx /usr/local/sbin/update_sudo_ticket):

~  ls -la /usr/local/sbin/update_sudo_ticket
-rwxr-x--- 1 root root 57 Sep 21 20:52 /usr/local/sbin/update_sudo_ticket
Run Code Online (Sandbox Code Playgroud)

shell pam sudo authorization

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

systemd 下的 NFS v4 日志在哪里?

我的错误是:

mount.nfs4: access denied by server while mounting fileserver:/export/path/one
Run Code Online (Sandbox Code Playgroud)

我的问题是:

详细的日志信息在服务器上的哪里(在systemd下)?

更多信息:

我在 AskUbuntu 上从 Ubuntu 客户端的角度提出了类似的问题。我这个问题的重点是 Arch Linux 服务器。特别是,我正在服务器上查找日志以帮助我理解问题。

这是背景:

我们的小型 LAN 正在运行 Arch Linux NFS v4 文件服务器。我们有几个运行 Ubuntu 15.10 和 16.04 的客户端。我们有一个运行 Ubuntu 14.04 的客户端。14.04客户端将无法连接到文件服务器。其他都连接正常。所有客户端上的设置均相同。所有客户端都列在服务器上的 /etc/exports 中。

我需要在Arch linux服务器上找到更详细的错误信息。但是,journalctl 不显示与 nfs 相关的任何内容,也不包含与 nfs 访问被拒绝错误相关的任何条目。

14.04 客户端可以 ping 文件服务器并通过 SSH 登录。用户名/ID 以及组匹配。(我在客户端和服务器上使用相同的用户帐户/uid。它是 uid 1000。)

更多信息:

$ sudo mount -a (on client)
mount.nfs4: access denied by server while mounting fileserver:/export/path/one
mount.nfs4: access denied by server while mounting fileserver:/export/path/two …
Run Code Online (Sandbox Code Playgroud)

permissions nfs mount authorization onc-rpc

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