Linux中的用户
1、用户存在的意义
Linux是一个多用户多任务的分时操作系统,如果要使用系统资源,就必须向系统管理员申请一个账户,然后通过这个账户进入系统。这个账户和用户是一个概念,通过建立不同属性的用户,一方面,可以合理的利用和控制系统资源,另一方面也可以帮助用户组织文件,提供对用户文件的安全性保护。
2、组存在的意义
用户组是具有相同特征用户的逻辑集合,有时我们需要让多个用户具有相同的权限,比如查看、修改某一个文件的权限,一种方法是分别对多个用户进行文件访问授权,如果有10个用户的话,就需要授权10次,显然这种方法不太合理;另一种方法是建立一个组,让这个组具有查看、修改此文件的权限,然后将所有需要访问此文件的用户放入这个组中,那么所有用户就具有了和组一样的权限。这就是用户组,将用户分组是Linux 系统中对用户进行管理及控制访问权限的一种手段,通过定义用户组,在很大程度上简化了管理工作。
3、查看用户
1)查看当前用户
whoami ##查看当前用户
2)系统中用户的查看
id -u 用户名 ##查看用户的uid
id -g 用户名 ##查看用户的gid
id -G 用户名 ##查看用户所在所有组的id
id -n 用户名 ##显示名字而不显示id
id -nG 用户名 ##查看用户所在所有组的名字
例如:
4、用户切换
gnome-session-quit --force ##注销当前用户
exit ##退出
su - 用户名 ##‘-’表示在用户切换时同时切换当前用户的环境
从高级用户-->普通用户不需要密码;普通用户-->高级用户需要密码
每次切换完成后必须退出,然后再进行操作。
例如:
5、用户在系统中的存储方式
/etc/passwd ##用户信息文件
用户:uid:gid:说明:家目录:默认shell
/etc/group ##用户组信息文件
组名字:组密码:组id:组成员
/etc/shadows ##认证信息文件
/etc/skel/.* ##默认开启shell的配置,用户的骨文件
/home/username ##用户的家目录
6、用户的删除
uesrdel kiosk ##删除用户
userdel -r kiosk ##删除用户并删除用户的配置文件
7、用户的建立
watch -n 1 'tail -n 3 /etc/passwd etc/group;ls -l /home'
## 用户信息监控命令
useradd ##建立用户时,读取/etc/login.defs文件内容确定规则
useradd -u 7777 用户名 ##指定用户uid
useradd -g 21 用户名 ##指定用户初始组id
useradd -G 21 用户名 ##指定用户的附加组id
useradd -c 用户名 ##指定用户的说明
useradd -d /dir 用户名 ##指定用户的家目录
useradd -s /bin 用户名 ##指定用户的shell
groupadd ##建立用户组
groupadd -g 777 组名 ##建立用户组并指定用户组id
groupdel ##删除用户组
kill -9 ##杀死进程
8、更改用户信息
usermod -l newname username ##更改用户的名称
usermod -u uid username ##更改用户的uid
usermod -g gid username ##更改用户的gid
usermod -G Gid username ##更改用户的附加组
usermod -aG Gid username ##添加用户的附加组
usermod -c " " username ##更改用户的说明文字
usermod -d /home/dir username ##更改用户的家目录
usermod -s /bin/dir username ##更改用户的shell
使用户密码不可用 usermod -L username
解锁用户密码 usermod -U username
9、用户权力的下放
1)在系统中超级用户可以将命令的权力下放给普通用户
2)权力下放文件: /etc/sudoers,此文件可以使用vim编辑,但不提供检错。所以我们使用visudo命令来编辑此文件。
3)下放方式
visudo ##用来编辑 /etc/sudoers文件,定位到100行左右。
格式为:
用户 主机名=(得到的用户身份) 命令(NOPASSWD)
如:
liuyifei localhost=(root) NOPASSWD /usr/sbin/useradd
##liuyifei用户可以在localhost主机以root身份执行useradd命令,并且不用输入密码
10、用户认证信息的控制
/etc/shadow ##用户的认证信息
chage -l username ##列出用户的认证信息
chage -m day username ##密码最短有效期,在此天数内,不能修改用户密码
chage -W day username ##警告期,过期前设定的天数内会警告用户
chage -M day username ##密码最长有效期,在此天数内,用户必须修改密码
chage -I day username ##非活跃期,设定为最长有效期后仍可用的天数
chage -E 'date' username ##账号到期日期
chage -d ##用户密码最后一次修改的时间,若设定成0,则登陆时就会强制用户更改密码。
11、修改root用户密码
1)重新启动系统
2)启动时按‘E'进入编辑
3)找到linux16引导条目这一行,从这行的末尾删到ro选项,并把ro选项更改为rw,然后添加rd.break选项
4)ctrl+x启动设定过后的系统引导条目
5)进入系统后执行chroot /sysroot切换到真实的系统环境
6)passwd root修改超级用户密码
7)建立文件/.autorelabel让系统重新扫描所有文件
8)exit两次使系统自动重新启动