标签: sudo

sudo 需要很长时间

在 Ubuntu 9 64 位 Linux 机器上, sudo 需要更长的时间来启动。“sudo echo hi”需要 2-3 分钟。sudo 上的 strace 告诉 poll("/etc/pam.d/system-auth", POLLIN) 在 5 秒后超时,并且有多个调用(可能是循环)到同一个系统调用(这会导致 2-3 分钟的延迟)。

知道为什么 sudo 必须等待 /etc/pam.d/system-auth 吗?任何可以使 sudo 超时更快的可调参数?

谢谢塞缪尔

linux sudo pam

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

sudo 或 acl 或 setuid/setgid?

出于一个我不太明白的原因,每个人都想要 sudo 。在工作中,我们甚至有与读取日志文件的方法一样多的条目(head/tail/cat/more,...)。

我认为,sudo 在这里失败了。

我宁愿混合使用 setgid/setuid 目录并在这里和那里添加 ACL,但我真的需要在开始之前知道什么是最佳实践。

我们的服务器有 %admin、%production、%dba、%users——即许多组和许多用户。每个服务(mysql、apache 等)都有自己的安装权限的方式,但 %production 组的成员必须能够查阅配置文件甚至日志文件。仍然有解决方案将它们添加到正确的组(mysql ...)并设置好权限。但我不想 usermod 所有用户,我不想修改标准权限,因为它可以在每次升级后更改。

另一方面,在目录上设置 acls 和/或混合 setuid/setgid 是我可以轻松完成的事情,而无需“破坏”标准发行版。

你怎么看待这件事 ?

以 mysql 为例,它看起来像这样:

setfacl d:g:production:rx,d:other::---,g:production:rx,other::--- /var/log/mysql /etc/mysql
Run Code Online (Sandbox Code Playgroud)

你认为这是一个好习惯还是我应该定义 usermod -G mysql 并使用标准权限系统?

谢谢

sudo setuid access-control-list setgid

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

为什么 visudo 说有语法错误?

我正在使用 CentOS

uname -a
Linux mydomain.com 3.2.29-48.63.amzn1.x86_64 #1 SMP Sat Sep 15 01:43:12 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用 visudo 将此命令添加到我的 /etc/sudoers 文件中...

Cmnd_Alias     CHOWNCMD = /bin/chown jboss:jboss /usr/java/jboss/server/default/deploy/myclient*.ear
Run Code Online (Sandbox Code Playgroud)

但是当我尝试保存时,它抱怨语法错误。我可以在命令行上运行这个命令(“=”之后的所有内容),所以我很难弄清楚 visudo 抱怨的是什么。任何建议如何修改上述行以使 visudo 表现?

  • 戴夫

centos sudo

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

“sudo su -”和“sudo -i”有什么区别?

可能的重复:
sudo -i 和 sudo su - 有什么区别

我知道这两个命令都会导致获得 root-shell。但也有一些区别。在某些服务器上,例如提示不同:

nomike@testerver:~> sudo -i
root@testerver:~> logout
nomike@testerver:~> sudo su -
[root@testerver ~]# 
Run Code Online (Sandbox Code Playgroud)

所以我猜“.bashrc”、“.bash_profile”和“.profile”的处理方式有些不同。

一个会调用登录 shell 而另一个不调用吗?

linux solaris su bash sudo

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

使用 FreeIPA 进行集中 sudo - 将 SSSD 用于 sudoers

我已经为集中式 sudo 设置了 FreeIPA,除了能够将 SSSD 用于 sudoers 之外,一切都运行良好。

如果我的客户端 /etc/nsswitch.conf 中有以下内容:

sudoers: files ldap
Run Code Online (Sandbox Code Playgroud)

当 FreeIPA 服务器可用时,sudo 命令可按需要工作。但是,我想使用 SSSD,以便在 FreeIPA 服务器不可用的情况下,sudo 仍然可以工作。

当我在我的客户端 /etc/nsswitch.conf 中有以下内容时:

sudoers: files sss
Run Code Online (Sandbox Code Playgroud)

我的 /etc/sssd/sssd.conf 如下:

[domain/example.com]

cache_credentials = True
ipa_domain = example.com
id_provider = ipa
auth_provider = ipa
access_provider = ipa
ipa_hostname = host3.example.com
chpass_provider = ipa
ipa_server = _srv_, ipa.example.com
ldap_tls_cacert = /etc/ipa/ca.crt
[sssd]
services = nss, pam, ssh, sudo
config_file_version = 2
domains = example.com
ldap_sudo_search_base = ou=SUDOers,dc=example,dc=com
.
.
.
[snip] …
Run Code Online (Sandbox Code Playgroud)

sudo freeipa

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

用户不在 sudoers 中,但仍然可以使用 sudo

我有一个用户 user1 不在 sudoers 文件中(也不属于 sudoer 中的组)但仍然可以使用 sudo。这怎么可能 ?

user1~$ groups
        user1 www-data
Run Code Online (Sandbox Code Playgroud)

我的 sudoer conf

        root ALL=(ALL) ALL
        %sudo ALL=(ALL) ALL

        #includedir /etc/sudoers.d

user1~$ sudo -l
        User user1 may run the following commands on this host:
        (ALL) ALL
Run Code Online (Sandbox Code Playgroud)

debian sudo

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

由于 /var/run/dbus/system_bus_socket 连接超时,Fedora VM 上的身份验证缓慢

我有这个 Fedora VM,由于某种原因,一段时间后总是开始进行非常缓慢的“sudo”身份验证(或一般的身份验证,例如 GUI 应用程序要求凭据)。它会正常工作,直到某个时刻 (*) 它开始等待 20 秒以上,然后才会显示密码提示。

(*) 那一刻可能是在我暂停并重新启动 VM 之后,但我无法可靠地重现这一点。

我想我将它追溯到与 DBus 有关的事情,因为执行 sudo 的“跟踪”给了我这个:

 0.000040 connect(8, {sa_family=AF_LOCAL, sun_path="/var/run/dbus/system_bus_socket"}, 33) = 0
 0.000095 fcntl(8, F_GETFL)         = 0x2 (flags O_RDWR)
 0.000035 fcntl(8, F_SETFL, O_RDWR|O_NONBLOCK) = 0
 0.000039 geteuid()                 = 0
 0.000038 getsockname(8, {sa_family=AF_LOCAL, NULL}, [2]) = 0
 0.000060 poll([{fd=8, events=POLLOUT}], 1, 0) = 1 ([{fd=8, revents=POLLOUT}])
 0.000041 sendto(8, "\0", 1, MSG_NOSIGNAL, NULL, 0) = 1
 0.000090 sendto(8, "AUTH EXTERNAL 30\r\n", 18, MSG_NOSIGNAL, NULL, 0) = 18
 0.000135 poll([{fd=8, …
Run Code Online (Sandbox Code Playgroud)

sudo dbus

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

sudoers 文件中的解析错误

我创建了一个用户kafka,我试图给他一个只运行/etc/init.d/kafka命令的 sudo 访问权限。

/etc/sudoers.d/kafka通过 Ansible添加了以下条目:

kafka ALL = NOPASSWD: /etc/init.d/kafka

但是,这完全破坏了 sudo 并出现以下错误:

/etc/sudoers.d/kafka:近线1语法错误
须藤:在/etc/sudoers.d/kafka靠近1号线分析错误
须藤:没有有效的sudoers的来源发现,戒烟
须藤:无法初始化政策插件

这是完整的 Ansible 片段:

- name: Create kafka user's group
  group:
    name: "{{ kafka_group }}"
    state: present

- name: Create kafka user
  user:
    name: "{{ kafka_user }}"
    state: present
    group: "{{ kafka_group }}"
    shell: /bin/bash

- name: Set up password-less sudo for kafka user
  copy:
    content: "{{ kafka_user }} ALL = NOPASSWD: /etc/init.d/{{ kafka_service_name }}"
    dest: "/etc/sudoers.d/{{ kafka_user …
Run Code Online (Sandbox Code Playgroud)

sudo init.d ansible

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

无法以非 root 用户身份远程重启 systemctl 服务

我有一个systemd.socket名为gunicorn.socket,我想在远程服务器上更新一些代码后重新启动。

我已按照允许非 root 用户重新启动服务中详述的步骤操作systemctl不断询问我的用户密码。这是我尝试systemctl restart gunicorn.socket与 user一起运行时所做的john

# added an appadmin group to allow the restart command to john
addgroup appadmin
usermod -a -G appadmin john
visudo
Run Code Online (Sandbox Code Playgroud)

sudoers

Cmnd_Alias MYAPP_CMNDS = /bin/systemctl start gunicorn.socket, /bin/systemctl stop gunicorn.socket, /bin/systemctl restart gunicorn.socket
%appadmin ALL=(ALL) NOPASSWD: MYAPP_CMNDS
Run Code Online (Sandbox Code Playgroud)

然后sudo systemctl restart gunicorn.socket在服务器上工作正常,但是当我远程尝试时,我得到:

ssh example.com "sudo systemctl restart gunicorn.socket"
Failed to restart gunicorn.socket: Interactive authentication required.
See …
Run Code Online (Sandbox Code Playgroud)

sudo socket gunicorn systemd systemctl

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

使用 SSSD 配置 Sudo

尝试使用Windows AD帐户登录Linux系统。使用 SSSD 配置成功。

使用 LDAP 作为身份和访问提供程序,使用 Kerberos 作为身份验证提供程序。

我在没有将 Linux 系统加入域的情况下完成了这一切。

现在我尝试将 LDAP 配置为 sudo 提供程序。但它并不成功。我无法提升广告用户的 sudo 权限。我什至尝试过使用 sudoers 文件,在那里我可以提升特定用户的权限,但不能提升广告组的权限。

这是 SSSD 配置 wrt sudo 配置

**sudo_provider = ldap

ldap_sudo_search_base = ou=groups,dc=ad,dc=example,dc=com
ldap_sudorule_object_class = sudoRole
ldap_sudorule_object_class = top
ldap_sudorule_command = ALL
ldap_sudorule_host = ALL
ldap_sudorule_user = %domain_group
ldap_sudorule_runasuser = ALL
ldap_sudorule_runas = ALL
ldap_sudorule_runasgroup = ALL
ldap_sudorule_option = !authenticate**
Run Code Online (Sandbox Code Playgroud)

我尝试在调试级别 7 启用日志记录,它提到无法加载本地规则。

问候,乌代。

linux openldap sudo sssd

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