如题,局域网有一个 NAS ,安装的是 Ubuntu 。启用 Samba 共享后新建了许多专门用于 Samba 登录的用户。现在想对这些用户加以限制,不允许这些用户登录到 shell (包括 ssh 和直接在该设备上登录),请问该如何操作?
1
Osk 2022-02-26 15:30:56 +08:00 4
阻止本地登录: shell 设置为 nologin
阻止 ssh 登录: 配置文件中加它为拒绝登录, 不允许密码登录(不给这些用户加公钥) 另外: samba 的 smbpassws 和 passwd 可以是不一样的(如果我没记错), 也就是说, 登陆密码随机数设起, smbpasswd 设成 smb 的密码就行 |
3
Osk 2022-02-26 15:37:03 +08:00
对了, 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 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 组名 |
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/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 都满足需求,你可以直接编辑这个文件,按照以上格式编辑即可 |
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 就行了
|