您的位置:首页 > 运维架构 > Linux

linux用户管理(1)

2015-02-08 22:16 78 查看
1 Linux用户分三种:

超级用户(root UID=0)

普通用户(UID 500-60000) 注意只要修改了UID=0,此普通用户可以变为超级用户

伪用户( UID 1-499 ),一般与linux系统和服务相关,无法登陆和没有宿主目录

2 用户组

1 每个用户至少属于一个组

2 每个用户组可以包括多个用户

3 同一用户组的用户共享有该组共有的权限

3 配置文件

(1) 用户信息文件:/etc/passwd

查看passwd文件会发现有以下内容



root :x :0 :0 :root :/root :/bin/bash

用户名:密码位(并不存放密码):UID(用户标示符号):GID(缺省组标识号) :描述信息:宿主目录:命令解释器(默认为bash)

(2) 密码文件:/etc/shadow

查看shadow文件会发现有以下内容:



root :$1$.4oUiqmJ$5/KdcH8wSp4yVq7DyEzM/. :16281 : 0 :99999 : 7 :::

用户名:加密后的密码 :最后一次修改密码的时间:两次修改密码之间的最小天数:密码保持有效的最大天数:警告时间:

注意密码一般是先写到passwd中,然后再转到shadow中

(3) 新用户信息文件:/etc/skel



每次创建一个用户,会把/etc/skel目录下面的所有文件拷贝到自己的宿主目录下

(4)用户配置文件:/etc/login.defs,/etc/defaule/useradd(定义了一些添加用户的缺省的设置信息),/

(5)登陆信息:/etc/motd

普通用户为什么能修改密码?

如下图可以看出普通用户是没有更改自己密码的权限的:



看到普通用户对于passwd文件只有读的权限,对于shadow文件没有任何权限,普通用户应该是修改不了密码的,可是为啥普通用户还可以修改密码了?

密码不在于更改文件的权限上面,而在passwd命令的权限上面,看到passwd命令第三个位置是s而不是常用的x。这个就是普通用户可以更改密码的根本原因,这个从而引出了SetUID。

SetUID定义:当一个可执行程序具有SetUID权限,用户执行这个程序时,将以这个程序所有者的身份执行。

设置一个命令为SetUID:

chmod u+s

chomd 4755

取消:

chmod u-s

chomd 755

例子 将touch命令授予SetUID权限



看到原始的touch命令是谁使用,所有者就是谁,修改touch命令的所有者权限,令其权限为s



再次用touch命令创建文件,会发现所有者变为root了,如下图。



SetGID定义:当一个可执行程序具有SetGID权限,用户执行这个程序时,将以这个程序所有组的身份执行。

设置一个命令为SetGD:

chmod g+s

chomd 2755

取消:

chmod g-s

chomd 755

粘着位:如果一个权限为777的目录,被设置了粘着位,每个用户都可以在目录下面创建文件,但是只可以删除自己是所有者的文件。

设置

chmod o+t

chomd 17777



添加用户

命令名称:useradd



选项含义:



用户组命令

1 添加组

命令名称:groupadd

用法:group -g 999 admin

创建用户组 admin GID是999

2 删除组:

命令名称:groupdel 组名

用法 groupdel admin

3 修改用户组信息:

命令名称:groupmod

用法:groupmod -n apache admin

修改admin 组名apache

4 把用户加入到组

1 命令名称:usermod

usermod -G 组名 用户名

2 命令名称:gpasswd

gpasswd -a 用户名 组名

5 切换到缺省的组

命令名称:newgrp

用法: newgrp webadmin

6 禁止用户切换到该组

用法:gpasswd -R webadmin

7 查看用户属于哪个组

命令名称:groups

用法:groups
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: