AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 2362
Accepted
John McAleely
John McAleely
Asked: 2009-05-02 05:22:40 +0800 CST2009-05-02 05:22:40 +0800 CST 2009-05-02 05:22:40 +0800 CST

如何创建交互式守护进程登录?

  • 772

我在 debian/linux 机器上运行一项服务,该机器在启动时运行一个“屏幕”会话,我总是可以附加到该会话。

我想创建一个可以运行此服务的用户名。目前我使用“常规”登录帐户。我想增加一个专用于这个服务的用户名的安全性(类似于 'nobody' 或 'web' 与 apache 一起使用的方式)。

要求:

  • 无法在本地或远程登录(因此无需管理密码)
  • 获得批准的用户能够访问屏幕会话并与服务交互。

我想该解决方案将创造性地使用 su/sudo 以及如何创建帐户的详细信息。

linux debian login user-management daemon
  • 3 3 个回答
  • 2254 Views

3 个回答

  • Voted
  1. Best Answer
    C. K. Young
    2009-05-02T05:30:24+08:002009-05-02T05:30:24+08:00

    首先,创建screen会话运行的帐户(例如称为screenimage),以及允许使用它的一组用户(例如screenusers):

    adduser --system --group screenimage
    addgroup --system screenusers
    

    然后对于每个允许使用它的用户,将它们添加到screenusers组中:

    adduser USER screenusers
    

    然后,将批准的用户添加到/etc/sudoers:运行visudo并添加该行

    %screenusers ALL = (screenimage) /usr/bin/screen
    

    ETA:解决这篇文章的其他答案:--system创建没有外壳或密码的帐户。这sudoers条线意味着用户只能screen以用户身份运行screenimage。

    • 5
  2. Mykroft
    2009-05-02T05:27:39+08:002009-05-02T05:27:39+08:00

    创建用户是最容易的部分。只需使用 adduser 脚本添加一个用户(这是 debian 特定的,但我注意到它在您的标签中),然后为该用户编辑生成的 /etc/passwd 行。将 更改x为 a!这使得密码永远不会匹配为有效。更改/bin/bash为/bin/false,如果有人确实以该用户身份登录,他们将不会获得 shell。

    至于其余的,这实际上取决于您尝试运行的服务或您需要如何与之交互。我觉得可能有比在屏幕会话中运行它更好的方法来解决这个问题。

    • 2
  3. Alnitak
    2009-05-02T05:29:02+08:002009-05-02T05:29:02+08:00

    好的,怎么样(在 /etc/rc.something 中):

    sudo -u user screen -d -m service
    

    并将用户的外壳设置为/bin/false.

    • 1

相关问题

  • 你最喜欢的 Linux 发行版是什么?[关闭]

  • 您如何优化新用户设置?

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve