主要内容
- 用户相关操作
- 用户组相关操作
- 权限管理
用户和用户组基础
1.计算机通过用户名和密码识别用户。
2.Linux中新建用户后,需要设置密码。
3.系统有一个特殊的用户root,这个被称为超级用户,一般会默认。
4.用户组:把几个用户归在一起,这样的组被称之为用户组,规定文件所属用户组的权限可以使改组所有成员拥有这些权限。
普通用户和超级用户
-
普通用户:安装系统时我们创建的用户(st),这个也可以由超级用户(管理员)进行分配,如:yueqian
-
超级用户:又被称作最高管理员,root,Linux系统内置,第一次使用root用户时,需要修改密码。
修改超级用户root用户的密码:
sudo passwd --然后按照提示输入密码即可
注意:终端输入密码的时候没有提示,如果输出错误回车键后回提示重新输入。
关于用户、文件以及权限的关系:用户对文件拥有权限(读、写、执行、无权限)
普通用户和超级用户切换
-
普通用户切换到ROOT用户:
sudo -i --没有设置密码的时候,使用这个进入 su root --设置密码后可以通过这个命令进入
-
ROOT用户切换到普通用户:
su 用户名
whoami
解释:查看当前登录的用户
whoami
团队共享文件
问题抛出
企业开发中,我们一般时团队式开发。团队成员需要在一台服务器上共同完成一项任务(开发一套应用软件)团队成员在服务器上用户时lucy,lewis,mike,peter,他们都属于workgroup这个用户组。
在/home目录下新建一个名为work的目录,作为这个小组的工作目录。
workgroup组成员拥有这个目录的读写权限,并禁止其他无关用户操作这个目录。
如何解决以上问题?
①新建组workgroup并添加四个用户、分别为其设置密码。
②建立工作目录/home/work
③把这个新建目录的所有权交给workgroup组。
④组成员对其拥有读写权限,其他人不具有任何权限。(r-读,w-写,x-执行,–无权限)
⑤把这个工作目录交给lewis
用户相关操作
-
添加新用户
-
执行权限:ROOT权限
-
语法:
[sudo] useradd[选项] 用户名 --sudo:临时提升root,并不完全等价root
-
范例:
[sudo] useradd -d /home/lucy -m lucy --创建一个用户lucy,并在家目录下为其分配一个同名目录(此时回创建一个默认组:lucy)
注意:如果在新建用户的时候没有指定用户组,就会创建要给与用户名相同的组名,并让新用户属于这个组。
[sudo] useradd -d /home/peter -mg lucy peter --创建了一个peter用户,并创建了peter在家目录下的目录,同时将peter用户添加到lucy用户组中。
-
-
查看用户所属的组
-
执行权限:ROOT权限
-
语法:
[sudo] groups 用户名
-
范例:
sudo groups st
-
-
删除用户
-
执行权限:ROOT权限
-
语法:
[sudo] userdel [选项] 用户名
-
选项:
- -f:强制删除用户,即使用户当前已经登录(强制删除)
- -r:删除用户的同时,删除与用户相关的所有文件(递归删除)
-
范例:
sudo userdel -rf peter --删除peter用户,并在不提示任何信息的情况下递归删除peter对应的用户目录
-
-
给用户添加口令(密码)
-
执行权限:ROOT权限
-
语法:
[sudo] passwd [选项] 用户名
-
选项:
-
-l:锁定口令,也就是禁用账号
-
-u:解锁口令
-
-d:使账号无口令(建议别这样做)
-
-e:强制用户下次登录时修改密码
如果缺省选项,则修改/设置当前用户的口令
-
说明:
-
ROOT用户下:给lucy设置密码(设置初始密码):
[sudo] passwd lucy --这里对密码复杂度没有要求
-
普通用户下:给lucy设置密码(修改自己密码)
passwd --对密码复杂的有要求,为了安全考虑
-
-
-
-
修改用户
-
执行权限:ROOT用户
-
语法:
sudo usermod [选项] 用户名
-
选项:
- -c:备注,修改用户的备注文字
- -g:用户组,修改用户所属的用户组
- -G:群组,修改用户所属的附加群组
- -s:shell,修改用户登入后所使用的shell
- -u:uid,修改用户的uid
-
范例:
[sudo] usermod -g root lucy --将lucy用户所属的组改为roor组 [sudo] usermod -g lucy -G root lucy --将lucy用户所属的组改为lucy组,附属组改为root,附属群组可以有多个,使用,fen
-
用户组相关操作
指令
-
添加用户组
-
执行权限:ROOT用户
-
语法:
[sudo] groupadd [选项] 组名
-
选项:
- -g:GID,指定新用户组的标识(唯一编号),如果不指定,系统会自动编号
-
范例:
sudo groupadd workgroup --创建一个工作组
-
-
查看所有用户组:
-
语法:
cat /etc/group [sudo] cat/etc/gshadow
-
-
删除用户组:
-
执行的权限:
-
语法:
[sudo] groupdel [选项] 组名
-
范例:
sudo groupdel workgroup --删除我们添加的workgroup这个组
-
-
修改用户组:
-
执行权限:ROOT用户
-
语法:
[sudo] groupmod [选项] 新组名 旧组名
-
选项:
- -g:GID,组编号(唯一编号)
- -o:和-g同时使用,允许用户组的新的GID和系统已有用户组的GID相同
- -n:新用户将用户组的名字改为新名字(new)
-
范例:
sudo groupmod -n yueqian YQ --将YQ改为yueqian sudo groupmod -n YQ yueqian -g 1002 -o --将yueqian改为YQ,并将组号改为跟系统已有相同的1002
-
权限管理
指令
-
修改文件/目录的拥有者或者组
-
执行权限:ROOT用户
-
语法:
chown [选项] ... [所用者][:[组名]] 文件或者目录的路径...
-
选项:
- -c:显示更改部分的信息
- -f:忽略错误信息
- -h:修复符号链接
- -R:处理指定目录以及其子目录中的所有文件
- -v:显示详细的处理信息
-
范例:
sudo chown lucy /home/demo01/demo01.c --修改demo01.c文件的拥有者为拥护者lucy(直接作用于单个用户) sudo chown :lucy /home/demo01/demo02.c --指定demo01.c文件的拥有者为用户组lucy(直接作用于同一组下多个用户) sudo chown -R root:root /home/demo02 --将demo02目录下所有文件与子目录的拥有者都设置为root用户以及root用户组
-
-
修改文件或文件夹的可读可写可执行权限
-
执行权限:ROOT用户
-
语法:
[sudo] chmod [选项] 权限 文件或目录的路径
-
选项:
- -c:显示更改部分
- -f:忽略提示信息
- -R:对规定目录及其子目录中的所有文件
- -v:显示详细信息
-
-
用法1:文字设定法
-
语法:
sudo chmod [参数1] [参数2] 权限名 文件或目录的路径
-
参数:
-
参数1:(给谁添加权限)
- a:all,所有用户
- u:user,当前用户
- g:group,当前用户组
- o:other,其他用户或用户组
-
参数2:(操作权限)
- +:增加权限
- -:删除权限
- =:设置权限
-
权限名:
- r:readonly,只读
- w:write,写,编辑
- x:执行,一般针对的是可执行程序678
- -:无权限(针对rwx对应位置进行设置)
-
范例:
sudo chmod u=rwx,g=rx,o=- /home/demo01/demo01.c --针对demo01.c,当前用户拥有读写执行权限,用户组拥有读和执行权限,其他用户或者用户组无权限
-
-
-
用法2:数字设定法
-
语法:
[sudo] chmod 权限数字 文件或目录的路径
-
权限数字:
- r:4
- w:2
- x:1
- -:0
注意:我们的权限数字表示:777,三个数字,第1个数字表示当前用户(4+2+1);第2个数字表示当前用户组(4+2+1);第3个数字表示其他用户(4+2+1)
-
范例:
sudo chmod 750 /home/demo01/demo01.c --针对demo01.c,当前用户拥有读写执行权限,用户组拥有读和执行权限,其他用户或者用户组无权限
-
通配符
-
*
:匹配任意一个或多个字符举例:
-
?
:匹配任意单个字符举例:
-
[..]
:匹配[ ]范围中的任意单个字符举例: