linux的权限和用户管理
linux通过对配置文件的修改来对用户信息的查看和管理,
Linux中权限管理
1./etc/passwd配置文件
当我们对一个配置文件中的含义不清楚时,可以用以下命令查看配置文件的帮助:
man 5 passwd
/etc/passwd文件的每一行如下格式:
root:*:0:0:System Administrator:/var/root:/bin/sh
以下是上面每个字段的含义:
root: 表明当前用户名
x(*) :表示该用户是有密码的,具体存放密码的文件在:/etc/shadow,如果x不写,则可在登陆时不用密码
0: userid,root用户的uid始终为0,系统通过uid来唯一识别一个用户(**但多个用户可以共享一个id:一个常用的方法是:将一个用户的权限提升到root:就把改用户的uid改成0,该用户就和root有一样的权限**)
uid的取值规范:
0 :一定是超级用户
1-499 : 系统保留的伪用户(不要动)
500-以上:真正的用户**
0:(Gid)group id
用户新建时的初始组,不要轻易修改
System Administrator:用户别名,相当于注释,对这个用户的说明
/var/root: 该用户默认的home 目录
/bin/sh :该用户登录时打开的shell(如果修改不对,会导致改用户永远无法登陆)
2) /etc/shadow 对当前用户的密码进行管理
1)root:用户名
2)加密后的密码: * 或 !!表示没有密码
添加一个用户,禁用这个用户:在加密后的密码字段之前加个 !,则可以让这个用户禁止登陆
密码的时间管理:
3)密码的设置时间 据1970年1月1日 有多少天
4)0表示两次改密码的时间间隔,要多少天才能再改一次密码
5)密码的有效期: 在多长时间内是有效的 99999 天 表示200多年,相当于永远有效 ,若为90 表示每90天要修改一次密码
6)密码到期前多少天提示: 7 表示密码将要过期的83天会提示用户
7) 密码到期后宽限时间: 到期时间之后宽限几天,0 表示一到期立即失效
8)账号失效的时间戳: 一到时间戳表示的时间就立即失效
9) 保留字段
3)组信息文件
/etc/group,linux 每添加一个用户,默认会生成一个与用户名相同的组
1)组名
2)x标志有组密码
3)group ID:
注意: 如果用户查询/etc/passwd后用户对应的gid,然后再/etc/group里面查询相应的组id对应的组,就知道该用户属于哪个组
4)组shadow
没有必要的话,不要轻易修改
**linux 的目录组织:
/etc/ 目录下存放linux 的管理 ,配置文件
/var/存放 linux的可变数据保存位置, 邮件会随时变化,因此在 var目录下**
Linux的用户管理
一、添加一个用户
1.useradd命令
比较常用的选项:
-u: 手动制定userid ,如果userid为0,则表明添加一个具有root权限的用户
-c: 为该用户添加说明或备注
-G: 制定该用户的附加组
example:useradd -u 0 -c “guoqingpei的账号” -G root gqp
添加一个用户的缺省设置的配置文件:
/etc/default/useradd
/ect/login.defs
**注意:如果将上次密码修改时间戳改为0,则改用户一旦登录,必须需要修改密码
/etc/shadow 下的上次修改时间戳改为0
[shadow第3个字段]**
2.passwd命令
passwd 用户名 为其添加密码
注意:只有为用户添加密码后才算是真正建立一个用户,会自动在/home/添加的用户名
将添加的用户赋予管理员权限,只需要将在/var/passwd中将新建用户的uid改为0即可
每当新建一个用户(为该用户添加密码)后,系统会自动为该用户添加一个home目录,home目录里面的内容,都是从/etc/skel/ 目录下拷贝过来的(skel——表示skeleton , 是创建新用户的骨架或模版文件存储的地方)
使用passwd让某个用户暂时禁止登录:
passwd -l qpguo #(lock):禁止qpguo登录
passwd -u qpguo #(unlock); 解除对qpguo的禁止
**其本质是对/ect/shadow文件下:
qpguo对应的密码加了个!!(加一个!也可以)**
二、修改用户信息
usermod:针对一个已经存在的用户账户进行修改
useradd能使用的选项,-u,-G,-C usermod命令都可以使用
三、删除一个用户
添加一个用户或者删除一个用户实际上修改以下6个文件:
/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
/var/spool/mail/qpguo
/home/qpguo
可以逐渐在以上文件中删除与qpguo有关的文件,或者直接:
userdel -r qpguo
#-r : recursively 表示删除qpguo的同时删除该用户的home 目录
**用whoami: 查看当前登录的账户
id + 用户账户:查看当前用户的id及组id**
四、切换为超级用户
su - root
**注意:- 选项非常重要,表示切换为root用户的同时,将shell环境变量一并切换
env-查看当前的环境变量
如果只执行su root 表示只切换当前用户但没有切换环境变量,是错误的!!!**
五、把某个用户添加或删除到一个附加组
添加,删除只用修改:/etc/group 相应的组的最后一个字段添加用户名即可(用“,”去添加)