
如题,局域网有一个 NAS ,安装的是 Ubuntu 。启用 Samba 共享后新建了许多专门用于 Samba 登录的用户。现在想对这些用户加以限制,不允许这些用户登录到 shell (包括 ssh 和直接在该设备上登录),请问该如何操作?
1 Osk 2022-02-26 15:30:56 +08:00 阻止本地登录: shell 设置为 nologin 阻止 ssh 登录: 配置文件中加它为拒绝登录, 不允许密码登录(不给这些用户加公钥) 另外: samba 的 smbpassws 和 passwd 可以是不一样的(如果我没记错), 也就是说, 登陆密码随机数设起, smbpasswd 设成 smb 的密码就行 |
3 对了, samba 的用户创建时可以就 home 设置为 /dev/null , 甚至可以试试 passwd -l 锁定这些用户看影响 samba 访问不. |
4 jinliming2 2022-02-26 15:42:59 +08:00 @LxnChan chsh --shell /sbin/nologin 用户名 |
5 Osk 2022-02-26 15:44:51 +08:00 @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 组名 |
7 EvineDeng 2022-02-26 19:18:29 +08:00 如果是已经创建的用户,直接改 /etc/passwd 就好了,把登陆 shell 改成 nologin ,一般是 /usr/bin/nologin |
8 EvineDeng 2022-02-26 19:19:44 +08:00 也可能是 /usr/sbin/nologin |
9 seers 2022-02-26 19:31:56 +08:00 shell 改成 /sbin/nologin 或者 /bin/false |
10 AllenHua 2022-02-26 22:44:05 +08:00 我给楼主一个例子,以下内容节选自我的某台机器的 /etc/psswd 文件 ``` 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 都满足需求,你可以直接编辑这个文件,按照以上格式编辑即可 |
11 yuedingwangji 2022-02-27 02:53:57 +08:00 难道不应该是配置一个本地不允许的用户+samber 配置虚拟用户么 |
12 mingl0280 2022-02-27 03:26:02 +08:00 via Android 直接改 passwd 最后的 shell 改成 /bin/false 就行了 |