一、/etc/passwd # 用户信息
westos:x:1005:1010::/home/westos:/bin/bash
用户名:密码:uid:gid:说明:用户家目录:用户使用的shell
2、 /etc/shadow #用户认证信息
westos:$6$ngUwIJ/7$O3xgDwxRCKPetTyQeCH7LKLIRxbWUKH0cbe2fJLBINNqVhAVX85wytFOMDLlkKxXy02gktyAWC2RsNDpyFaLp1:17632:0:99999:7:::
用户:密码:最后一次修改密码的时间:最短有效期:最长有效期:警告期:非活跃期:帐号到期日
这里的密码是通过加密的密码
shadow和passwd两个文件都是记录保留用户信息的文件,大致信息也差不多相同,那么为什么shadow要存在的呢?
为了安全,如果要登陆westos用户,首先要去passwd文件去找寻是否有这个帐号,然后查看uid ,确认用户和uid是否一致,如果一致,这时就会使用shadow 文件,若密码也一致,那么登陆成功,读取用户的配置文件。shadow 文件就为用户增加了一道屏障
最短有效期:两次修改密码的之间的时间长
最长有效期:密码保持有效的最大天数
警告期:密码将要失效的前几天给出警告,这个从警告到真正失效的那天称为警告期
非活跃期:用户没有登陆,但时这个帐号依然有效的时间长
帐号到期日:帐号生存期,过了期限,帐号就是不合法的帐号
3、/etc/skel/.* #用户骨架文件
[root@localhost ~]# ls -al /etc/skel
总用量 24
drwxr-xr-x. 4 root root 88 7月 10 2014 .
drwxr-xr-x. 133 root root 8192 4月 11 07:47 ..
-rw-r--r--. 1 root root 18 1月 29 2014 .bash_logout
-rw-r--r--. 1 root root 193 1月 29 2014 .bash_profile
-rw-r--r--. 1 root root 231 1月 29 2014 .bashrc
drwxr-xr-x. 2 root root 56 7月 10 2014 .config
drwxr-xr-x. 4 root root 37 7月 10 2014 .mozilla
当我们新建一个用户时,系统就会自动复制/etc/skel/*
4、/etc/group #用户组信息
[root@localhost ~]# cat /etc/group
shengchan:x:1001:tom
caiwu:x:1002:harry
jishu:x:1003:leo
组:密码:gid:组内用户列表
4、 /etc/gshadow #用户组认证信息
[root@localhost ~]# cat /etc/gshadow
shengchan:!::tom
caiwu:!::harry
jishu:!::leo
组名:加密的口令:管理员:用户列表
5、 /home/username #用户家目录
[root@localhost Desktop]# ls -al /home/westos
总用量 7
drwx------ 4 westos westos 1024 4月 11 05:38 .
drwxr-xr-x 9 root root 1024 4月 11 05:38 ..
-rw-r--r-- 1 westos westos 18 1月 29 2014 .bash_logout
-rw-r--r-- 1 westos westos 193 1月 29 2014 .bash_profile
-rw-r--r-- 1 westos westos 231 1月 29 2014 .bashrc
drwxr-xr-x 2 westos westos 1024 7月 10 2014 .config
drwxr-xr-x 4 westos westos 1024 7月 10 2014 .mozilla
用户家目录的文件是从骨架文件里面复制过去的
二、useradd 新建一个用户
useradd westos #建立一个westos用户
[root@localhost Desktop]# useradd westos
用法:useradd [选项] 登录
useradd -D
useradd -D [选项]
选项:
-b, --base-dir BASE_DIR 新账户的主目录的基目录
-c, --comment COMMENT 新账户的 GECOS 字段
-d, --home-dir HOME_DIR 新账户的主目录
-D, --defaults 显示或更改默认的 useradd 配置
-e, --expiredate EXPIRE_DATE 新账户的过期日期
-f, --inactive INACTIVE 新账户的密码不活动期
-g, --gid GROUP 新账户主组的名称或 ID
-G, --groups GROUPS 新账户的附加组列表
-h, --help 显示此帮助信息并推出
-k, --skel SKEL_DIR 使用此目录作为骨架目录
-K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值
-l, --no-log-init 不要将此用户添加到最近登录和登录失败数据库
-m, --create-home 创建用户的主目录
-M, --no-create-home 不创建用户的主目录
-N, --no-user-group 不创建同名的组
-o, --non-unique 允许使用重复的 UID 创建用户
-p, --password PASSWORD 加密后的新账户密码
-r, --system 创建一个系统账户
-R, --root CHROOT_DIR chroot 到的目录
-s, --shell SHELL 新账户的登录 shell
-u, --uid UID 新账户的用户 ID
-U, --user-group 创建与用户同名的组
-Z, --selinux-user SEUSER 为 SELinux 用户映射使用指定 SEUSER
在新建用户或删除用户及其更改信息时,可以采用监控的方式,方便管理
[root@localhost Desktop]#watch -n 1 tail -n 3 /etc/passwd /etc/shadow
[root@localhost ~]# useradd win
2、删除用户
userdel -r westos 删除westos用户及其相关配置信息
[root@loc[root@localhost Desktop]# userdel -r westos
[root@localhost Desktop]# useradd westos #此时建立用户时不会有任何提示信息,环境更彻底
[root@localhost ~]# userdel westos #删除不彻底,虽然用户删除,但主目录依然存在
[root@localhost ~]# useradd westos
useradd:警告:此主目录已经存在。
不从 skel 目录里向其中复制任何文件。
正在创建信箱文件: 文件已存在
3、groupadd 添 加组
[root@localhost ~]# groupadd --help
用法:groupadd [选项] 组
选项:
-f, --force 如果组已经存在则成功退出
并且如果 GID 已经存在则取消 -g
-g, --gid GID 为新组使用 GID
-h, --help 显示此帮助信息并推出
-K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值
-o, --non-unique 允许创建有重复 GID 的组
-p, --password PASSWORD 为新组使用此加密过的密码
-r, --system 创建一个系统账户
-R, --root CHROOT_DIR chroot 到的目录
[root@localhost ~]# groupadd w
4、groupdel 删除组
[root@localhost ~]# groupdel --help
用法:groupdel [选项] 组
选项:
-h, --help 显示此帮助信息并推出
-R, --root CHROOT_DIR chroot 到的目录
5、id 查看id
id # 显示当前用户及其应用用户组的id
id -u username #显示指定用户的id
id -g username #显示指定用户组的id
id -G username #显示指定用户组id和附加组的id
id -un username# 显示指定用户的名称
id -gn username #显示指定用户组的名称
id -Gn username #显示指定用户组及其附加组的名称
[root@localhost ~]# id
uid=0(root) gid=0(root) 组=0(root)
[root@localhost ~]# id westos
uid=1007(westos) gid=1013(westos) 组=1013(westos)
[root@localhost ~]# id -g westos
1013
[root@localhost ~]# id -G westos
1013
[root@localhost ~]# id -G leo
1006 1003
[root@localhost ~]# id -G win
1011
[root@localhost ~]# id -G admin
1007
[root@localhost ~]# id -a westos
uid=1007(westos) gid=1013(westos) 组=1013(westos)
[root@localhost ~]# id -a leo
uid=1003(leo) gid=1006(leo) 组=1006(leo),1003(jishu)
[root@localhost ~]# id -n leo
id: 以默认格式无法只显示名称或只显示真实ID。
[root@localhost ~]# id -un leo
leo
[root@localhost ~]# id -gn leo
leo
[root@localhost ~]# id -Gn leo
leo jishu
6、usermod 参数 用户
[root@localhost ~]# usermod -a win w
用法:usermod [选项] 登录
选项:
-c, --comment 注释 GECOS 字段的新值
-d, --home HOME_DIR 用户的新主目录
-e, --expiredate EXPIRE_DATE 设定帐户过期的日期为 EXPIRE_DATE
-f, --inactive INACTIVE 过期 INACTIVE 天数后,设定密码为失效状态
-g, --gid GROUP 强制使用 GROUP 为新主组
-G, --groups GROUPS 新的附加组列表 GROUPS
-a, --append GROUP 将用户追加至上边 -G 中提到的附加组中,
并不从其它组中删除此用户
-h, --help 显示此帮助信息并推出
-l, --login LOGIN 新的登录名称
-L, --lock 锁定用户帐号
-m, --move-home 将家目录内容移至新位置 (仅于 -d 一起使用)
-o, --non-unique 允许使用重复的(非唯一的) UID
-p, --password PASSWORD 将加密过的密码 (PASSWORD) 设为新密码
-R, --root CHROOT_DIR chroot 到的目录
-s, --shell SHELL 该用户帐号的新登录 shell
-u, --uid UID 用户帐号的新 UID
-U, --unlock 解锁用户帐号
-Z, --selinux-user SEUSER 用户账户的新 SELinux 用户映射
[root@localhost ~]# usermod -e 77777 westos
[root@localhost ~]# usermod -f 10 westos
[root@localhost ~]# usermod -g q westos
[root@localhost ~]# id -Gn westos
q
[root@localhost ~]# usermod -G w win
[root@localhost ~]# id -Gn win
win w
[root@localhost ~]# id win
uid=1006(win) gid=1011(win) 组=1011(win),1014(w)
[root@localhost ~]# usermod -aG q win
[root@localhost ~]# id win
uid=1006(win) gid=1011(win) 组=1011(win),1012(q),1014(w)
[root@localhost ~]# usermod -g 1014 win
[root@localhost ~]# usermod -u 1014 win
[root@localhost ~]# usermod -G 1011 win
[root@localhost ~]# id win
uid=1014(win) gid=1014(w) 组=1014(w),1011(win)
[root@localhost ~]# usermod -aG 1009 win
[root@localhost ~]# id win
uid=1014(win) gid=1014(w) 组=1014(w),1009(linux),1011(win)
8、chage 用户认证信息的控制
[root@localhost Desktop]# chage --help
用法:chage [选项] 登录
选项:
-d, --lastday 最近日期 将最近一次密码设置时间设为“最近日期”
-E, --expiredate 过期日期 将帐户过期时间设为“过期日期”
-h, --help 显示此帮助信息并推出
-I, --inactive INACITVE 过期 INACTIVE 天数后,设定密码为失效状态
-l, --list 显示帐户年龄信息
-m, --mindays 最小天数 将两次改变密码之间相距的最小天数设为“最小天数”
-M, --maxdays 最大天数 将两次改变密码之间相距的最大天数设为“最大天数”
-R, --root CHROOT_DIR chroot 到的目录
-W, --warndays 警告天数 将过期警告天数设为“警告天
[root@localhost ~]# chage -d 1111 wes
[root@localhost ~]# chage -m 3 wes
[root@localhost ~]# chage -M 1111111 wes
[root@localhost ~]# chage -W 10 wes
[root@localhost ~]# chage -E 2019 wes
[root@localhost ~]# chage -l wes
最近一次密码修改时间 :1月 16, 1973
密码过期时间 :从不
密码失效时间 :从不
帐户过期时间 :7月 13, 1975
两次改变密码之间相距的最小天数 :3
两次改变密码之间相距的最大天数 :1111111
在密码过期之前警告的天数 :10
[root@localhost ~]# chage -I 7 wes
三、下放权力
下放权力的方法
超级用户执行visudo进入编辑/etc/sudoers模式
格式:
获得权限用户 主机名称=(获得到的用户身份) 命令
test desktop0.example.com=(root) /usr/sbin/useradd
test用户能在desktop0.example.com以超级用户身份执行/usr/sbin/useradd
3.执行下放权限命令
sudo 命令 ##如果第一次执行sudo需要输入当前用户密码
在/etc/sudoers中如果设置如下:
test desktop0.example.com=(root) NOPASSWD: /usr/sbin/useradd
表示用户调用sudo命令的时候不需要自己密码
[root@localhost ~]# useradd westos
[root@localhost ~]# passwd westos
更改用户 westos 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# su - westos
[westos@localhost ~]$ useradd wes //在westos用户下建立用户wes是不被允许的
-bash: /usr/sbin/useradd: Permission denied
[westos@localhost ~]$ logout
[root@localhost ~]# visudo
##101 westos localhost=(root) /usr/sbin/useradd ## 添加的内容,此时建立用户时需要输入密码
[root@localhost ~]# su - westos ##切换westos用户下
上一次登录:三 4月 11 09:14:58 EDT 2018pts/1 上
[westos@localhost ~]$ sudo useradd wes ##在westos用户下建立wes用户 ,
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
[sudo] password for westos: ##输入密码
[root@localhost ~]# visudo
101 westos localhost=(root) NOPASSWD: /usr/sbin/useradd /usr/sbin/userdel
四root密码忘记
1.重新启动系统
2.在系统启动阶段按上下健停止系统系统引导
3.选择启动引导标题,按“E”进行编辑
4.找到linux16引导条目这一行,从这行最后删除到ro选项,并把ro改为rw,然后添加rd.break选项
5.ctrl+x启动设定过后的系统引导条目
6.进入系统后执行chroot /sysroot切换到真实的系统环境
7.passwd root修改超级用户密码
8.建立文件/.autorelabel让系统从新扫描所有文件
9.exit两次使系统自动重新启动
\