1.用户存在的意义
系统的用户 user是最底层的安全机制,有了用户之后比较隐私,对用户的处理就是对文件的处理
2.组存在的意义
初始组:先开始的默认组,不能决定的组
附加组:是在初始组之上新增了一些内容
用户是用户(回收一部分权利),组是组,各有各的机制,组内具有共享的权力,可以有无数个附加组,因为可以有无数个权力
3.用户的查看
(1)查看当前用户
westos ##查看当前用户
(2)系统中用户的查看
id ##查看制定用户id信息
id
-u ##查看用户的uid
-g ##查看用户的gid
-G ##查看用户所在的所有组的id
-n ##显示名字而不显示id数字id
**注意:不可以单独使用-n,必须结合-G使用**
代码演练
[student@workstation Desktop]$ id student ##查看student 的id
uid=1000(student) gid=1000(student) groups=1000(student),10(wheel) ##uid用户id;
##gid 组id groups 所有组的id
[student@workstation Desktop]$ id root
uid=0(root) gid=0(root) groups=0(root)
[student@workstation Desktop]$ id -u student
1000
[student@workstation Desktop]$ id -g student
1000
[student@workstation Desktop]$ id -G student
1000 10
[student@workstation Desktop]$ id -G -n student
student wheel
[student@workstation Desktop]$ id -Gn student
student wheel
[student@workstation Desktop]$ id -u root
0
[student@workstation Desktop]$ id -g root
0
[student@workstation Desktop]$ id -G root
0
[student@workstation Desktop]$ id -Gn root
root
[student@workstation Desktop]$ id -G -n root
root
[student@workstation Desktop]$
4.用户的切换
gonme-session-quit --force ##注销当前用户,再用其他用户登陆
su - 用户名称
su - 中“-”表示在用户身份切换时同时切换当前用户的环境
su - 执行时高级用户切换到地级用户不需要密码,低级用户切换到高级需要密码,平级用户之间切换也需要密码
su - 中加-会改变用户环境,如果不加-就只是改变用户的身份
注意:每次su切换到其他用户操作之后必须退出,然后再次切换到其他用户。在切换的时候,每次都会开启一个新的shell(人物管理器中的bash),切换的越多,问题就越多,可以依次退出,exit。应该每次用完一个用户之后,就立刻关闭。最多两个(不算错误)。
代码演练
[student@workstation ~]$ su - root
Password:
Last login: Fri Dec 27 18:41:18 EST 2019 on pts/0
[root@workstation ~]# su - student
Last login: Fri Dec 27 18:43:33 EST 2019 on pts/0
[student@workstation ~]$ su - root
Password:
Last login: Fri Dec 27 18:45:08 EST 2019 on pts/0
[root@workstation ~]# su - westos
Last login: Fri Dec 27 18:41:29 EST 2019 on pts/0
[westos@workstation ~]$ su - root
Password:
Last login: Fri Dec 27 18:46:08 EST 2019 on pts/0
[root@workstation ~]# su - westos
Last login: Fri Dec 27 18:46:18 EST 2019 on pts/0
[westos@workstation ~]$ su - student
Password:
Last login: Fri Dec 27 18:45:26 EST 2019 on pts/0
[student@workstation ~]$
用户身份的切换及环境变量
注意:高级用户向低级用户切换时不需要密码;反之需要密码;平级别切换需要密码
[student@workstation ~]$ su - root
Password:
Last login: Fri Dec 27 18:41:18 EST 2019 on pts/0
[root@workstation ~]# su - student
Last login: Fri Dec 27 18:43:33 EST 2019 on pts/0
[student@workstation ~]$ su - root
Password:
Last login: Fri Dec 27 18:45:08 EST 2019 on pts/0
[root@workstation ~]# su - westos
Last login: Fri Dec 27 18:41:29 EST 2019 on pts/0
[westos@workstation ~]$ su - root
Password:
Last login: Fri Dec 27 18:46:08 EST 2019 on pts/0
[root@workstation ~]# su - westos
Last login: Fri Dec 27 18:46:18 EST 2019 on pts/0
[westos@workstation ~]$ su - student
Password:
Last login: Fri Dec 27 18:45:26 EST 2019 on pts/0
[student@workstation ~]$
用户组的建立删除和移动
注意:在进行演练的时候先开启一监控,能够更加清楚的看到实验的效果
监控代码: watch -n 1 “tail -n 5 /etc/password /etc/group; echo ====;ls -l /home/”
示例演练(单个的建立)
监控命令:watch -n 1 "tail -n 5 /etc/password /etc/group; echo ====;ls -l /home/"
[root@workstation Desktop]# useradd westos ##建立一个用户名
[root@workstation Desktop]# userdel -r westos ##删除一个用户名
[root@workstation Desktop]# useradd westos
[root@workstation Desktop]# groupadd westos ##建立一个用户组
groupadd: group 'westos' already exists
[root@workstation Desktop]# groupadd westos1 ####建立一个用户组
[root@workstation Desktop]# groupdel westos1 ####删除一个用户组
[root@workstation Desktop]# groupadd -g 888 westos1 ##指定id
[root@workstation Desktop]# groupmod -g 1001 westos1 ##更改id
groupmod: GID '1001' already exists
[root@workstation Desktop]# groupmod -g 1002 westos1
指定用户名的建立&两者同时建立
eg:
[root@workstation Desktop]# userdel westos ##删除一个用户名
[root@workstation Desktop]# useradd -u 666 -g 666 westos ##同时建立一个用户名和用户组并且指定其ID
useradd: group '666' does not exist
[root@workstation Desktop]# groupadd -g 666 westos ##建立用户组
[root@workstation Desktop]# useradd -u 666 -g 666 westos
用户名&组信息的更改
-l 更改用户名字的大小写
-u 给用户名设置指定id
-g 给用户组设置指定id
-G 更改附加组的名称
-aG 添加附加组的
-c 指定用户的说明(可以没有)
-d 指定用户的家目录
-s 指定用户的默认shell
代码实例
[root@workstation Desktop]# useradd westos ##添加一个用户
[root@workstation Desktop]# usermod -l WESTOS westos ##更改用户的大小写
[root@workstation Desktop]# usermod -l westos WESTOS
[root@workstation Desktop]# usermod -u 666 westos ##给用户名设置指定id
[root@workstation Desktop]# usermod -g 40 westos ##给用户组设置指定id
[root@workstation Desktop]# usermod -g 1001 westos
[root@workstation Desktop]# id westos ##查看用户id
uid=666(westos) gid=1001(westos) groups=1001(westos)
[root@workstation Desktop]# usermod -G dip westos ##更改附加组的名称
[root@workstation Desktop]# usermod -G 21 westos ##更改附加组的id
[root@workstation Desktop]# id westos
uid=666(westos) gid=1001(westos) groups=1001(westos),21(slocate)
[root@workstation Desktop]# usermod -G 40 westos
[root@workstation Desktop]# id westos
uid=666(westos) gid=1001(westos) groups=1001(westos),40(dip)
[root@workstation Desktop]# usermod -aG 40 westos ## 添加附加组的
[root@workstation Desktop]# id westos
uid=666(westos) gid=1001(westos) groups=1001(westos),40(dip)
[root@workstation Desktop]# usermod -G "" westos ##删除一个附加组
[root@workstation Desktop]# id westos
uid=666(westos) gid=1001(westos) groups=1001(westos)
[root@workstation Desktop]# usermod -c "WESTOS USER" westos ##指定用户的说明(可以没有)
[root@workstation Desktop]# usermod -c "" westos ##删除指定用户的说明
[root@workstation Desktop]# usermod -d /home/haha westos ##指定用户的家目录
[root@workstation Desktop]# usermod -s /bin/sh westos ##指定用户的默认shell
[root@workstation Desktop]# usermod -d /home/westos westos
[root@workstation Desktop]# usermod -md /home/haha westos
[root@workstation Desktop]# usermod -s /bin/sh westos
usermod: no changes
[root@workstation Desktop]# usermod -s /bin/she westos
[root@workstation Desktop]# usermod -s /bin/sh westos
[root@workstation Desktop]#
注意:
<1>-G 之后既可以接组的名字也可以接id,不能把一个不存在的组id给用户
<2>-G 表示要更改一个用户的附加组,删除所有的附加组的命令为usermod -G “” westos
<3>使用-G 时,如果已有附加组,则会替代那个附加组,若想两个都存在,则需要用usermod -aG 进行添加
<4>usermod -md /home/haha ##对用户的家目录进行更改(-md的顺序不能变)
用户权限的下放
学习步骤:
1、在超级用户下建立一个普通用户
2、给普通用户赋予超级用户的权限
方法1、(有密码):root环境下调用 visodu
大约100 行左右添加 格式如下:普通用户 普通用户的hostname=(root) /bin/sbin/useradd /bin/sbin/userdel
切换到普通用户下:su - 普通用户
方法2、(无密码):root环境下调用 visodu
大约100 行左右添加 格式如下:普通用户 普通用户的hostname=(root) NOPASSWD: /bin/sbin/useradd /bin/sbin/userdel
切换到普通用户下:su - 普通用户
3、用普通用户实现在建立另一个普通用户(注意:原则上只有超级用户可以实现建立一个普通用户,在这里的普通用户拥有超级用户的权限)
命令:sodu useradd 另一个新用户
示例代码: