Unix/Linux系统下的nobody用户是什么?
1、Windows系统在安装后会自动建立一些用户帐户,在Linux系统中同样有一些用户帐户是在
系统安装后就有的,就像Windows系统中的内置帐户一样。
2、它们是用来完成特定任务的,比如nobody和ftp等,我们访问LinuxSir.Org的网页程序时,官网的服务器就是让客户以'nobody'身份登录的(相当于Windows系统中的匿名帐户);
我们匿名访问ftp时,会用到用户ftp或nobody。
3、首先,nobody是一个普通用户,非特权用户。 使用nobody用户名的'目的'是,使任何人都可以登录系统,但是其 UID 和 GID 不提供任何特权,即该uid和gid只能访问人人皆可读写的文件。
4、其次,许多系统中都按惯例地默认创建一个nobody,尽量'限制它的权限至最小',当服务器向外服务时,可能会让client以nobody的身份登录。
5、nobody就是一个普通账户,因为默认登录shell是'/sbin/nologin',所以这个用户是无法直接登录系统的,也就是黑客很难通过漏洞连接到你的服务器来做破坏。此外这个用户的权限也给配置的很低。因此有比较高的安全性。一切都只给最低权限。这就是nobody存在的意义。
Unix/Linux系统下用户shell为/sbin/nologin是什么意思?
如果一个用户的默认shell设置为/sbin/nologin 则这个用户是禁止登陆系统的;
这个nologin的作用就是限制某些用户通过ssh登陆到shell上。
比如日常可以将 nginx mysql php-fpm这些应用的用户默认shell设定为/sbin/nologin
主要是提升系统安全性
系统账号的shell使用 /sbin/nologin ,此时无法登陆系统,即使给了密码也不行。
所谓“无法登陆”指的仅是这个用户无法使用bash或其他shell来登陆系统而已,并不是说这个账号就无法使用系统资源。举例来说,各个系统账号中,打印作业有lp这个账号管理,www服务器有apache这个账号管理,他们都可以进行系统程序的工作,但就是无法登陆主机而已。
有时候有些服务,比如邮件服务,大部分都是用来接收主机的邮件而已,并不需要登陆。假如有账号试图连接我的主机取得shell,我们就可以拒绝。
有时可以用使用 /etc/nologin 文件临时禁止其他用户登录,具体做法是在/etc/目录下创建一个名称为 nologin 的文件。
例如:
#touch /etc/nologin