用户及其下放权力

时间:2022-07-01 22:18:10

一、/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两次使系统自动重新启动





\