V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
LxnChan
V2EX  ›  Linux

如何让 Ubuntu 中的部分用户无法登录到 shell?

  •  
  •   LxnChan ·
    lxnchan · 2022-02-26 15:25:29 +08:00 · 3345 次点击
    这是一个创建于 783 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,局域网有一个 NAS ,安装的是 Ubuntu 。启用 Samba 共享后新建了许多专门用于 Samba 登录的用户。现在想对这些用户加以限制,不允许这些用户登录到 shell (包括 ssh 和直接在该设备上登录),请问该如何操作?

    第 1 条附言  ·  2022-02-27 11:02:43 +08:00
    目前是解决了,多方吸收了一下各种方案。

    具体的命令我写在这里了,有兴趣的可以来看一下: https://lxnchan.cn/samba.html#%E6%B7%BB%E5%8A%A0%E7%94%A8%E6%88%B7
    12 条回复    2022-02-27 03:26:02 +08:00
    Osk
        1
    Osk  
       2022-02-26 15:30:56 +08:00   ❤️ 4
    阻止本地登录: shell 设置为 nologin
    阻止 ssh 登录: 配置文件中加它为拒绝登录, 不允许密码登录(不给这些用户加公钥)

    另外: samba 的 smbpassws 和 passwd 可以是不一样的(如果我没记错), 也就是说, 登陆密码随机数设起, smbpasswd 设成 smb 的密码就行
    LxnChan
        2
    LxnChan  
    OP
       2022-02-26 15:35:41 +08:00
    @Osk 请问 Shell 如何设置为 nologin ?是有配置文件吗还是如何配置?谢谢。
    Osk
        3
    Osk  
       2022-02-26 15:37:03 +08:00
    对了, samba 的用户创建时可以就 home 设置为 /dev/null , 甚至可以试试 passwd -l 锁定这些用户看影响 samba 访问不.
    jinliming2
        4
    jinliming2  
       2022-02-26 15:42:59 +08:00
    @LxnChan
    chsh --shell /sbin/nologin 用户名
    Osk
        5
    Osk  
       2022-02-26 15:44:51 +08:00   ❤️ 2
    @LxnChan 创建用户时使用这些参数:
    useradd --home /dev/null --shell /sbin/nologin --no-create-home 用户名

    已有用户: chsh -s /sbin/nologin 用户名



    sshd 配置:
    /etc/ssh/sshd_config 中加入:
    DenyUsers 用户 1 用户 2

    或者将 samba 用户加入一个组, 然后 sshd_config 中加入
    DenyGroups 组名
    LxnChan
        6
    LxnChan  
    OP
       2022-02-26 17:07:36 +08:00
    @Osk adduser 命令中可以指定该用户禁用登录和禁用密码
    EvineDeng
        7
    EvineDeng  
       2022-02-26 19:18:29 +08:00
    如果是已经创建的用户,直接改 /etc/passwd 就好了,把登陆 shell 改成 nologin ,一般是 /usr/bin/nologin
    EvineDeng
        8
    EvineDeng  
       2022-02-26 19:19:44 +08:00
    也可能是 /usr/sbin/nologin
    seers
        9
    seers  
       2022-02-26 19:31:56 +08:00
    shell 改成 /sbin/nologin 或者 /bin/false
    AllenHua
        10
    AllenHua  
       2022-02-26 22:44:05 +08:00
    我给楼主一个例子,以下内容节选自我的某台机器的 /etc/passwd 文件

    ```
    www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
    ntp:x:106:111::/home/ntp:/bin/false
    ```

    /usr/sbin/nologin 和 /bin/false 都满足需求,你可以直接编辑这个文件,按照以上格式编辑即可
    yuedingwangji
        11
    yuedingwangji  
       2022-02-27 02:53:57 +08:00
    难道不应该是配置一个本地不允许的用户+samber 配置虚拟用户么
    mingl0280
        12
    mingl0280  
       2022-02-27 03:26:02 +08:00 via Android
    直接改 passwd 最后的 shell 改成 /bin/false 就行了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1674 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 16:42 · PVG 00:42 · LAX 09:42 · JFK 12:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.