Linux基础知识-------用户的管理
一.系统中为什么要有用户?
用户:系统最底层的安全设定.
linux操作系统中, 每一个文件和程序必须属于某一个"用户". 每一个用户都有一个唯一的身份标识叫做用户ID (UID).
每一个用户也至少需要属于一个用户分组. 用户分组也有一个唯一的身份标识叫做用户分组ID(GID). 用户可以归属于多个用户分组.
用户组可分为初始组和附加组: 初始组:指用户一登录就立刻拥有改组权限, 每个用户初始化只能有一个, 一般就是和这个用户的用户名作为这个用户的初始组. 附加组: 用户可以加入多个其他组, 并拥有这些组的权限, 附加组可以有多个.
二.用户权限
1.对某个 文件或程序的访问是以它的UID和GID为基础的, 一个执行中的程序继承了调用它的用户的权利和访问权限.
2.每位用户的权限可以被定义为两种:
普通用户: 只能访问他们拥有的或者有权限执行的文件; 分配给他们这样的权限是因为这个用户或者属于这个文件的用户分组, 或者因为这个文件能够被所有的用户访问.
超级用户: 能访问系统全部的文件和程序, 不论超级用户是否拥有它们.
三.用户配置文件
/etc/passwd 用户信息文件(七列)
用户名称:密码:用户id:组id:用户说明:用户家目录:用户默认所使用的shell
/etc/group 用户组信息(四列)
组名称:组密码:组id:附加组成员
/home/username
用户家目录
/etc/skel.*
用户骨文件(用户环境配置模板, 在用户建立时自动复制到家目录中)
四.用户的查看
whoami 查看当前用户的名称
id username 查看用户id信息
id -u 查看用户的uid
id -g username 查看用户gid
id -G username 查看用户所在的所有组的id
id -n username 以名称显示信息
五.用户的建立和删除
groupadd groupname 建立组
groupadd -g groupname 建立组并指定组id
groupdel groupname 删除组
userdel username 删除用户身份(但没有删除用户的配置文件)
userdel -r username 删除用户身份及系统配置文件
useradd username 建立用户, 默认使用规则建立用户(规则参看 /etc/login.defs)
/etc/login.defs 在此文件中设置建立用户的默认信息
cat /etc/shells 查看shell (/sbin/nlogin和/user/sbin/nologin为系统目录, 用户不能通过shell来操作系统)
#####关于用户建立的基本命令
useradd -u username 指定用户的uid
useradd -g username 指定用户的初始组id
注意: 必须先建立组, 才能将指定用户所在的初始组和附加组.
useradd -G 指定用户的附加组
useradd -c username 指定用户说明文字
useradd -d username 指定用户家目录
useradd -s username 指定用户的shell(在 /etc/shells 查看)
监控命令 watch -n 1 'tail -n 4 /etc/passwd /etc/group;ls -l /home' 此命令查看实验效果,观察到用户信息和用户组信息
man useradd 可以查看到useradd 中详细的命令
强制结束某一进程 kill -9 ^c
六.用户管理
usermod -l username 重命名
usermod -u username 更改用户uid
usermod -g username 更改初始组id
usermod -G username 更改附加组
usermod -aG username 增加附加组
usermod -c username 更改用户说明
usermod -d username 更改用户家目录指向
usermod -md username 更改用户家目录指向
usermod -s username 更改用户shell
### usermod -aG username 增加附加组后
usermod -aG "" username 删除所有附加组
七. 用户切换
su - username 切换用户, 高级用户切换到低级用户不需要密码, 低级用户切换到高级用户或者切换到平级用户需要后者密码.
注意: 1.用户切换后及时退出再切换到下一个用户.(退出 exit)
2. su - "-"表示切换用户身份及用户环境
su 表示只切换用户身份, 不切换用户环境.(这种切换方式会造成操作错误)
八.用户的认证信息
/etc/shadow 用户的认证信息
用户名称:用户密码:密码最后一次被修改的时间:密码最短有效期:密码最长有效期:密码过期警告:密码非活跃期:账号到期日:未设定(用户自定义)
###最长有效期:在多长时间内必须修改密码.
###密码最后一次被修改时间:当此位数字为0时, 用户在登录时强制被要求修改密码.
change -d 0 username
passwd -e username
用户密码修改:passwd username (只有超级用户才能执行)
passwd 普通用户修改密码
usermod -L 冻结账号
usermod -U 解锁
passwd -l 冻结账号(冻结强度大)
passwd -U 解锁账号
passwd -d 清空密码
密码最短有效期: chage -m 1 username
passwd -n 3 username
密码最长有效期: chage -M 30 username
passwd -X 40 username
密码过期警告: chage -W 2 username
密码非活跃期: chage -I 2 username
passwd -i 0 username
账号到期日: chage -E "2018-11-11"
监视命令: watch -n 1 tail -n 1 /etc/shadow
九.用户权利下放
1.配置文件
/etc/sudoers
2.配置命令
visudo 此命令提示语法报错, 输入命令直接回车
-------------------------------------------------------------------------
用户名称 主机名称=(执行程序身份) 命令 ##当执行命令时需要用户验证
linux11 dns-server.example=(root) /user/sbin/useradd
--------------------------------------------------------------------------
用户名称 主机名称=(执行程序身份) NOPASSWD: 命令1,命令2 ##执行程序时不需要用户验证
linux11 dns-server.example=(root) NOPASSWD: /user/sbin/useradd, /user/sbin/userdel
--------------------------------------------------------------------------
测试: su - linux11(切换到用户)
sudo useradd hello (建立用户)
查看主机名称: hostname