我正在使用 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) 我来自 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?
对不起,如果这是一个愚蠢的问题,但我整晚都被它困住了......
非常感谢 !
我有几台服务器,其中一些用户需要成为 sudoers 才能工作。问题是当 sudoers 可以运行命令sudo su并以 user 身份登录时root。运行该命令似乎非常危险。
我尝试在文件 /etc/sudoers 中使用命令别名 ?? 但它没有用。有什么办法让他们是 sudoers 但不运行命令sudo su吗?
是否可以将 sudo 配置为要求输入 root 密码而不是用户密码?
服务器配置了一个 root 用户和一个具有有限权限的简单用户(我们称他为简单用户),用于部署托管在服务器上的所有应用程序。用户 simple 不在 sudoers 列表中,因此
$ sudo command
Run Code Online (Sandbox Code Playgroud)
不会工作,因为简单的密码不能授予他 root 权限。
有时,我需要通过 Capistrano(一种 ruby 部署工具)运行一些需要 root 访问权限的脚本,并且编写脚本以便以 root 身份登录、运行脚本然后注销非常困难。我希望能够执行以下语句
$ sudo god restart tasks-group
Run Code Online (Sandbox Code Playgroud)
并让 Capistrano 提示我输入 root 密码。目前,Capistrano 提示输入部署用户密码,这显然是一个非管理员帐户。
[demo@PHP_DEV_57 ~]$ sudo su
[root@PHP_DEV_57 www]#
Run Code Online (Sandbox Code Playgroud)
为什么我可以简单地切换到root,sudo susudo和su有什么区别?
在我以 root 身份通过 SSH 登录的 CentOS 服务器上,我执行以下操作:
su 其他用户名
其中“otherusername”是另一个用户的用户名,它存在。
它什么都不做。在那之后,我仍然是root。whoami 返回 root,我创建的任何文件都属于 root,即 su 不属于 su。
但是它不会给出任何错误消息。如果我尝试使用无效的用户名 su ,它确实会给出一条错误消息。
我错过了什么??
我们使用 Active Directory 设置了 LDAP 服务器。当用户以 root 身份登录到安装了 LDAP 客户端的 Linux 机器时,他们能够进入任何 Active Directory 帐户,而无需该用户密码。这是一个很大的安全风险,有谁知道这是为什么或如何防止这种情况?
不幸的是,阻止 root 访问不是一种选择,因为某些用户在某些情况下需要这样做。
我只知道一个用户的 UID,是否可以像我们使用 su -u someuser 这样的用户名那样在 CentOS 中使用 UID 切换用户?
我正在使用 upstart 在 Amazon Linux AMI EC2 实例上运行我的 node.js 应用程序。我在让它工作时遇到了一些问题,总结如下。
在我的脚本中,我有这样一行:
exec sudo -u www /usr/local/bin/node /var/www/foo/app.js >> /var/log/foo.sys.log 2>&1
Run Code Online (Sandbox Code Playgroud)
运行时,工作从未通过stop/waiting,当我打开时,log-priority debug我看到了这一行:
sudo: sorry, you must have a tty to run sudo
Run Code Online (Sandbox Code Playgroud)
我最后在这篇文章中讨论了visudo为什么我不应该使用它以及它建议如何使用--session-command。所以我把这行改成:
exec su --session-command="/usr/local/bin/node /var/www/foo/app.js >> /var/log/foo.sys.log 2>&1" www
Run Code Online (Sandbox Code Playgroud)
日志现在显示(sys) Starting但initctl status foo仍然显示foo stop/waiting。
在这一点上,我不知道该怎么做才能使其正常工作,任何帮助将不胜感激。
更新:我已经看完了SO 的这篇文章,结果是一样的。
当我通过 ssh 连接到我的 ubuntu 服务器时,我会登录到我用户的主文件夹。
但是当我这样做su otheruser并输入密码时,我以其他用户身份登录,但主目录为前一个用户保留。
如何自动切换到登录用户的主目录?