前言
遇到这个问题是因为在安装ftp时,创建的ftper用户家目录是默认的/home/ftper,想要更改为/home/sillp
更新历史
2022-11-09 10:14
先了解useradd
先了解一下linux是怎么创建用户的命令useradd
语法:
useradd [-mMnr][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s <shell>][-u <uid>][用户帐号]
useradd -D [-b][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s <shell>]
参数说明:
-c<备注> 加上备注文字。备注文字会保存在passwd的备注栏位中。
-d<登入目录> 指定用户登入时的起始目录。
-D 变更预设值.
-e<有效期限> 指定帐号的有效期限。
-f<缓冲天数> 指定在密码过期后多少天即关闭该帐号。
-g<群组> 指定用户所属的群组。
-G<群组> 指定用户所属的附加群组。
-m 制定用户的登入目录。
-M 不要自动建立用户的登入目录。
-n 取消建立以用户名称为名的群组.
-r 建立系统帐号。
-s 指定用户登入后所使用的shell。
-u 指定用户ID。
例子1:
创建一个家目录为/usr/local/apache,shells为/bin/false(不能登录系统),uid为1000的用户apache
useradd -d /usr/local/apache -s /bin/false -u 1000 apache
可在/etc/passwd中查看结果
[root@localhost ~]# cat /etc/passwd |grep apache
apache:x:1000:1000::/usr/local/apache:/bin/false
可检查对应家目录,已经自动创建,并修改了文件所属权限为 apache:apache
[root@localhost ~]# ll /usr/local/ |grep apache
drwx------. 2 apache apache 62 11月 19 10:22 apache
例子2:
创建一个家目录为/hoe/sillp,不能登录系统的用户fpter
useradd -d /home/sillp -s /bin/nologin ftper
[root@localhost ~]# cat /etc/passwd |grep ftper
ftper:x:1001:1001::/home/sillp:/bin/nologin
正片儿usermod
usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-l <帐号名称>][-s <shell>][-u <uid>][用户帐号]
参数说明:
-c<备注> 修改用户帐号的备注文字。
-d登入目录> 修改用户登入时的目录。
-e<有效期限> 修改帐号的有效期限。
-f<缓冲天数> 修改在密码过期后多少天即关闭该帐号。
-g<群组> 修改用户所属的群组。
-G<群组> 修改用户所属的附加群组。
-l<帐号名称> 修改用户帐号名称。
-L 锁定用户密码,使密码无效。
-s 修改用户登入后所使用的shell。
-u 修改用户ID。
-U 解除密码锁定。
例子:
更改登录目录
usermod -d /home/hnlinux root
改变用户的uid
usermod -u 777 root
修改为不能登录的用户
usermod -s | -shell /bin/false username
usermod -s | --shell /usr/sbin/nologin username
补充
说明及比较/bin/false
/bin/false 什么也不做只是返回一个错误状态,然后立即退出。将用户的 shell 设置为 /bin/false,用户会无法登录,并且不会有任何提示。
/usr/sbin/nologin
nologin 会礼貌的向用户显示一条信息,并拒绝用户登录:
This account is currently not available.
有一些软件,比如一些 ftp 服务器软件,对于本地非虚拟账户,只有用户有有效的 shell 才能使用 ftp 服务。这时候就可以使用 nologin 使用户即不能登录系统,还能使用一些系统服务,比如 ftp 服务。/bin/false 则不行,这是二者的重要区别之一。
/etc/nologin
如果存在 /etc/nologin 文件,则系统只允许 root 用户登录,其他用户全部被拒绝登录,并向他们显示 /etc/nologin 文件的内容。
参考资料
https://www.runoob.com/linux/linux-comm-useradd.htmlhttps://www.runoob.com/linux/linux-comm-usermod.html