一、用户和用户组
1.计算机通过用户名和密码识别用户。
2.Linux中新建用户后,需要设置密码(企业开发中,很多时候需要远程访问,为了安全必须设置密码)
3.系统中有一个特殊用户,这个被称作超级用户,一般默认存在,拥有最高权限。
4.用户组:把几个用户归在一起,这样的组被称为用户组,规定文件所属用户组的权限可以使该组成员拥有这些权限。
二、普通用户和超级用户
一台电脑可以有且仅有一个超级用户及若干个普通用户
-
普通用户:安装系统时我们创建的用户(如
),也可以由超级用户分配,如: -
超级用户:又被称作最高管理员,用户名是
,Linux系统内置,第一次使用
用户的时候,需要设置密码。
修改超级用户root的密码
语法:
sudo passwd
//然后按照提示
注意:终端输入密码的时候没有提示。如果输入错误,回车键后提示重新输入。
普通用户和超级用户的切换
-
普通用户切换到超级用户
sudo -i #没有设置root密码的时候,使用这个进入
---------------------------------------------
su root #设置root密码之后,可以通过命令进入
- 超级用户切换到普通用户
su 用户名
whoami
说明:查看当前登录的用户
whoami
三、团队共享临时文件
问题抛出
企业开发中,我们一般是团队开发。团队成员需要在一台电脑共同完成一项任务(开发一套软件)团队成员在服务器上的用户分别是
,
,
,
他们都属于
这个用户组。
在
目录下新建一个名为
的目录,作为这个小组的工作目录。
组员拥有这个目录的读写权限,并禁止其他无关用户操作这个目录。
如何解决以上问题
1.新建
并添加四个用户,分别为其设置密码(初始密码,比较简单)
2.建立工作目录
3.把这个新建的目录的所有权交给
组
4.组成员对其拥有读写权限,其他人无权限。(
-读,
-写,
-执行,- -无权)
5.把这个工作目录所属的用户设置为
具体操作
# 1.新建组workgroup
sudo groupadd workgroup
# 2.添加四个用户并设置密码
sudo useradd -d /home/lucy -m lucy
sudo passwd lucy
sudo useradd -d /home/lewis -m lewis
sudo passwd lewis
sudo useradd -d /home/mike -m mike
sudo passwd mike
sudo useradd -d /home/petter -m petter
sudo passwd petter
# 3. 建立工作目录
sudo mkdir /home/work
# 4. 把目录所有权交给workgroup组
sudo chown :workgroup /home/work
# 5. 设置权限,组成员有读写权限,其他人无权限
sudo chmod g=rw,o= /home/work
# 6. 把工作目录所属用户设置为lewis
sudo chown lewis /home/work
四、用户管理
指令
添加新用户
执行者:
用户
语法:
[sudo] useradd [选项] 用户名
注意:
如果在普通用户下,需要在指令中加入
,如果在
用户下,则省略
,这里
是临时提升到
权限。
举例:
sudo useradd -d /home/lucy -m lucy
#解释:创建了一个用户Lucy,并在家目录下创建一个同名目录/home/lucy(还会默认创建一个跟用户同名的组:Lucy)
#以上指令做了三件事
#1.在系统创建了一个名为Lucy用户(用户)
#2.在/home目录下创建了一个名为Lucy的目录(用户文件夹)
#1.在数据路创建了一个跟用户同名的组Lucy(用户组)
注意:如果在新建用户的时候没有指定用户组,就会创建一个与用户同名的组,并让新用户加入这个组
举例
sudo useradd -d /home/petter -mg lucy peter
#解释:创建了一个用户Peter,并在家目录下创建一个同名目录/home/petter,同时将用户添加到用户已经存在的组Lucy
查看用户所属的组
执行者:
用户
语法:
[sudo] groups 用户名
举例:
sudo group st
删除用户
执行者:
用户
语法:
[stdo] userdel [选项] 用户名
选项:
:强制删除用户,即使当前用户已登录(强制删除)
:删除用户的同时,删除与用户相关的所有文件(递归删除)
举例:
sudo userdel -rf peter
#解释:删除用户Peter,并在不提示任何信息的前提下递归删除Peter在/home下对应的用户文件夹(/home/peter)
给用户添加口令(密码)
执行者:
用户
语法:
[sudo] passwd [选项] 用户名
选项:
:锁定命令,也就是禁用账户
:解锁命令,也就是解锁账户,和-l
不能同时用
使账号无口令:
:强制用户下次登录时修改密码
如果缺省选项,则修改/设置当前用户的口令
说明:
用户:给用户设置初始密码(这个密码复杂度没有要求,因为初始密码一般比较简单)
sudo password lucy
#解释:给Lucy设置初始密码,密码复杂度无要求
普通用户:修改自己的密码(这个密码是用户的专属密码,对于密码的复杂度有要求)
passwd
修改用户
执行者:
用户
语法:
[sudo] usermod [选项] 用户名
选项:
:备注,修改用户备注的文字
:用户组,修改用户所属的用户组
:附属组,修改用户所属的附属群组
:shell,修改用户登录后所使用的shell
:uid,修改用户的uid
举例:
sudo usermod -g root peter
#解释:将Peter用户所属的主组改成root组
sudousermod -g lucy -G root,st lucy
#解释:将Lucy用户所属的主组改成Lucy,将附属组改成root,st,多个附属组之间用逗号分隔
五、用户组管理
指令
添加用户组
执行者:
用户
语法:
[sudo] groupadd [选项] 组名
选项:
:GID,指定新用户组的标识(唯一编号),如果不指定,系统会自动编号,一般采用自动编号
举例:
sudo groupadd workgroup
#解释:创建一个名为workgroup组
查看所有用户组
语法:
#方式1:查看用户组信息
cat /etc/group
#方式1:查看用户组信息
[sudo] cat /etc/gshadow
查看用户组中的用户(扩展)
语法:
#使用grep命令从/etc/group文件中查找包含指定组名的行
grep '组名' /etc/group
#使用getent命令获取指定组名的组信息
getent group 组名
删除用户组
执行者:
用户
语法:
[stdo] groupdel [选项] 组名
举例:
sudo groupdel workgroup
#解释:删除我们添加的workgroup组
修改用户组
执行者:
用户
语法:
[sudo] groupmod [选项] 新组名 旧组名
选项:
:GID,组编号(唯一编号)
:和-g
同时使用,允许用户组新的GID和系统已有用户组的GID相同,不建议用
:将用户名改为新名字(new)
举例:
sudo groupmod -n YQ workgroup #解释:将workgroup改名为YQ
sudo groupmod -n workgroup YQ -g 1002 -o #解释:同时更改组名以及GID
六、权限管理
所谓的权限管理,就是说让某个用户或者用户组拥有某个文件或目录,让用户或者用户组对文件是否拥有读写执行权限。
指令
修改文件/目录的所有者或组
执行者:
用户
语法:
[sudo] chown [选项] ...[所有者][组名] 文件或目录路径
选项:
:显示更改部分的信息
:忽略错误信息
;处理指定目录及其子目录中的所有文件
:显示详细的处理信息
举例:
sudo chown lucy /home/work/demo01.c
#解释:指定demo01.c文件的所有者为用户Lucy,用户组默认
sudo chown :lucy /home/work/demo02.c
#解释:指定demo02.c文件的所有者为用户组Lucy,用户默认
sudo chown -R mike:lucy /home/work/demo02
#解释:指定demo02及其子目录的所有者都是用户mike和用户组Lucy
修改文件/目录的权限
这里提到的权限:(读),
(写),
(执行)对应的
替换成-
,表示无这个权限
执行者:
用户
语法:
[sudo] chmod [选项] 权限 文件或目录路径
选项:
:显示更改部分
:忽略提示信息
:递归处理指定目录及其子目录中的所有文件
:显示详细信息
文字设定法(实现1)
语法:
sudo chmod [参数1] [参数2] 权限名 文件或目录路径
参数:
-
参数1:给谁添加权限
-
:all,所有用户,举例:
-
:user,用户,举例:---
---
-
:group,用户组,举例:---
---
-
:other,其他用户或者组,举例:---
---
-
注意:ugo可以组合
-
参数2:如何权限
-
:增加权限
-
-
:删除权限
-
:赋予权限
-
-
权限名:添加什么权限
-
;readonly,只读
-
:write,写
-
:执行
-
-
:无权限(针对r、w、x)
-
举例:
sudo chnod u=rwx,g=rx,o=- /home/work/demo01.c
#解释:针对demo01.c文件,用户拥有读和执行权限,其他用户或组无权限
数字设定法(实现2)
语法:
[sudo] chmod 权限数字 文件或目录路径
权限数字:
:4
:2
:1 -
0
解释:
权限数字的表示:
,三个数字
1.第一个数字表示用户权限,最终的值是rw-
的和,比如:表示拥有读写执行的权限,就是4+2+1=7
2.第二个数字表示用户权限,最终的值是rwx-
的和,比如:表示拥有读和执行权限,就是4+1=5
1.第三个数字表示其他用户或组权限,最终的值是rwx-
的和,比如:表示拥有无权限,就是0
sudo chnod 750 /home/work/demo01.c
#解释:针对demo01.c文件,用户拥有读和执行权限,其他用户或组无权限