Ubuntu中用useradd创建用户时没指定家目录和shell版本,就不能su切换到新用户

本文详细介绍了在Ubuntu22.04Server上使用useradd命令创建用户时遇到的问题及解决方法,包括指定家目录、shell版本的重要性。通过案例展示了如何正确使用useradd的选项如-m、-s、-d等,以及adduser命令的便利性。同时,提到了userdel和deluser命令的使用,特别是删除用户时的选项--remove-home和--remove-all-files的注意事项。
摘要由CSDN通过智能技术生成

环境:Ubuntu22.04Server版,XSHELL7免费版连接

问题:root用户用useradd命令创建用户,并设定密码:

 然后su切换到新建的用户,切不过去:

只好退出了:

用新建的用户登录,提示如下错误:

断开连接,再次用新建的用户登录,不提示这个错误了,但还是登不上去:

经过学习得知, useradd命令创建用户,如果不加参数,不会指定用户的家目录、shell版本和密码。而我刚刚用-m参数自动创建了家目录,但是没有指定shell版本。

用-s参数指定shell版本,就可以了:

因此用useradd命令创建用户,应该在创建时指定用户的家目录、shell版本。

需要注意两点:

1、useradd创建用户时什么也没指定,查看/etc/passwd,系统会默认在其信息中标注其家目录和shell版本:

 不过系统虽然标注上了,但是新建的用户还是没有家目录:

自然也没法切换过去:

如前所述,创建用户时没有用-s指定shell版本,虽然在/etc/passwd中系统会标注其shell版本 ,但还是无法正常切换:

 useradd命令另一个比较常用的选项是-d,如果创建用户时想指定一个已存在的目录做其家目录,用这个参数。如果再加上-m,表示指定的目录若不存在,就自动创建:

但是这样,该目录的所属用户和所属组不会自己变成新建的用户和其所在组:

如果要更改,用chown改:

 另外adduser命令也可以创建用户,而且系统会自动指定其家目录、shell版本、并自动要求创建其密码。相应地,删除用户可以使用userdel、deluser两个命令。我备注的参考资料的作者写的很详细,可以直接看那篇文章。这里只补充一下,deluser命令的两个参数选项:

--remove-home:删除用户时一并删除其家目录和邮件池

--remove-all-files:从系统中删除用户拥有的所有文件

从man手册中看到,当使用了--remove-all-files后,--remove-home就不起作用了:

另外即便用户的家目录不是属于该用户的,删除时使用--remove-home,也会把该目录一起删掉:

 

参考资料:wq_0708,Ubuntu创建用户 

VSFTP(Very Secure FTP Server)是一个开源的轻量级FTP服务器,用于提供基本的文件传输服务。如果你想在VSFTP中创建用户并限制其只能访问特定目录,但不能访问上层目录,你可以按照以下步骤操作: 1. **安装和配置VSFTP**: - 首先,从VSFTP官网下载源码或者通过包管理器安装(比如Debian/Ubuntu使用`apt-get install vsftpd`)。 - 完成基础配置,通常位于 `/etc/vsftpd.conf` 文件。 2. **创建用户**: - 使用`useradd`命令创建用户,如 `sudo useradd -d /path/to/home/user_name ftp_user`,指定用户的主目录,这里设为不能访问上层目录的位置。 3. **编辑用户权限**: - 打开vsftpd配置文件,在 `[user_config]` 或 `[virtual_users]` 部分,添加或修改对应用户的信息,例如: ``` local_enable=YES chroot_local_user=YES pam_service_name=vsftpd user_sub_token=$USER ``` `- `local_enable=YES` 允许本地登录。 `- `chroot_local_user=YES` 将用户的根目录锁定在其目录内,防止他们向上层目录移动。 `- `pam_service_name=vsftpd` 和 `user_sub_token=$USER` 用于PAM认证,确保每个用户只能看到自己的资源。 4. **限制目录访问**: - 确保用户只能访问的目录有适当的读写权限,例如: ``` chmod 700 /path/to/home/user_name chmod 550 /path/to/home/user_name/public_dir ``` `- `chmod 700` 设置用户目录为私有(只有用户自己能进)。 `- `chmod 550` 设置公共目录为只读,允许用户查看和下载内容。 5. **重启VSFTP服务**: - 修改完配置后,重启vsftpd服务 `sudo systemctl restart vsftpd`.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值