Linux系统之用户的管理
1.思考:系统中为什么要有用户?
底层安全设定的一部分,用户有特定的权力,限制权力
用户: 安全设定
组: 权力共享
初始组 不能改变的组(所有用户都有)
附加组 能决定的叫附加组(不一定都有)
#2.用户存在的形态
系统中的数据+系统若干配置文件
表格+表格调用的配置文件
3.用户配置文件
/etc/passwd 用户信息文件
用户名称:密码:用户id:组id:用户说明:用户家目录:用户默认使用的shell
etc/group 用户组信息
组名称:组密码:组id:附加组成员
/home/username 用户家目录
/etc/skel.* ##用户骨文件(用户环境配置模版,在用户建立时会自动被复制到家目录中)
4.用户的查看
whoami 查看当前用户的名称
id username 查看用户的id信息
id -u username 查看用户的uid(身份证号)
-g username 查看用户的gid(组id)
-G username 查看用户所在的所有的组的id
-n username 以名称显示信息
-un username 以显示id对应的用户名
5.用户的建立和删除
watch -n 1 ‘tail -n 4 /etc/passwd /etc/group;echo ====;ls -l /home/'
用此命令查看用户建立和删除效果:
执行后界面:
/etc/login.defs 在此文件中可以设定建立用户的默认信息
userdel username 删除用户身份
userdel -r username 删除用户身份和配置文件
useradd username 使用默认规则建立用户(规则看/etc/login.defs)
useradd -u username 指定用户的uid
useradd -g username 指定用户的初始组id
useradd -G username 指定用户的附加组
useradd -c username 指定用户的说明文字
useradd -d username 指定用户的家目录
useradd -s username 指定用户的shell(系统可以用shell可在/etc/shells中查看)
groupadd groupname 建立组
groupadd -g groupname 建立组并指定组id
使用默认规则建立用户+指定用户的uid
指定用户的初始组id
指定用户的附加组
指定用户的说明文字
指定用户的家目录
##指定用户的shell(系统可以用shell可在/etc/shells中查看)
建立组并指定组id
6.用户管理
usermod -l 新名 老名 用户名称
-u uid
-g 初始组id
-G 更改附加组
-aG 增加附加组
-c 更改用户说明
-d 更改用户家目录
-md 重命名用户和家目录
-s 更改用户shell
7.切换用户
su - uername ##切换用户,高级用户切换到低级用户不需要密码
##低级用户切换到高级用户或者切换到平级用户需要后者密码
重要>>>>>>注意:
!!!1.用户切换后即使退出在在切换到下一个用户
!!!2.su - 表示切换用户身份及用户环境
8.用户的认证信息
watch -n 1 tail /etc/shadow 查看用户认证信息
/etc/shadow ##用户的认证信息
用户名称:
用户密码:
md5 sha512
passwd username 只有超级用户执行
passwd 普通用户修改自己密码
usermod -L 冻结帐号
usermod -U 解锁
passwd -l 冻结帐号
passwd -u 解锁
passwd -d 清空密码
密码最后一次被修改的时间:
当此位数字为0时用户在登陆系统时会被强制更改密码
密码最短有效期:
chage -m 1 westos
passwd -n 3 westos
密码最长有效期:
chage -M 30 westos
passwd -x 40 westos
密码过期警告:
chage -W 2 westos
密码非活跃期:
chage -I 2 westos
passwd -i 0 westos
帐号到期日:
chage -E "2018-11-11"
未设定用户自定义
9.权力的下放
1.配置文件
/etc/sudoers
2.配置命令
visudo ##此命令提供语法检测,可以避免修改出错误
1>>>执行此命令后出现界面如下图
2>>>输入“:100“转到100行的位置(可以不用转到100行在哪里都可以)
3.输入下面内容
hostname 可以查看主机名称
用户名词 主机名称=(执行程序身份) 命令 ##当执行命令时需要用户验证
linux11 localhost=(root) /usr/sbin/useradd
用户名称 主机名称=(执行程序身份) NOPASSWD:命令1, 命令2 ##当执行命令时不要用户验证
linux11 localhost=(root) NOPASSAD:/usr/sbin/useradd, /usr/sbin/userdel
4>>>接下来 linux11用户就可以执行useradd 和 userdel的命令了
测试: