Linux账号管理(笔记)

来源:互联网 发布:java多线程优点 编辑:程序博客网 时间:2024/05/21 02:35

Linux账号和用户组

每个登录的用户都会有两个ID : UID(UserID,用户ID)GID(GroupID,用户组ID)

用户ID(UID)

/etc/passwd

用户密码数据

/etc/shadow

用户组ID(GID)

/etc/group

用户组密码

/etc/gshadow

 

/etc/passwd文件结构:

每一行都代表一个账号,有几行就代表几个账号,很多账号本来就是系统正常运行所必须的,可以简称为系统账号,不可随意删除;每一行使用 " : "分隔开,共有7个字段,分别是:

账号名称密码UIDGID用户信息说明列主文件夹Shell

账号名称

账号,对应UID

密码

早期Unix密码就放在此字段,但因为此文件特性是所有程序可读取,为了数据安全,后来将这个字段密码数据改放到/etc/shadow

UID

id范围:

0(系统管理员)1~ 499(系统账号)500~ 65535(可登录账号,223次方-1)

Tip :一个系统上的系统管理员不见得只有rootUID0即为系统管理原;

GID

 /etc/group ,用来规定组名GID的对应信息

用户信息说明列

没什么重要用途,只是解释这个账号的意义

主文件夹

用户的住文件夹,默认为:/home/yourIDname

Shell

 

 

 

/etc/shadow文件结构:

账号名称密码最近更动密码日期密码不可被更动天数密码需重新更改天数密码需要更改期限前的警告天数密码过期后的账号宽限时间账号失效日期保留

 

/etc/group文件结构:

用户组名称用户组密码GID此用户组支持的账号名称

 

/etc/gshadow文件结构:

用户组名密码列管理员账号此用户组支持的账号名称

 

 

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

用户

useradd:新增用户

useradd [-u UID] [-g初始用户组] [-G次要用户组] [-mM] [-c说明栏] [-d主文件夹绝对路径] [-s shell]用户账户名

-M:强制不创建用户主文件夹(系统账号默认值)

-m:强制创建用户主文件夹(一般账号默认值)

-c /etc/passwd第五列内容,可随意设置;

-s:后面接一个shell,默认/bin/bash

使用useradd账号”命令创建用户,系统会进行如下默认操作:

1 . /etc/passwd 中创建一行与账号相关的数据,包括创建UID/GID/主文件夹等;

2 . /etc/shadow 中将账号的密码相关参数填入,但是尚未有密码;

3 . /etc/group 中加入一个与账号名称一模一样的组名;

4 . /home 下创建一个与账号同名的目录作为用户主文件夹,且权限为700

 

passwd:设置密码

使用 "passwd"表示修改root密码

使用 "passwd账号"表示修改一般用户密码

 

userdel:删除用户相关数据

userdel -r username   # -r连同主文件夹一起删除;

 

usermod:账号数据微调

usermod [-cdegGlsuLU] username

-c/etc/passwd第五列

-d:修改账号主文件夹/etc/passwd第六列

-e:账号失效日期,/etc/shadow第八段

-l:修改账号名称

-sshell/bin/bash

 

用户组

groupadd:新增用户组;

-g:设定特定GID

-r:新建系统用户

 

groupmodgroup相关参数的修改;

-g:修改既有的GID

-n:修改既有的组名

 

groupdel:删除用户组

groupdelgroupname

当某个账号的初始用户组(/etc/passwd第四个部分)使用该用户组时,用户组无法删除;反言之,只要确定/etc/passwd内的账号没有任何人使用该用户组作为初始用户组即可删除,故解决办法1、修改用户GID2、删除用户;

 

 

gpasswd:用户组管理功能,可以指定一个用户作为某个用户组的管理员,从而管理账户的加入/移除用户组功能;

gpaaswd [-rR] groupname          

  #没有任何参数时,表示给予groupname一个密码(/etc/gshadow)

-r:删除groupname密码

-R:让groupname密码栏失效;

gpasswd [-A user1,…] [-M user3,…] groupname

-A:指定管理员(交付用户组主控权)

-M:将一些用户加入该用户组

gpasswd [-ad] username groupname 

-a:将某位用户加入用户组

-d:将某位用户删除出用户组;

 

 

groups有效与支持用户组查看

第一个输出的用户组即为有效用户组(effectivegroup)

 

newgrp有效用户组的切换

想要切换的用户组必须是已经支持的用户组;

 

 

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

用户身份切换

身份切换的原因:

1、使用一般账号,避免做错一些严重的命令;

2、用较低权限启动系统服务;

3、软件本身限制(程序不允许root用户登录)

 

一般身份用户转换root主要有两种方式:

1、以“su -”直接将身份变成root,需要root密码;

2以“sudo命令”执行root命令串,需要事先设置妥当,且需要输入用户自己的密码。因此多人共同管理一台主机,sudosu要好;

tip:仅仅使用“su”切换root身份时,为non-login shell变量文件读取方式来登录系统;

 

su [-lm] [-c命令] [username]

-:后可不加用户名称,代表以root登录,login-shell

-l:与-类似,后面要加用户名称,login-shell

-m:不读取新用户配置文件;

-c:仅进行一次命令,后面跟命令;

tip

1、想要完整地切换到新用户的环境,必须要使用su -username”或“su -l username”,才会连同PATH/USER/MAIL等变量都转换成新用户的环境;

2、想要仅执行一次root命令,可以用“su - -c "命令"”来处理;

3、使用root转换称为任何用户,不需要输入密码;

 

sudo [-b] [-u新用户账号]

-b:将后续的命令让系统自动执行,而不与目前的shell产生影响 ;

-u:后面可以接想要切换的用户,若无此项则代表切换身份为root ;

能否使用sudo的关键:/etc/sudoers的设置值;

通过输入用户自己的密码来执行后续的命令串;

sudo的执行流程:

1、当用户执行sudo时,系统在/etc/sudoers文件中查找该用户是否有执行sudo的权限

2、若用户具有可执行sudo的权限后,让用户输入自己的密码来确认;

3、密码输入成功,便开始执行sudo后续接的命令(root执行sudo时不需要输入密码)

4、欲切换的身份与执行者的身份相同,也不需要输入密码;

0 0
原创粉丝点击