linux 用户管理

部署软件的时候,经常会被要求不使用root账号(使用权限分为小的账号,减少对系统误操作带来的损失)。每次都需要新建用户,然后就系统学些了下linux 下面的用户管理。

linux 的多用户多任务

Windows 使用的时候,同时只能有一个用户使用。远程连接后面的用户,会把前面的挤下去。但是linux 使用ssh 客户端,可以同时使用多个用户账号登录服务器进行操作。当然每个用户使用服务器的时候可以执行多个任务,这就是linux 多用户多任务的最简单理解。

linux 用户角色(分组)

1.超级用户 root(0)

2.程序用户 (1~499)

3.普通用户(500~65535)

linux 通过UID作为用户账号标识,通过GID作为角色标识。

默认root用户,UID和GID都是0,拥有系统中的最高权限

普通用户是有root 用户创建的,一版运维使用。

程序用户是系统安装后系统默认存在的,默认情况下不能登录系统

所以我们一般使用最多的,应该是普通用户。


linux 用户和用户组的关系

多对多的关系,类似业务系统中,用户和角色的关系。

linux 系统中涉及到用户和用户组的文件主要有/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow四个文件

/etc/passwd

/etc/passwd 文件每一行定义了一个用户账号,使用:分割了7个字段。

字段1:帐号名,这是用户登陆时使用的账户名称,在系统中是唯一的,不能重名 

字段2:密码占位符x;早期的unix系统中,该字段是存放账户和密码的,由于安全原因,后来把这个密码字段内容移到/etc/shadow中了。这里可以看到一个字母x,表示该用户的密码是/etc/shadow文件中保护的。 

字段3:UID;范围是0-65535    

字段4:GID;范围是0-65535;当添加用户时,默认情况下会同时建立一个与用户同名且UID和GID相同的组。    

字段5:用户说明;这个字段是对这个账户的说明    

字段6:宿主目录;用户登陆后首先进入的目录,一般与"/home/用户名"这样的目录    

字段7:登录Shell  当前用户登陆后所使用的shell,在centos/rhel系统中,默认的shell是bash;如果不希望用户登陆系统,可以通过usermod或者手动修改passwd设置,将该字段设置为/sbin/nologin 即可。大多数内置系统账户都是/sbin/nologin,这表示禁止登陆系统。这是出于安全考虑的。


/etc/shadow

/etc/shadow 每一行内容也是使用:分割,共有9个字段

字段1:帐号名称

字段2:加密的密码

字段3:最近更改密码的时间;从1970/1/1到上次修改密码的天数    

字段4:禁止修改密码的天数;从1970/1/1开始,多少天之内不能修改密码,默认值为0    

字段5:用户必须更改口令的天数;密码的最长有效天数,默认值为99999    

字段6:警告更改密码的期限;密码过期之前警告天数,默认值为7;在用户密码过期前多少天提醒用户更改密码  

字段7:不活动时间;密码过期之后账户宽限时间3+5;在用户密码过期之后到禁用账户的天数    

字段8:帐号失效时间,默认值为空;从1970/1/1日起,到用户被禁用的天数

 字段9:保留字段(未使用),标志


/etc/group

/etc/group  每一行定义一个用户组,使用:分割成4个字段

字段1:组账户名称

字段2:密码占位符x;通常不需要设置该密码,由于安全原因,该密码被记录在/etc/gshadow中,因此显示为'x'。这类似/etc/shadow

字段3:组账户GID号,用户组ID

字段4:本组的成员用户列表;加入这个组的所有用户账号


用户组秘密的作用比如大型服务器,针对很多用户和用户组,定制一些关系结构比较复杂的额权限模型,设置用户组密码是极有必要的。比如不想让一些非用户组成员永久拥有用户组的权限和特性,这时就可以通过密码验证的方式来让某些用户临时拥有一些用户组特性,这时就要用到用户组密码


/etc/gshadow

/etc/gshadow  使用:分割成了4个字段

字段1:组账号的名称

字段2:加密后的密码字符串,这个字段可以空的或者!;如果是空的或有!,表示没有密码

字段3:本组的管理员列表;这个字段也可为空;如果有多个用户组管理员,用,号分隔

字段4:本组的成员列表;加入这个组的所有用户账户;列表中多个用户通过","分隔


账号管理

账号管理相关的文件

/etc/default/useradd

/etc/login.defs

/etc/skel/


/etc/skel

/etc/skel 是一个文件夹,改文件夹下面存在一些隐藏文件,当我们新增用户的时候,该目录下的文件都会被复制到用户的家目录下(/home/xx)。为新建用户提供了统一,标准的初始化环境。


/etc/login.defs

/etc/login.defs:文件是用来定义创建用户时需要的一些用户的配置文件。如创建用户时,是否需要家目录,UID和GID的范围,用户及密码的有效期限等等。


/etc/default/useradd

 /etc/default/useradd文件是在使用useradd添加用户时需要调用的一个默认的配置文件,可以使用useradd -D参数,覆盖默认配置,这样的命令格式来修改文件里面的内容,当然也可以直接编辑修改。我们先来看看它的内容

CentOs: 下useradd 和adduser 没有区别,都需要passwd 修改命令

Ubuntu:下useradd 啥配置都不会默认做,需要是用参数指定,adduser 会自动使用一些配置

所以创建用户的时候优先使用adduser 命令

用户管理命令

添加用户:useradd XX

adduser -p  XXpassword   XXusername   创建用户的同时设置密码

查看用户: cat /etc/passwd | grep xx

最后发现对于我来说只需要这个命令,差不多就够用了.....

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容