我正在使用 openSUSE 11.4,它在 Yast 中内置了 Active Directory 配置(它为您完成所有 pam_winbind、Kerberos、nss、Samba 客户端的工作),并且我可以成功地针对我的 AD 域进行身份验证。
我创建了一个名为 LinuxAdmins 的 AD 组,我希望该组中的人能够在没有 root 密码的情况下在某些 Linux 服务器上使用 su 或在这些机器上使用自己的密码进行 sudo。
openSUSE 配置 AD 的方式是设置用户名和域前缀。所以我的用户名是 MYDOMAN\djsumdog。如果我尝试将以下任一行添加到 sudoers 文件中,我仍然无法使用我的用户执行 sudo。我不断收到“MYDOMAIN\djsumdog 不在 sudoers 文件中。将报告此事件。” 我已经为用户名和组名尝试了单斜杠和双斜杠。
%MYDOMAIN\LinuxAdmins ALL=(ALL) ALL
MYDOMAIN\djsumdog ALL=(ALL) ALL
Run Code Online (Sandbox Code Playgroud)
我知道在我的 Gentoo 机器上,/etc/pam.d/su 中的以下行允许 wheel 组中的用户在没有密码的情况下使用 su:
auth sufficient pam_wheel.so use_uid trust
Run Code Online (Sandbox Code Playgroud)
但这似乎不适用于 openSUSE(即使是本地用户),更不用说 AD 用户了。我也尝试使用 pam_winbind.so 模块:
#%PAM-1.0
auth sufficient pam_rootok.so
auth include common-auth
auth sufficient pam_winbind.so require_membership_of=MYDOMAIN\\LinuxAdmins
account sufficient pam_rootok.so
account include common-account
password include common-password …Run Code Online (Sandbox Code Playgroud) 我sudo在 Debian 挤压上运行1.7.4 版。在这个版本中,与一些旧版本不同,每个 pty 都必须单独使用密码和超时进行授权。在旧版本中,在超时期间,任何pty 都可以使用一个密码。我想说服sudo恢复到旧的行为,这样我就可以使用一堆 xterm 窗口而不必不断地重新输入我的密码。有谁知道如何做到这一点?
我来自 Linux 世界,不熟悉 OS X 管理员。现在我想 su 给另一个用户,但它不起作用......这里出了什么问题?
smallufo@miniserver:~ $ whoami
smallufo
smallufo@miniserver:~ $ su - postgres
Password:
smallufo@miniserver:~ $ whoami
smallufo
smallufo@miniserver:~ $
Run Code Online (Sandbox Code Playgroud)
我输入了正确的密码,但为什么我不能 su 到 postgres?
对不起,如果这是一个愚蠢的问题,但我整晚都被它困住了......
非常感谢 !
在 Fedora 服务器上,一个处于开发阶段的 Web 应用程序由于目前未知的原因而受到刺激。唯一的解决方案是重新启动 linux 机器,但只有 root 才能这样做。
是否可以为用户组授予重新启动权限?你能给我一些关于如何做到这一点的想法吗?
我有几台服务器,其中一些用户需要成为 sudoers 才能工作。问题是当 sudoers 可以运行命令sudo su并以 user 身份登录时root。运行该命令似乎非常危险。
我尝试在文件 /etc/sudoers 中使用命令别名 ?? 但它没有用。有什么办法让他们是 sudoers 但不运行命令sudo su吗?
我们有一个名为 JBossAdmins 的组,该组的用户必须在 RHEL 6 上编辑一些 /etc 文件:
我的第一个想法是授予以下 sudo 权限:
%JBossAdmins ALL=(root) /bin/vi /etc/httpd/*
%JBossAdmins ALL=(root) /bin/vi /etc/java/*
%JBossAdmins ALL=(root) /bin/vi /etc/jboss/*
Run Code Online (Sandbox Code Playgroud)
显然,用户现在可以以 root 身份启动 vi,然后通过执行 fe 来编辑任何文件 :e /etc/passwd
所以 sudo 不是一个好主意。
然后我想到做一个chgrp JBossAdmins -R path然后一个chmod g+rw -R path。
但我也不太确定这是否是个好主意。
因此,考虑到安全隐患,允许一组用户编辑某些 /etc 文件的最佳做法是什么?有比 sudo 或 chgrp/chmod 更好的选择吗?
无论我尝试什么,在我使用 sudo 运行命令后,似乎都没有保留LD_LIBRARY_PATH环境变量。我设法让它坚持下去的唯一方法是每当我sudo从命令行LD_LIBRARY_PATH=/the/path调用它时在我的命令前加上前缀,但我不想每次都这样做。
似乎 env_keep 选项忽略了这个变量,exempt_group 选项也是如此。
我的 %group 目前ALL=(ALL) NOPASSWD:ALL在 sudoers 中具有访问权限。我希望为我运行的任何命令保留这个特定的环境变量。
我怎样才能做到这一点?
我的服务器运行的是 Red Hat Enterprise Linux 5.7。
我可以使用具有 sudo 权限的管理员帐户通过 SSH 连接到我的服务器(CentOS 5.9):
$ ssh admin@myserver
Last login: Wed Feb 27 19:23:11 2013 from [IP ADDRESS]
[admin@myserver ~]$
Run Code Online (Sandbox Code Playgroud)
然后我可以 su 到 root:
[admin@myserver ~]$ sudo su root
[sudo] password for admin:
[root@myserver admin]#
Run Code Online (Sandbox Code Playgroud)
但是我不能 su 到另一个用户,并且 su 命令没有告诉我原因:
[admin@myserver ~]$ sudo su anotheruser
[admin@myserver ~]$ whoami
admin
Run Code Online (Sandbox Code Playgroud)
知道为什么我可以 su 到 root 而不是其他用户吗?
我怎样才能让 su 告诉我为什么它没有做我想做的事?
有安全意识的人通常建议在 Linux 机器上以 root 身份禁用 ssh。我的问题是这样的:
假设您通常编写大量脚本,这些脚本通过 ssh 连接到大量 Linux 机器并执行各种根级任务。如果您以 root 身份禁用 ssh,您如何进行需要 root 权限的日常维护?
当然, sudo 是一个选项,但是每次运行命令时都必须输入密码。如果您的脚本执行各种任务怎么办?如果您必须针对大量主机运行该脚本怎么办?
当然,您可以设置NOPASSWD 参数,但这不是存在安全风险吗?
只是在这里沉思。想得到社区的反馈。我正在寻找一种相对安全的方式来 ssh 到 Linux 机器并执行根级任务。
我创建了一个测试用户,并希望限制这个“测试”用户通过 visudo 只运行以下命令。
echo "show stat" | socat stdio /var/run/haproxy.sock
Run Code Online (Sandbox Code Playgroud)
视觉
test ALL=(root)NOPASSWD:/usr/bin/socat stdio /var/run/haproxy.sock
Run Code Online (Sandbox Code Playgroud)
ls -lat /var/run/haproxy.sock
srwxr-xr-x 1 munin haproxy 0 May 22 22:32 /var/run/haproxy.sock
Run Code Online (Sandbox Code Playgroud)
我运行了以下命令
test#sudo echo "show stat" | socat stdio /var/run/haproxy.sock
Run Code Online (Sandbox Code Playgroud)
错误信息
2013/05/22 23:13:14 socat[21289] E connect(3, AF=1 "/var/run/haproxy.sock", 23): Permission denied
Run Code Online (Sandbox Code Playgroud)
我可以知道 visudo 中哪些配置不正确吗