linux基础:12、基础命令(5) - 用户管理

配置文件)


/etc/passwd

文档结构:

    由":"分隔成7个字段"username:x:uid:gid:remark:homedir:shell"

默认权限:-rw-r--r--

各字段含义:

    (1) username,用户名称 

        命名规则:大小写字母、数字、减号(不能出现在首位)、点以及下划线,其他字符不合法。 

    (2) x,密码空位键 

        密码安全起见放到 /etc/shadow。 

    (3) uid,用户ID  

        可用ID,0-4294967294=2^32-2; 

        root的uid=0;1-499系统保留;普通账户是从500开始。 

        普通用户的uid可以改成0,此时系统就将其识别成root用户。 

    (4) gid,主组id 

        组配置文件/etc/group。 

    (5) remark,注释说明 

        该字段没有实际意义,通常记录用户的一些属性,例如姓名、电话、地址等等  用 chfn 更改; 

    (6) home directory,用户家目录 

    (7) shell environment,shell环境

        /bin/bash; /sbin/nologin(禁止该用户登录)。 

======================================================================
[root@localhost ~]# head /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
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
======================================================================

        

/etc/shadow 

文档结构:

    使用":"分隔成9个字段

    username

    password(密文)

    此密码设置日期

    密码不可更改的天数 

    密码需要重置的天数

    密码到期提前提醒天数

    帐号失效后宽限天数

    帐号失效日期

    保留位

默认权限:----------(除了root用户,其他所有普通用户包括root组成员都没有任何权限呦) 

    (1) 用户名 

        是与/etc/passwd文件中的登录名相一致的用户账号。 

    (2) 密码 

        已加密显示密文,不可逆,但可被破解; 

        !!表示密码为空 

    (3)当前密码的设置日期 

        此日期用设置当前密码的日期和1970年1月1日的差值来表示 

==================================================================
[essence@localhost ~]$ echo $(($(date --date="2015/03/16" +%s)/86400+1))
16510
==================================================================

    (4)密码不可被更改的天数(与第三段日期比较) 

        值为0时,意为不限制,随时可更改。 

        如果设置为20,则20天内用户不可更改密码。 

    (5)密码需要重置的天数(与第三段日期比较) 

        默认值是99999,远远超出电脑寿命,基本可以认为永不过期。 

    (6)密码到期前提前提醒天数(与第五段日期比较) 

        设置为7既为密码到期日提前7天提醒用户修改密码,“您的密码还有n天就要过期,请及时修改密码”。  

    (7)帐号失效后宽限天数 

        到期后过多少天锁定帐号  

    (8)帐号失效日期 

        计算方式同第三段; 

        应该可以用到收费服务上。 

    (9)保留位 

=====================================================================
[root@localhost ~]# head /etc/shadow
root:$6$oEAOlU/b$PPPeEPWk359I0AP3Fz0IAVyCtHs1m0xLBPJefLszn0xAKk3WfDEv7HJakf33skp8Pz/A1dVRmG/vkIQyjQOtH/:16505:0:99999:7:::
bin:*:16231:0:99999:7:::
daemon:*:16231:0:99999:7:::
adm:*:16231:0:99999:7:::
lp:*:16231:0:99999:7:::
sync:*:16231:0:99999:7:::
shutdown:*:16231:0:99999:7:::
halt:*:16231:0:99999:7:::
mail:*:16231:0:99999:7:::
operator:*:16231:0:99999:7:::
=====================================================================


用户及用户组相关命令)


id 

作用:查看用户的uid、gid和所属组信息 

man: print real and effective user and group IDs

语法:id username

========================================================
[root@localhost ~]# id essence
uid=1000(essence) gid=1000(essence) groups=1000(essence)
========================================================


groupadd 

作用:增加用户组 

man:groupadd - create a new group

配置文件:/etc/group & /etc/gshadow 

语法:groupadd [选项] groupname  

选项:

    -g 指定gid 

=========================================================
[root@localhost ~]# groupadd -g 1999 admin
[root@localhost ~]# cat /etc/group |grep 1999
admin:x:1999:
=========================================================


groupdel 

作用:删除用户组 

语法:groupdel groupname 

PS:单纯作为附属组的时候是可以直接删除的,但如果作为用户的主组,就不能随意删除了,需要提前把用户清空 

=================================================================
[root@localhost ~]# usermod -aG admin essence  
#!把admin设置为essence的附属组

[root@localhost ~]# id essence
uid=1000(essence) gid=1000(essence) groups=1000(essence),1999(admin)
[root@localhost ~]# groupdel admin
[root@localhost ~]# id essence
uid=1000(essence) gid=1000(essence) groups=1000(essence)
#!附属组可被直接删除

[root@localhost ~]# groupdel essence
groupdel: cannot remove the primary group of user ‘essence‘
#!主组必须要先把user删掉才可以删除
=================================================================


useradd 

作用:增加用户 

语法:useradd [选项] username 

选项: 

    -u 指定uid (The default value for UID_MIN (resp.  UID_MAX) is 1000 (resp. 60000).)

    -g 指定gid或组名(但指定的组名必须存在) 

    -d 指定家目录 

    -M 不建立家目录,但依然会创建用户的mail目录 

    -s 自定义shell环境,可控制普通用户不能登录,通过设置“/sbin/nologin” 

PS:多个用户可以共享一个主组 

PS:uid和gid分配的时候,以该id的最大数字+1 

PS:uid最小是1000(centos7),和centos6的最小值不同(uid_min=500)

=================================================================
[root@localhost ~]# useradd test1 -g 1000 -M -s /sbin/nologin
#!创建test1用户,和essence共享一个组,无家目录,不允许登陆系统

[root@localhost ~]# cat /etc/passwd|grep test1
test1:x:1001:1000::/home/test1:/sbin/nologin
#!第六段依然有家目录路径,为何?
[root@localhost ~]# ls /home/test1
ls: cannot access /home/test1: No such file or directory
#!原来此目录并不存在,看来/etc/passwd不足以作为判断家目录是否存在的标准。

[root@localhost ~]# id test1
uid=1001(test1) gid=1000(essence) groups=1000(essence)
#!和essence共享了一个组
=================================================================


userdel 

作用:删除用户,无参数时默认不删除家目录 

语法:userdel [选项] username 

选项:-r 删除用户的家目录和邮件目录(/var/spool/mail/username) 

=================================================================
[root@localhost ~]# ls /var/spool/mail/test1
test1
[root@localhost ~]# userdel -r test1
userdel: test1 home directory (/home/test1) not found
#!之所以会报错,是因为我们根本没创建test1的家目录。

[root@localhost ~]# ls /var/spool/mail/test1
ls: cannot access /var/spool/mail/test1: No such file or directory
=================================================================


usermod 

作用:修改用户uid、gid、家目录、附属组等信息 

语法:usermod [选项 选项内容] username 

选项 :

    -a append追加模式,仅可与-G一起使用,用来避免-G指定附属组时造成用户脱离其他附属组。 

    -u 修改用户uid 

    -s 修改用户shell环境 

    -d 修改目录家目录 

    -L 锁定用户密码,使之不能用密码登录 

    -U 解锁用户密码 

    -g 指定用户主组gid 

    -G 指定用户附属组(1个用户可以有多个附属组) 

PS:usermod -G "" user 把附属组清空 

==================================================================
[root@localhost ~]# usermod -G root essence
[root@localhost ~]# id essence
uid=1000(essence) gid=1000(essence) groups=1000(essence),0(root)
#!现在essence加入了自己的主组essence和root

[root@localhost ~]# usermod -G test1 essence
[root@localhost ~]# id essence
uid=1000(essence) gid=1000(essence) groups=1000(essence),1001(test1)
#!如果没有-a参数,附属组root被抹掉,换成了test1
==================================================================


passwd   

作用:修改用户密码 

语法:passwd 用户名 

创建密码的规则: 

长度大于10;含大小写字母数字以及特殊字符 ;不规则性;不要带有自己名字、公司名字、自己电话、自己生日等。 

扩展内容:mkpasswd  生成密码的工具,安装 expect包 

==================================================================
[root@localhost ~]# yum install expect
[root@localhost ~]# mkpasswd
siSXzp~96
==================================================================


su 

作用:切换effective用户 

man:run a command with substitute user and group ID

语法:su 用户名(改变$HOME,不改变$PATH) 

语法: su - 用户名 (改变$HOME和$PATH) 

扩展资料:http://www.aminglinux.com/bbs/thread-6912-1-1.html 

 

sudo 

作用:临时获得root权限(su到root需要输入root的密码不安全,所以sudo是一个好选择) 

修改配置文件命令:visudo 

安装方法: yum install -y sudo 

语法:sudo 正常命令输入 

配置文件:/etc/sudoers 

*****************************************************

......

root    ALL=(ALL)       ALL

essence ALL=(root)      /bin/ls

......

**********************************************************

意义是,让essence这个普通用户,拥有root的权限,针对ls这个命令。(要加绝对路径哦) 


安全扩展

/etc/ssh/sshd_config

禁止root远程登录,用普通用户登录后,在用”sudo su -“登录root 

本文出自 “三零妖人” 博客,请务必保留此出处http://301ren.blog.51cto.com/8887653/1621596

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。