linux账号管理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux账号管理相关的知识,希望对你有一定的参考价值。
用户的标识码:UID和GID登录linux的时候输入的是账号,但是电脑仅认识0 与1,所以每个用户
都有一组ID。
因为每个文件都有它的所有者和所有组,所以每个用户至少有两个ID
分别是UID和GID。
文件就是利用UID和GID来判断它的所有者和所有组的,系统会根据/etc/passwd 与/etc/group 的内容, 找到UID / GID 对应的所有者与所有组名称再显示出来
用户账号
用户是通过电脑前tty1~tty6 的终端提供的登陆界面然后输入密码登录的
输入密码后系统会:
先找/etc/passwd 文件里是否有你输入的帐号?如果没有则跳出,如果有的话就将该帐号对应的 UID 与GID (在/etc/group 中) 读出来,另外,该帐号的家目录与shell 设置也一并读出;
接着就是核对密码表了,这时Linux 会进入/etc/shadow 里面找出对应的帐号与 UID,然后核对一下你刚刚输入的密码与文件里的密码是否相符?
如果一切都正确的话,就进入Shell 控管的阶段.
/etc/passwd 文件的结构
每一行都代表一个帐号,有几行就代表有几个帐号在你的系统中。不过需要特别注意的是里面很多帐号本来就是系统正常运作所必须要的,我们可以简称他为系统帐号,例如bin, daemon, adm, nobody等等,这些帐号请不要随便删掉他。
文件内容是这样的:
[[email protected] ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
以:分隔;
账号名称:用户登陆的名称;
密码:因为这个文件所有程序都可以读取,容易造成密码被窃,后面移到了/etc/shadow文件中,所以只能看到一个x;
UID :0管理员 1~999系统账号 1000~60000普通账号
GID:与/etc/group有关,/etc/passwd 与/etc/passwd类似,用来规范组名称和GID;
用户信息说明:描述用户的信息
家目录: root的家目录在/root,普通用户的家目录在/home/username
Shell:当登入用户登录系统后就会取得一个Shell来与系统的核心沟通以进行使用者的操作任务
/etc/shadow文件结构
因为/etc/passwd这个文件所有程序都可以读取,容易造成密码被窃,后面移到了/etc/shadow文件中, 而且还加入很多的密码限制参数在/etc/shadow 里面,
/etc/shadow 文件是这样的:
[[email protected] ~]# cat /etc/shadow
root:$6$Ej2yxmxbBnXiOduv$isb7LBGtOl9ezWF7Wv2JI6AW3BGLqnqL.MxjG72tC35fJN95AVK.cfqpItexMhRQ3HUbfb1rkzBao619f4iXb.::0:99999:7:::
bin:$6$/sM9Hxri$R5XShyU8gDAup6NrIwcSBgvFtxc/ctSlMa5YcjgVuVVzNCbmIY34yFpKV5idfcke8N1JYKCAUckwG/zOSEwEb0:18115:0:99999:7:::
daemon:*:17834:0:99999:7:::
adm:*:17834:0:99999:7:::
lp:*:17834:0:99999:7:::
sync:*:17834:0:99999:7:::
shutdown:*:17834:0:99999:7:::
以:分隔;
账号名称:用户登陆的名称;
密码 :经过编码加密的密码 密文;
最近更改密码的日期 :1970-1-1开始累加到今天的天数;
密码不可被改动的天数 : 列如设置的天数为3,那么今天改了密码,3天之内都不可以更改;
密码需要重新更改的天数:列如设置的天数为42天,那么必须在42天之内重新设置密码,如果不设置的话这个账号的密码将会过期。 99999相当于永久不过期;
密码需要更改期限前的警告天数 :例如设置为7天,那么就会在密码需要重新更改天数期限的前7天提醒你修改密码;
密码过期后的账号宽限时间:过了密码重新修改的天数后宽限的天数,在宽限时间内密码会过期,重新登录会强制你修改密码,如果超过宽限时间密码就会失效
账号失效日 在这个规定的日期之后账号将无法使用;
保留
Linux用户和组管理命令
用户管理:useradd,usermod,userdel
组管理:groupadd,groupmod,groupdel
密码管理:passwd,gpasswd
其它相关命令:newgrp,chage,id,su
useradd命令
新建用户或修改新建用户时的默认属性
useradd 选项 名字
- -u UID:--uid UID:指定UID,默认是上一个用户UID+1
- -g GROUP:--gid GROUP:指定用户的基本组,此组必须事先存在
- -G:--groups GROUP1,GROUP2...,指定用户的附加组,这些组必须事先存在
- -c COMMENT:--comment COMMENT:添加注释
- -d:--home HOME_DIR:指定用户家目录,通过复制/etc/skel并重命名实现的,指定的家目录路径如果事先存在,则不会为用户复制环境初始化配置文件(如.bashrc等)
- -s:--shell SHELL:指定用户默认shell,可用的所有shell列表存储在/etc/shells文件中
- -r:--system:创建系统用户
useradd -D :显示创建时的默认配置属性
GROUP:是否创建用户私有组,默认100,是
HOME:家目录起始位置,默认/home
INACTIVE:密码过期到用户注销的时间,默认-1,不注销
EXPIRE:空
SHELL:默认shell,默认为/bin/bash
SKEL:从哪里复制用户家目录信息,默认/etc/skel
CREATE_MAIL_SPOOL:是否创建邮件目录,默认yes,(在/var/spool/mail/)
useradd -D 显示的内容:
[[email protected] ~]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
usermod命令
usermod修改用户属性
与useradd的选项大致相同
- -u UID:--uid UID:修改UID
- -g GROUP:--gid GROUP:修改用户的基本组,此组必须事先存在
- -G:--groups GROUP1,GROUP2...,修改用户的附加组,这些组须事先存在。
- 注意,原来的附加组会被覆盖。
- 如果只添加不覆盖,则配合使用-a选项。
- -a:--append:与-G一同使用,添加用户的附加组
- -c COMMENT:--comment COMMENT:修改注释
- -d:--home HOME_DIR:修改用户家目录
- 用户原有的文件不会被转移至新位置。
- 如果需要转移,则配合使用-m选项。
- -m:--move-home:只能与-d选项一同使用,用于将原来的家目录移动为新的家目录。
- -l:--login NEW_LOGIN:修改用户登录名
- -s:--shell SHELL:修改用户默认shell
- -L:--lock:锁定用户的密码,即禁止用户登录。
- 其实就是在/etc/passwd文件中用户原来的密码字符串前添加一个“!”,使其不能匹配。
- -U:--unlock:解锁用户的密码
userdel命令
userdel -
删除用户账户和相关文件
- -r:删除用户时一并删除用户家目录
passwd命令
passwd:不带任何选项:修改当前登录用户自己的密码
passwd USER:修改指定用户的密码,默认仅root用户有此权限
- -l:--lock:锁定用户
- -u:--unlock:解锁用户
- -d:--delete:清除用户密码
- -e:--expire DATE:过期期限(日期)
- -i:--inactive DAYS:非活动期限(时长)
- -n:--minimum DAYS:密码的最短使用期限
- -m:--maximum DAYS:密码的最长使用期限
- -w:--warning DAYS:警告期限
groupadd命令
新建组
groupadd 选项 groupname
- -g GID:指定GID:默认是上一个组的GID+1
- -r:创建系统组
gourpmod命令
更改用户组属性
groupmod 选项 groupname - -g GID:--gid GID:修改GID
- -n NEW_NAME,修改组名
groupdel命令
删除组
groupdel 选项 groupname
当某user以某group为主组时,是无法使用groupdel命令删除该group的,但附加组不受影响
gpasswd命令
gpasswd 选项 groupname
- -a:--add USER:向组中添加用户
- -d:--delete USER:从组中移除用户
newgrp GROUP:
临时切换当前用户的基本组(exit:切换回之前的基本组)
chage命令
修改密码的各类过期信息
chage 选项 USER - -d 后面接日期,修改 shadow 第三字段(最近一次更改密码的日期),格式 YYYY-MM-DD
- -E后面接日期,修改 shadow 第八字段(账号失效日),格式 YYYY-MM-DD
- -W后面接天数,修改 shadow 第六字段(密码过期前警告日期)
- -m后面接天数,修改 shadow 第四字段(密码最短保留天数)
- -M后面接天数,修改 shadow 第五字段(密码多久需要进行变更)
chage命令用的不多,因为passwd命令中也可以修改密码的各类过期信息。
id命令
id 选项 USER
id:不带任何选项:显示当前登录用户自己的信息 - -u:--user:仅显示UID
- -r:--real:仅显示实际的ID
- -g:--group:仅显示用户的基本组ID
- -G:--groups:仅显示用户所属的所有组的ID
- -n:--name:显示名称,而非ID
su命令
su 选项 USER
登录式切换:会通过重新读取目标用户的配置文件来重新初始化
su - USER或su -l USER
非登录式切换:不会读取目标用户的配置文件进行初始化
su USER
-c COMMAND:仅以指定用户的身份运行此处指定的命令
以上是关于linux账号管理的主要内容,如果未能解决你的问题,请参考以下文章