Linux用户专题:用户账户是如何架构的?

扫盲说明:

Linux用户分为三类:超级用户、系统用户、普通用户
超级用户:root (uid=0)

系统用户:又称伪用户(uid的范围是1-499,一般来说 uid < 500 的都是系统 ID),与系统和程序服务相关,因为并不是真实的使用者,所以叫伪用户,如bin、daemon、shutdown、halt、nobody等,任何Linux系统都默认有这些伪用户;mail、ftp、sshd等,与Linux系统的进程相关;后面会单独说明一下nobody用户。

普通用户:(uid 500-60000)也就是我们平时所使用的用户

用户信息存放位置
cat /etc/passwd  # 查看用户信息

结果如图:

含义:
1:用户名,用户登录系统时使用的用户名
2:密码位
3:UID,用户标识号
4:GID,缺省组标识号
5:注释性描述
6:宿主目录,用户登录系统后的缺省目录
7:用户使用的shell,默认为bash
用户组

每个用户至少属于一个用户组,每个用户组拥有多个用户,每个用户组共享共同的权限

cat /etc/group # 查看用户组

格式说明
root:x:0:
root:组名,
x:组密码位
0:组标识号
nobody用户专题

nobody 是系统用户,是一个不能登陆的帐号,一个特殊用途的用户 ID ,一些服务进程如apache,aquid等都采用一些特殊的帐号来运行,比如nobody,news,games等等。

服务器程序提权有专用的办法来防止恶意使用的。

除了 nobody ,常见的还有 ftp 、ssh 什么的。有的不是用来跑服务,而是用来占坑,主要是用用户组的权限管理进行权限设置,这个时候会有一个占坑用的同名 ID 加入到用户组。这种情况好像主要是为了兼容。

nobody的应用举例

最常见的web应用就使用到了nobody用户。
问题描述:

上午业务人员反映,系统响应很慢,界面要刷新很久才出得来。查后台也没有报什么错,我们系统是用nginx做负载均衡。惯性地不走负载均衡而直接访 问单节点应用,发现响应很快,很正常。初步定位问题出在nginx上,然后查nginx日志,发现有很多错误,错误中有“13: Permission denied”这个信息,明显是权限问题,很奇怪,之前运行都很正常啊。后来一问才知道,维护人员做了操作。

系统上nginx安装时使用的是root用户,也是用root用户启动的,所以要修改配置的时候需要使用root用户,管理上不方便,所以维护人员 心血来潮修改了nginx的权限(后来知道他是使用这个命令修改的权限chown -R user:group $nginxdir)。就是将nginx的用户和组都换掉了,但是这样为什么会造成“响应慢”呢?

问题原因及解决:

前面提到在linux上有些应用程序的一些进程会默认使用nobody这个用户来启动,以保安全。nginx有两种进程,除主进程之外的工作进程都 是用nobody这个用户启动的(nginx工作进程的数量使用worker_processes这个参数来设定)。而工作进程要访问nginx下这两个 目录client_body_temp和proxy_temp(这两个目录按我的理解是缓存一些静态文件,比如图片或者css文件什么的,以提高 nginx访问速度),权限变更后,造成工作进程访问不了这两个目录下的内容,造成某些图片和连接打不开,就像响应很慢一样。将权限变更一下就OK了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值