Linux是一个多用户系统,系统通过账号来标识用户,同时也是通过账号来控制用户对系统资源的访问权限
本篇讲述用户的管理以及权限下放的一些问题
useradd ? ?参数 ? ?用户名字
-u ?##指定用户uid
-g ?##指定用户初始组信息,这个组必须已经存在
-G ?##指定附加组,这个组必须存在
-c ?##用户说明
-d ?##用户家目录
-s ?##用户所使用的shell,/etc/shells记录了用户能使用shell的名字。
userdel ?-r?? ?用户名称 -r表示删除用户信息及用户的系统配置
groupadd ?-g?? ?##建立组
groupdel?? ?组名字 ?##删除组
动态监控1、2、3命令:watch -n 1'tail -n 3 /etc/passwd? /etc/group'
id ?参数 ?用户
-u ?##用户uid
-g ?##用户初始组id
-G ?##用户所有所在组id
-n ?##显示名称而不是id数字
-a ?##显示所有信息
usermod 参数? 用户
?-l? ? ? ?更改用户名称
-u? ? ? ?更改uid
-g? ? ?更改gid
-G? ? 更改附加组
-aG? 添加附加组
-c? ? ? ?更改说明
-d? ? ? ?更改家目录指定
-md? 更改家目录指定及家目录名称
-s? ? ? ?更改shell
-L? ? ? ?冻结帐号
-U? ? ? ?解锁
**在系统中超级用户可以下放普通用户不能执行的操作给普通用户
下放权限配置文件:/etc/sudoers
下放权限的方法
*)超级用户执行visudo进入编辑/etc/sudoers模式
*)格式:
获得权限用户 ?主机名称=(获得到的用户身份) ?命令
使用 hostname 命令即可知道主机名称,然后执行visudo对文件进行修改。
hello用户能在localhost以超级用户身份执行NOPASSWD:/usr/sbin/useradd,?/usr/sbin/userdel命令
格式:sudo ?命令 ?##如果第一次执行sudo需要输入当前用户密码
在/etc/sudoers中如果设置如下:
test? desktop0.example.com=(root) NOPASSWD: /usr/sbin/useradd
表示用户调用sudo命令的时候不需要自己密码 (前面已经设置过)
" passwd "用来修改用户认证信息
passwd student ? ##如果是超级用户不许要知道原来密码直接修改没密码强度限制,如果是普通用户需要输入原始密码,密码不能少于8个字符,不能是纯数字,不能是纯字母
passwd -S 用户 ?##查看用户密码信息
passwd -d 用户 ?##删除用户密码
passwd -l 用户 ?##冻结帐号密码
passwd -u 用户 ?##解锁用户
passwd -e 用户 ?##更改密码默认使用天数
passwd -x 用户 ?##密码最长有效期
passwd -n 用户 ?##密码最短有效期
passwd -w 用户 ?##密码过期前警告期
passwd -i 用户 ?##密码非活跃天数
passwd --stdin 用户 ?##非交互式更改用户密码
#例如:
echo hello| passwd --stdin hello123
chage ?参数 ?用户
- -d ?##用户密码组后一次修改的时间,如果设定成0,英语培训费用用户登陆系统后必须修改自己的密码 ?
- -m ?##最短有效期
- -M ?##最长有效期
- -W ?##警告期
- ?-I ?##用户非活跃天数
- -E ?##帐号到期日格式 -E "YYYY-MM-DD"
以hello用户为例,进行说明
监控命令:watch -n 1 tail -n 3 /etc/shadow
修改之前hello用户的参数
修改之后hello用户的参数
用户就是系统使用者的身份
在系统中用户存储为若干窜字符+若干个系统配置文件
用户信息涉及到的系统配置文件:
/etc/passwd ? ?###用户信息
用户:密码:uid:gid:说明:家目录:用户使用的shell
/etc/shadow ? ?###用户认证信息
用户:密码:最后一次密码修改该时间:最短有效期:最长有效期:警告期:非活跃期:帐号到期日
/etc/group ? ?###组信息
组名称:组密码:组id:附加组成员
/etc/gshadow ? ?###组认证信息
/home/username ? ?###用户家目录
/etc/skel/.* ? ?###用户骨架文件
注意: /etc/skel/ 这个目录中的所有文件或目录在用户新建的过程中会被复制到用户的家目录里
#这个目录中默认存在的隐藏文件是用户的默认配置文件