初探用户
1.用户是什么
用户就是系统使用者的身份
*用户的存储方式:
在系统中用户由若干字符串&若干个系统的配置文件方式存储
- 用户信息涉及到的系统配置文件及其功能:
- /etc/passwd ##用户信息,如下:
//格式– 用户名(name):x(密码):用户ID(Uid):组ID(gid):用户说明(comment):家目录(dir):系统开启时用的shell - /etc/shadow //存放用户认证信息,如下:
//格式– 用户:密码:最后一次密码修改该时间:最短有效期:最长有效期:警告期:非活跃期:帐号到期日 - /etc/group ##组信息
- /etc/gshadow ##组认证信息
- /home/username ##用户username的家目录
- /etc/skel/.* ##用户的骨架目录,存放的是用户的配置信息。
//想让新建的家目录下出现xxx文件夹,需要 mkdir/etc/skel/xxx 然后每个用户新建时自己家目录下就会出现xxx目录
- /etc/passwd ##用户信息,如下:
*用户id信息查看:
id 参数 用户
-u ##用户uid
-g ##用户初始组id
-G ##用户所有所在组id
-n ##显示名称而不是id数字
-a ##显示所有信息
- ID是系统默认的ID,0是超级用户的,1-999是系统级的用户,系统留的 1000-60000 给普通用户的(在 /etc/login.defs 中可以查看,这是已经写好的文件)
2.用户的建立与删除
1.用户建立
useradd 【参数】... 用户名
-u ##指定用户uid
-g ##指定用户初始组信息(亲爹)
//这个组必须已经存在才可以指定
-G ##指定附加组(干爹)
//这个组也是必须已经存在才可以指定
-c ##用户说明
-d ##用户家目录
-s ##用户所使用的shell,/etc/shells记录了用户能使用shell的名字
-p ##修改密码
//***tips : -p 这个命令直接用不会生效,因为用户的密码是经过md5算法加密过的,所以直接加会导致密码还是用不了,所以还是要回到passwd或者下面要介绍的方法。
2.用户删除
userdel 【参数】 用户
-f //强制删除用户,即使用户当前已经登陆。
-r //删除用户信息及用户的系统配置,包括用户的家目录
3.组的建立
groupadd -g gid ##指定gid并建立组
groupdel 组名 ##删除组
*tips:组的出现是为了权力的共享。
*演示:
- (1)首先用watch命令监控各存放用户信息的文件并查看/home下的用户家目录
// 命令行中 \ 符号是命令行换行 - (2)单纯使用useradd
- (3)加上各种参数
// 需要先添加用户组。,才可以指定 useradd -g 的内容
*删除用户时,若不加 -r 会出现如图问题:
分析:当删除时,因为没有加参数-r 出现了在/home下还是有yuan这个用户
分析:再次创建这个用户时,即使添加上用户,但是会显示已经存在,即之前没有彻底删除干净
处理办法:
userdel yuan
rm -fr /home/yuan //单独再删除用户的家目录
rm -f /var/spool/mail/yuan //记录也删掉
操作之后,就可以彻底删除用户的所有信息了。
3.用户的管理
当然不止创建的时候才可以添加用户信息,针对类似开始不能知道某些用户属性的问题时,系统还提供了修改用户属性的方法: usermod
usermod 【参数】 用户
参数:
-l ##更改用户名称
-u ##更改uid
-g ##更改gid
-G ##更改附加组
-aG ##添加附加组
-c ##更改说明
-d ##更改家目录指定
-md ##更改家目录指定及家目录名称
-s ##更改shell
-L ##冻结帐号
-U ##解锁
操作演示:
- usermod -md /home/xxx 用户名 ##是根本上从路径上和用户名全部改
- -d改的单独是路径 m相当于mv即重命名
- -md是一个整体命令 不是-m和-d的组合,它就是单独一条指令
- usermod -G “” 用户名 ##删除附加组
*tips : 在修改shell时,需要查看/etc/shells
- /etc/shells 存放的是系统安装过的shell的名字, 其中的…/nologin是不能登陆的shell
- 在修改用户使用的shell时,只有在这个文件下显示的shell才是可以选择的。
- 其中,我们使用的命令行就是/bin/bash
*tips :passwd -l 与 usermod -L 的区别 (冻结帐号)
passwd -l username //在加密字符前加 !! 冻结程度高
usermod -L username //在加密字符前加!,不管执行几次,只加一个!, 冻结程度不如passwd 高
passwd -u username // 解冻,可以解开 !!
usermod -U username //解冻 , 一次只能解一个!,如果解passwd的-l需要执行两次
//只加一个!
//解一个!
//加两个!
//解两个!
所以解锁时,用passwd -u 会更方便~
对用户密码认证信息的详细修改
针对学习之旅(二)的密码修改,基于本章介绍的存放密码信息的结构,下面介绍一个专门用来更改密码详细信息的命令 : chage
用法: chage 参数 用户
参数:
-d ##用户密码组后一次修改的时间,如果设定成0,用户登陆系统后必须修改自己的密码
-m ##最短有效期
-M ##最长有效期
-W ##警告期
-I ##用户非活跃天数
-E ##帐号到期日格式 -E "YYYY-MM-DD"
//用法同passwd,这里就不具体介绍。
用户权力下放:sudo
1.在系统中超级用户可以下放普通用户不能执行的操作给普通用户
下放权力配置文件:/etc/sudoers
2.下放权力的方法
vim /etc/sudoers
——-> 修改
//这种方法在你改错了又恰巧保存了之后,系统不会提示信息。即对系统配置修改不是很安全。所以系统专门设置了下面这种比较安全的方法:
- 超级用户身份执行visudo进入编辑/etc/sudoers模式,进行权限的添加或修改。保存退出后错误编辑会有提示。
*具体格式:
##需要密码:
kiosk foudation9.ilt.example.com=(root) /usr/sbin/useradd
要下放权力的用户 主机名 =(给予权力的用户) 执行的操作(命令存放绝对路径) ##给普通用户下放了添加用户的权限
##免密:
kiosk foudation9.ilt.example.com=(root) NOPASSWD:/usr/sbin/useradd, /user/sbin/userdel
免密 :
,(空格)下一个操作 ##添加下放了用户删除的权限
3.执行本身没有权限但是在*visudo中添加了的命令*
*按上述第一种方法修改权限(需要密码):
- 更改完成切换到kiosk普通用户下
- 执行:
sudo 命令 【参数】 对象 - 输入密码,然后完成了之前没有权限的操作。