Linux 中 Shell -- /sbin/nologin 的理解

一、介绍

在 Linux 系统中,shell 解析器分为多种,其中我们常用的 shell 解析器为 /bin/bash、/bin/sh
查看 shell 可以我们可以使用“cat /etc/shells”

# /etc/shells: valid login shells
/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/bin/dash
/usr/bin/dash

在这些 shell 里,有一个特殊的 shell -- /sbin/nologin

简单介绍下对 /sbin/nologin 的理解:

系统账号的 shell 使用 /sbin/nologin,此时无法登录系统,即时给了密码也不行。

所谓“无法登录”,指的是仅是这个用户无法使用 bash 或者其他 shell 来登录系统而已,并不是说这个账号就无法使用系统资源。

举例来说,在各个系统账号中,打印作业有 lp 这个账号管理,www 服务器有 apache 这个账号管理,它们都可以进行系统程序的工作,但就是无法登录主机而已。

有时候有些服务,比如邮件服务,大部分都是用来接收主机的邮件而已,并不需要登录。假如有账号试图连接我的主机取得 shell,我们就可以拒接。 

二、使用

1、创建用户

sudo useradd test

2、更改用户的默认 shell 为  /sbin/nologin

sudo chsh -s /sbin/nologin test

3、修改 test 用户的密码

sudo passwd test

4、切换至 test 用户

su test

最终显示:

This account is currently not available.

 

(SAW:Game Over!)

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这是一个Linux系统命令b'useradd',其-m表示创建用户时同时创建用户的家目录,-s /sbin/nologin表示将用户的默认Shell设置为/sbin/nologin,即该用户不能登录系统。 ### 回答2: useradd是Linux系统的一个命令,用于创建新用户。其-m选项表示创建用户的同时创建用户的home目录,如果目录不存在就创建一个,如果目录已存在就不会影响原有目录的内容。-s选项用于指定新用户的默认shell,/sbin/nologinLinux一个特殊的shell,它不会允许用户通过shell登录系统,只允许系统服务运行时使用该用户身份来运行程序。该选项主要用于创建系统级用户,因为系统级用户不需要登录Shell就可以运行指定服务,通常也不应该允许登录Shell,以避免安全隐患。 举个例子,我们可以通过以下命令创建一个名为test的用户并分配/home/test目录作为该用户的home目录,并将该用户的默认shell设置为/sbin/nologin: useradd -m -s /sbin/nologin test 通过这个命令,我们已经创建了一个新用户test并成功设置了/home/test目录作为其家目录,并限制了该用户的shell登录选项。对于普通用户可以设置一个正常shell,但是对于服务账号或特定权限的用户,为了保证系统的稳定安全性,可以使用/sbin/nologin来限制其登录权限,以避免恶意攻击或误操作。 ### 回答3: useradd命令是Linux下用于创建新用户账户的命令。-m选项用于创建用户时同时创建该用户的home目录,如果不存在则创建,否则不会做任何操作。同时,该选项会将/home目录的属主设为新用户,该目录的权限也会设置为700,仅该用户本人有读、写、执行权限。通常做法是创建一个同名的home目录作为用户的工作目录,提高管理和使用的效率。 -s选项用于指定用户的默认shell,即用户登录后默认使用的命令行解释器。/sbin/nologin是一种特殊的shell,它不允许用户登录,一旦用户登录成功后会立即退出,这种shell一般用于服务账户和特定用途的账户,例如FTP、HTTP、SSH等服务器服务账户。 因此,useradd -m -s /sbin/nologin命令是在Linux系统下创建一个新用户账号,同时指定创建该用户的home目录,并将其属主设置为新用户,命名该用户的默认shell为/sbin/nologin,以避免该用户能够登录系统使用shell来操作系统。常用于创建服务型账户和运行一些特定程序的账户,提高系统安全性和运行效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值