配置文件)
/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(禁止该用户登录)。
====================================================================== [[email protected] ~]# 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日的差值来表示
================================================================== [[email protected] ~]$ echo $(($(date --date="2015/03/16" +%s)/86400+1)) 16510 ==================================================================
(4)密码不可被更改的天数(与第三段日期比较)
值为0时,意为不限制,随时可更改。
如果设置为20,则20天内用户不可更改密码。
(5)密码需要重置的天数(与第三段日期比较)
默认值是99999,远远超出电脑寿命,基本可以认为永不过期。
(6)密码到期前提前提醒天数(与第五段日期比较)
设置为7既为密码到期日提前7天提醒用户修改密码,“您的密码还有n天就要过期,请及时修改密码”。
(7)帐号失效后宽限天数
到期后过多少天锁定帐号
(8)帐号失效日期
计算方式同第三段;
应该可以用到收费服务上。
(9)保留位
===================================================================== [[email protected] ~]# 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
======================================================== [[email protected] ~]# 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
========================================================= [[email protected] ~]# groupadd -g 1999 admin [[email protected] ~]# cat /etc/group |grep 1999 admin:x:1999: =========================================================
groupdel
作用:删除用户组
语法:groupdel groupname
PS:单纯作为附属组的时候是可以直接删除的,但如果作为用户的主组,就不能随意删除了,需要提前把用户清空
================================================================= [[email protected] ~]# usermod -aG admin essence #!把admin设置为essence的附属组 [[email protected] ~]# id essence uid=1000(essence) gid=1000(essence) groups=1000(essence),1999(admin) [[email protected] ~]# groupdel admin [[email protected] ~]# id essence uid=1000(essence) gid=1000(essence) groups=1000(essence) #!附属组可被直接删除 [[email protected] ~]# 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)
================================================================= [[email protected] ~]# useradd test1 -g 1000 -M -s /sbin/nologin #!创建test1用户,和essence共享一个组,无家目录,不允许登陆系统 [[email protected] ~]# cat /etc/passwd|grep test1 test1:x:1001:1000::/home/test1:/sbin/nologin #!第六段依然有家目录路径,为何? [[email protected] ~]# ls /home/test1 ls: cannot access /home/test1: No such file or directory #!原来此目录并不存在,看来/etc/passwd不足以作为判断家目录是否存在的标准。 [[email protected] ~]# id test1 uid=1001(test1) gid=1000(essence) groups=1000(essence) #!和essence共享了一个组 =================================================================
userdel
作用:删除用户,无参数时默认不删除家目录
语法:userdel [选项] username
选项:-r 删除用户的家目录和邮件目录(/var/spool/mail/username)
================================================================= [[email protected] ~]# ls /var/spool/mail/test1 test1 [[email protected] ~]# userdel -r test1 userdel: test1 home directory (/home/test1) not found #!之所以会报错,是因为我们根本没创建test1的家目录。 [[email protected] ~]# 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 把附属组清空
================================================================== [[email protected] ~]# usermod -G root essence [[email protected] ~]# id essence uid=1000(essence) gid=1000(essence) groups=1000(essence),0(root) #!现在essence加入了自己的主组essence和root [[email protected] ~]# usermod -G test1 essence [[email protected] ~]# id essence uid=1000(essence) gid=1000(essence) groups=1000(essence),1001(test1) #!如果没有-a参数,附属组root被抹掉,换成了test1 ==================================================================
passwd
作用:修改用户密码
语法:passwd 用户名
创建密码的规则:
长度大于10;含大小写字母数字以及特殊字符 ;不规则性;不要带有自己名字、公司名字、自己电话、自己生日等。
扩展内容:mkpasswd 生成密码的工具,安装 expect包
================================================================== [[email protected] ~]# yum install expect [[email protected] ~]# 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