*nix 用户权限非常简单,但是当您在访问给定文件之前必须考虑所有父目录访问权限时,事情可能会变得混乱。如何检查用户是否有足够的权限?如果不是,那么哪个目录拒绝访问?
例如,假设一个 userjoe和文件/long/path/to/file.txt. 即使file.txtchmoded到777,joe还是要能访问/long/,然后/long/path/再/long/path/to/之前。我需要的是一种自动检查这一点的方法。如果joe没有访问权限,我也想知道他被拒绝的地方。也许他可以访问/long/,但不能/long/path/。
该/etc/sudoers文件列出了哪些用户可以使用该sudo命令执行的操作
root 用户创建并修改/etc/sudoers文件。
这个概念对我来说很难理解。
如果所有拥有 sudo 权限的用户都属于sudoers组,那么所有用户都可以通过发出sudo su命令成为 root 。
那么谁才是真正的root用户,他又是如何控制sudoers组用户权限的呢?
请给我解释一下。
神父 兄弟 乔治在他的一次演讲中(用俄语)说,有一些超级用户不能侵犯的访问权限。那就是有一些访问权限可以禁止超级用户做某事。
我无法在 Internet 上找到这些信息,我很好奇它们是什么。这大概和系统的核心执行有关吧?也许他无法停止某些系统进程?或者他不能在实模式下运行一个进程?
这个问题与 SELinux 无关(乔治在问题之前就在谈论它)。
当 SELinux 安装在系统上时,它的规则是在标准 linux 权限之前还是之后执行?例如,如果非 root linux 用户尝试写入具有 linux 权限的文件,-rw------- root root会先检查 SELinux 规则,还是会应用标准文件系统权限并且永远不会调用 SELinux?
我在某处读到或听说过(可能在LinuxCBT 的 SELinux 课程中;但我不确定)有在线 Linux 服务器,还提供了 root 用户的密码。Linux 服务器采用 SELinux 规则加固,每个人都可以使用 root 用户登录,但不会对操作系统造成任何损害。
这对我来说似乎是一个神话,但我想确定:是否有可能强化 Linux 机器(可能使用 SELinux),这样即使是 root 用户也无法对其进行特定的恶意活动?(例如:删除系统文件、清除日志文件、停止关键服务等)
这样的 Linux 机器将是构建蜜罐的一个很好的起点。
编辑: 基于一个答案(现已删除)和一点谷歌搜索,我至少得到了两个指向这种强化 Linux 服务器的链接。不幸的是,两台服务器都停机了。为了记录,我将在这里复制粘贴描述:
1) 来自http://www.coker.com.au/selinux/play.html:
SE Linux 机器上的免费 root 访问权限!
要以root身份访问我的 Debian 游戏机 ssh 到play.coker.com.au,密码是...
请注意,如果您要成功运行此类机器,则需要很多技能。如果您要问是否应该运行一个,那么答案是“不”。
这样做的目的是证明 SE Linux 可以在没有任何 Unix 权限的情况下提供所有必要的安全性(但仍然建议您对真实服务器也使用 Unix 权限)。它还让您有机会登录到 SE 机器并查看它是什么样的。
当您登录 SE Linux 播放机时,请确保在登录前使用-x选项禁用 X11 转发或在 /etc/ssh/ssh_config 文件中设置ForwardX11 no。还要确保在登录之前使用 -a 选项禁用 ssh 代理转发或在 /etc/ssh/ssh_config 文件中设置ForwardAgent no。如果您没有正确禁用这些设置,那么登录游戏机将使您面临通过 …
我开发了一个应用程序,它使用 NTP 来更改网络时间,以同步我的两台计算机。它运行为root,因为在 Linux 上只允许后者更改时间和日期(我猜)。
现在,我想以用户身份运行它。但是,我需要访问时间。
CAP_SYS_TIME?我创建了一些基本有效的 systemd 服务:
地点:
/etc/systemd/system/multi-user.target.wants/publicapi.service
Run Code Online (Sandbox Code Playgroud)
内容:
[Unit]
Description=public api startup script
[Service]
Type=oneshot
RemainAfterExit=yes
EnvironmentFile=-/etc/environment
WorkingDirectory=/home/techops
ExecStart=/home/techops/publicapi start
ExecStop=/home/techops/publicapi stop
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
当我尝试在命令行中以 techops 用户身份重新启动服务时,我得到以下输出:
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to start 'publicapi.service'.
Multiple identities can be used for authentication:
 1.  Myself,,, (defaultuser)
 2.  ,,, (techops)
Choose identity to authenticate as (1-2):
Run Code Online (Sandbox Code Playgroud)
我希望只有 techops 可以重新启动服务,并且我希望在以 techops 身份登录时不出现此提示。我怎样才能做到这一点?
我读到 polkit-1 或 sudoers 有不同的方法,但我不确定。
[更新] 2019-01-27 4:40pm
感谢您对 Thomas 和 Perlduck 的全面回答。它帮助我提高了对 systemd 的了解。  
按照无密码提示启动服务的方法,我要道歉,我没有足够强调真正的问题:
实际上,对我来说最重要的是,除了 techops 之外,没有其他用户应该停止或启动该服务。但至少使用前两种方法我仍然可以运行service …
我已经从 Sshd.conf 文件中禁用了 root 用户登录,所以现在没有人可以使用 root 用户登录,即使他们知道密码。
现在我在服务器 ROOT、EMERG 和 ORACLE 中有 3 个用户。我想只允许使用 su 切换到 EMERG 用户,而不是 ORACLE 用户。
因为通常如果用户知道 ROOT 密码,他们可以使用 su - 切换到 root。我希望此功能仅适用于 EMERG 用户。
这该怎么做
提前致谢......
我有一个用户对系统的访问权限有限(也就是说,他不是 sudoer);我们叫他鲍勃吧。
我有一个脚本或二进制文件,我,系统管理员,信任它,并且以 root 身份运行它不会有任何问题;让我们调用脚本get-todays-passphrase.sh。此脚本的工作是从位于 中的“私有”(由 Bob 以外的用户/组甚至 root 用户/组拥有)文件中读取数据/srv/daily-passphrases,并仅输出文件中的特定行:与今天的日期对应的行.
像鲍勃用户不容许知道明天的密码,即使它的文件中列出。出于这个原因,该文件/srv/daily-passphrases是由Unix许可保护的,所以非root用户喜欢鲍勃没有允许直接访问文件。但是,它们可以随时运行get-todays-passphrase.sh脚本,从而返回“过滤后的”数据。
总结一下(TL;DR版本):
是否可以在 Unix 文件权限内执行此操作?或者,如果 Bob 启动了一个脚本,该脚本是否总是注定要以与 Bob 相同的权限运行?
我一直在到处寻找这个。有谁知道如何阻止 DD-WRT 路由器上的特定 URL?例如,我想阻止website.com/whatever但不想阻止website.com、blah.website.com、 或website.com/blah。有没有办法做到这一点,或者你只能阻止整个域?
我尝试在 DD-WRT 配置中的访问限制下添加有问题的 URL,但它似乎没有任何效果。这是我的设置:

这是客户名单:

我仍然可以在 IP 地址为 192.168.1.146 的主 PC 上轻松浏览到 google.com/imghp 和 google.com/images(重定向到 google.com/imghp)。
在DD-WRT wiki 的这个页面上,它说“在通过 URL 地址阻止网站下,输入您希望阻止的域名(如果有)。” 除了 DD-WRT 论坛上的帖子之外,这给我的印象是您只能在 DD-WRT 设置中的访问限制下阻止域。
我开始怀疑这个问题是否必须使用 iptables 来解决,或者可能通过在路由器本身上安装代理服务器来解决。
DD-WRT 论坛上的用户 goli 对此事有以下看法(链接):
有一个在 DD-WRT 上运行良好的 Privoxy 版本。我刚刚安装了它。
Privoxy 有一个参数“accept-intercepted-requests 1”,允许将其用作透明代理。
我添加了一个 iptables 规则,将一些网络流量请求传递给代理,而不是直接路由它:
Run Code Online (Sandbox Code Playgroud)iptables -t nat -A PREROUTING -i br0 -p tcp --dport 80 -s 192.168.0.128/255.255.255.224 -j DNAT --to 192.168.0.1:8118Privoxy …
access-control ×10
permissions ×4
root ×3
security ×3
users ×3
files ×2
selinux ×2
sudo ×2
daemon ×1
dd-wrt ×1
hardening ×1
http-proxy ×1
polkit ×1
privileges ×1
rhel ×1
su ×1
systemd ×1
web ×1