LINUX学习笔记
linux系统账户是什么?
来自百度
系统帐号就是系统用的帐号,区别于个人帐号。
其实就是一个帐号,和普通的个人帐号区别就是这个 ID 是系统程序用的。
Linux 下面的每个程序都是要有用户帐号来运行的,一些对外提供服务的程序,为了安全做隔离,都会用非 root 帐号来运行,这些非 root 帐号,专门用来跑程序的帐号,就是系统帐号。其实这些程序也可以用一般的个人帐号来跑,不过一旦服务程序被攻破,这个帐号的个人数据也就会暴露了。
一般说来,系统帐号的帐号编号都是 <500 的,不过其实并不绝对。
我的理解
我理解就是Linux系统下,每个程序都需要一个账户来运行。有很多底层程序,类似NGINX,也需要一个系统账户来运行。如果使用个人账户,有很大风险,所以需要建立一个仅仅用来跑程序而无法登录使用的账户。这在编译安装包时可指定专门建立的系统账户来设定。举例及命令如下(以centOS 7为例):
useradd -r -s /sbin/nologin www
#-r 代表建立系统账户,-s代表指定用户登入后所使用的shell,/sbin/nologin为路径,www为用户名
当使用命令configure时(在解压缩安装包后,检测你的安装平台的目标特征,生成Makefile),可指定安装路径,运行该程序的系统账户。例如(结合上一条命令来看):
./configure --prefix=/usr/local/nginx --user=www -group=www
就酱。